class Thumbtack::Specification

Validates and translates user-provided parameters to their Pinboard supported equivalents

@api private

Public Class Methods

new(type_handlers) click to toggle source

Initialize a Specification

@param [Hash{Symbol => Type}] type_handlers

a map of parameter names to their type handlers
# File lib/thumbtack/specification.rb, line 13
def initialize(type_handlers)
  @type_handlers = type_handlers
end

Public Instance Methods

parameters(arguments) click to toggle source

Validate and translate client parameters to their Pinboard values

@param [Hash{Symbol => Object}] arguments

parameter names associated with their values

@return [Hash{Symbol => Object}]

parameter names associated with translations to their Pinboard values
# File lib/thumbtack/specification.rb, line 24
def parameters(arguments)
  Hash[
    arguments.map do |name, value|
      type_handler = @type_handlers.fetch(name)
      type_handler.validate(value)
      [name, type_handler.serialize(value)]
    end
  ]
end