class ParamsTransformer::Input

Attributes

current_instance[RW]
default[RW]
input_value[RW]
name[RW]
options[RW]
type[RW]
variable_name[RW]

Public Class Methods

new(current_instance, name, type, input_value, options = {}) click to toggle source
# File lib/params_transformer/input.rb, line 6
def initialize(current_instance, name, type, input_value, options = {})
  @current_instance = current_instance
  @name = name
  @default = perform_default(options[:default])
  @input_value = input_value || @default
  @type = type || input_value.class
  @variable_name = options[:variable_name] || @name
  @options = options
end

Public Instance Methods

association?() click to toggle source
# File lib/params_transformer/input.rb, line 35
def association?
  [:has_many, :belongs_to, :has_one].include?(type)
end
parsed_value() click to toggle source
# File lib/params_transformer/input.rb, line 23
def parsed_value
  @parsed_value ||= value_parser.parse
end
perform_default(default_value) click to toggle source
# File lib/params_transformer/input.rb, line 27
def perform_default(default_value)
  if default_value.is_a?(Symbol)
    current_instance.send(default_value)
  else
    default_value
  end
end
value_parser() click to toggle source
# File lib/params_transformer/input.rb, line 16
def value_parser
  @value_parser ||= "ParamsTransformer::ValueParser::#{type.to_s.classify}".constantize.new(options.merge({
    input_value: input_value,
    variable_name: variable_name
  }))
end