Class: Seahorse::Client::ParamConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/seahorse/client/param_converter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(shape) ⇒ ParamConverter

Returns a new instance of ParamConverter.

Parameters:



13
14
15
# File 'lib/seahorse/client/param_converter.rb', line 13

def initialize(shape)
  @shape = shape
end

Class Method Details

.add(shape_class, value_class, converter = nil, &block) ⇒ void

This method returns an undefined value.

Registers a new value converter. Converters run in the context of a shape and value class.

# add a converter that stringifies integers
shape_class = Seahorse::Model::Shapes::StringShape
ParamConverter.add(shape_class, Integer) { |i| i.to_s }

Parameters:

  • shape_class (Class<Model::Shapes::Shape>)
  • value_class (Class)
  • converter (#call) (defaults to: nil)

    (nil) An object that responds to ‘#call` accepting a single argument. This function should perform the value conversion if possible, returning the result. If the conversion is not possible, the original value should be returned.



96
97
98
# File 'lib/seahorse/client/param_converter.rb', line 96

def add(shape_class, value_class, converter = nil, &block)
  @converters[shape_class][value_class] = converter || block
end

.c(shape, value) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



101
102
103
104
105
106
107
# File 'lib/seahorse/client/param_converter.rb', line 101

def c(shape, value)
  if converter = converter_for(shape, value)
    converter.call(value)
  else
    value
  end
end

.convert(shape, params) ⇒ Hash

Parameters:

  • shape (Model::Shapes::InputShape)
  • params (Hash)

Returns:

  • (Hash)


77
78
79
# File 'lib/seahorse/client/param_converter.rb', line 77

def convert(shape, params)
  new(shape).convert(params)
end

Instance Method Details

#convert(params) ⇒ Hash

Parameters:

  • params (Hash)

Returns:

  • (Hash)


19
20
21
# File 'lib/seahorse/client/param_converter.rb', line 19

def convert(params)
  structure(@shape, params)
end