From 8c7eed073c7afa8f432da84b4cf96bffd3ba2656 Mon Sep 17 00:00:00 2001 From: Gibheer Date: Thu, 29 Nov 2012 19:44:12 +0100 Subject: added custom parameter --- lib/zero/request/parameter.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib') diff --git a/lib/zero/request/parameter.rb b/lib/zero/request/parameter.rb index 13e92ea..cac9915 100644 --- a/lib/zero/request/parameter.rb +++ b/lib/zero/request/parameter.rb @@ -28,6 +28,9 @@ module Zero attr_reader :payload alias_method(:post, :payload) + # get all custom parameters + attr_reader :custom + # creates a new parameter instance # # This should never be called directly, as it will be generated for you. @@ -37,6 +40,32 @@ module Zero def initialize(environment) @query = extract_query_params(environment) @payload = extract_payload_params(environment) + @custom = {} + environment['zero.params.custom'] = @custom + end + + # get a parameter + # + # With this method you can get the value of a parameter. First the + # custom parameters are checked, then payload and after that the query + # ones. + # + # *Beware, that this may lead to security holes!* + # + # @param key [String] a key to look for + # @returns [String] the value of the key + def [](key) + @custom[key] || @payload[key] || @query[key] + end + + # set a custom key/value pair + # + # Use this method if you want to set a custom parameter for later use. If + # the key was already set it will be overwritten. + # @param key [String] the key to use for saving the parameter + # @param value [Object] the value for the key + def []=(key, value) + @custom[key] = value end private -- cgit v1.2.3-70-g09d2