class Aws::Templates::Utils::Parametrized::Transformation::AsHash
Convert input into hash
Input value can be anything implementing :to_hash method.
Example¶ ↑
class Piece include Aws::Templates::Utils::Parametrized parameter :param, :transform => as_hash parameter :param2, transform: as_hash { value name: :number, description: 'Number', constraint: not_nil, transform: as_integer } end i = Piece.new i.param # => nil i = Piece.new(:param => [[1,2]]) i.param # => {1=>2} i = Piece.new(:param2 => [[1,'3']]) i.param # => {1=>3}
Attributes
key_parameter[R]
value_parameter[R]
Public Class Methods
new(klass = nil, &blk)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 48 def initialize(klass = nil, &blk) @klass = klass instance_eval(&blk) if blk end
Public Instance Methods
key(opts)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 40 def key(opts) @key_parameter = _create_parameter(opts) end
value(opts)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 44 def value(opts) @value_parameter = _create_parameter(opts) end
Protected Instance Methods
_process_value(parameter, instance, value)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 68 def _process_value(parameter, instance, value) return value if parameter.nil? parameter.process_value(instance, value) end
transform(_, value, instance)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 55 def transform(_, value, instance) return if value.nil? Hash[ Hash[value].map do |k, v| [ _process_value(@key_parameter, instance, k), _process_value(@value_parameter, instance, v) ] end ] end
Private Instance Methods
_create_parameter(opts)
click to toggle source
# File lib/aws/templates/utils/parametrized/transformation/as_hash.rb, line 75 def _create_parameter(opts) Parametrized::Parameter.new( opts[:name], @klass, description: opts[:description], transform: opts[:transform], constraint: opts[:constraint] ) end