Class: ParamsTransformer::Input

Inherits:
Object
  • Object
show all
Defined in:
lib/params_transformer/input.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(current_instance, name, type, input_value, options = {}) ⇒ Input

Returns a new instance of Input.



6
7
8
9
10
11
12
13
14
# 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

Instance Attribute Details

#current_instanceObject

Returns the value of attribute current_instance.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def current_instance
  @current_instance
end

#defaultObject

Returns the value of attribute default.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def default
  @default
end

#input_valueObject

Returns the value of attribute input_value.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def input_value
  @input_value
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def name
  @name
end

#optionsObject

Returns the value of attribute options.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def options
  @options
end

#typeObject

Returns the value of attribute type.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def type
  @type
end

#variable_nameObject

Returns the value of attribute variable_name.



4
5
6
# File 'lib/params_transformer/input.rb', line 4

def variable_name
  @variable_name
end

Instance Method Details

#association?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/params_transformer/input.rb', line 35

def association?
  [:has_many, :belongs_to, :has_one].include?(type)
end

#parsed_valueObject



23
24
25
# File 'lib/params_transformer/input.rb', line 23

def parsed_value
  @parsed_value ||= value_parser.parse
end

#perform_default(default_value) ⇒ Object



27
28
29
30
31
32
33
# 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_parserObject



16
17
18
19
20
21
# 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