class FreckleIO::Params

Attributes

allowed_keys[R]
params[R]
validator_module[R]

Public Class Methods

new( params, allowed_keys, validator_module ) click to toggle source
# File lib/freckle_io/params.rb, line 7
def initialize(
  params,
  allowed_keys,
  validator_module
)
  @params = params
  @allowed_keys = allowed_keys
  @validator_module = validator_module
end

Public Instance Methods

call() click to toggle source
# File lib/freckle_io/params.rb, line 17
def call
  return validator.output if valid?

  raise Errors::Params::InvalidParams.new, validator_messages
end

Private Instance Methods

valid?() click to toggle source
# File lib/freckle_io/params.rb, line 25
def valid?
  validator.errors.empty?
end
validator() click to toggle source
# File lib/freckle_io/params.rb, line 29
def validator
  @validator ||= which_validator_module.validation(params, allowed_keys)
end
validator_messages() click to toggle source
# File lib/freckle_io/params.rb, line 39
def validator_messages
  messages = validator.messages(full: true)
  return messages.values.join(",") if messages.is_a?(Hash)

  messages.join(",")
end
which_validator_module() click to toggle source
# File lib/freckle_io/params.rb, line 33
def which_validator_module
  Kernel.const_get(validator_module)
rescue NameError => e
  raise Errors::Params::InvalidModule.new(e), e.message
end