# File lib/aws/core/option_grammar.rb, line 341 def self.apply option, members = {} option.extend self key_option = option.key_option if key_descriptors = members[:key] key_option = key_option.extend_with_config(*key_descriptors) MetaUtils.extend_method(option, :key_option) { key_option } end value_option = option.value_option if value_descriptors = members[:value] value_option = value_option.extend_with_config(*value_descriptors) MetaUtils.extend_method(option, :value_option) { value_option } end key_option.param_name = members[:key_param] if members[:key_param] value_option.param_name = members[:value_param] if members[:value_param] end
# File lib/aws/core/option_grammar.rb, line 392 def hash_format(value) value.inject({}) do |hash, (key, value)| hash[key_option.hash_format(key)] = value_option.hash_format(value) hash end end
# File lib/aws/core/option_grammar.rb, line 400 def key_option @_key_option ||= MapOption.new("key") end
# File lib/aws/core/option_grammar.rb, line 376 def request_params values, prefix = nil values.inject([]) do |params, (key,value)| index = params.size / 2 + 1 common_prefix = "#{prefixed_name(prefix)}.#{index}." key_name = common_prefix + key_option.param_name value_name = common_prefix + value_option.param_name params << Http::Request::Param.new(key_name, key) params << Http::Request::Param.new(value_name, value) end end
# File lib/aws/core/option_grammar.rb, line 362 def validate(value, context = nil) raise format_error("hash value", context) unless value.respond_to?(:to_hash) context = context_description(context) value.each do |key, value| key_option.validate(key, "key of #{context}") value_option.validate(value, "value at key #{key} of #{context}") end end
# File lib/aws/core/option_grammar.rb, line 404 def value_option @_value_option ||= MapOption.new("value") end