Class: Goaltender::Input

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/goaltender/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
  @parse_format = options[:parse_format]
  @form_path = options[:form_path]
  @form_class = generate_form_class
  @variable_name = @name
end

Instance Attribute Details

#current_instanceObject

Returns the value of attribute current_instance.



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

def current_instance
  @current_instance
end

#defaultObject

Returns the value of attribute default.



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

def default
  @default
end

#form_classObject

Returns the value of attribute form_class.



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

def form_class
  @form_class
end

#form_pathObject

Returns the value of attribute form_path.



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

def form_path
  @form_path
end

#input_valueObject

Returns the value of attribute input_value.



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

def input_value
  @input_value
end

#nameObject

Returns the value of attribute name.



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

def name
  @name
end

#parse_formatObject

Returns the value of attribute parse_format.



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

def parse_format
  @parse_format
end

#typeObject

Returns the value of attribute type.



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

def type
  @type
end

#variable_nameObject

Returns the value of attribute variable_name.



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

def variable_name
  @variable_name
end

Instance Method Details

#generate_form_classObject



31
32
33
34
35
36
# File 'lib/goaltender/input.rb', line 31

def generate_form_class
  return nil unless form_path
  folders = form_path.split("/").map(&:classify)
  classify_path = folders.join("::")
  return "Forms::#{classify_path}"
end

#parsed_valueObject



27
28
29
# File 'lib/goaltender/input.rb', line 27

def parsed_value
  @parsed_value ||= value_parser.parse
end

#perform_default(default_value) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/goaltender/input.rb', line 38

def perform_default(default_value)
  if default_value.is_a?(Symbol)
    current_instance.send(default_value)
  else
    default_value
  end
end

#value_parserObject



18
19
20
21
22
23
24
25
# File 'lib/goaltender/input.rb', line 18

def value_parser
  @value_parser ||= "Goaltender::ValueParser::#{type.to_s.classify}".constantize.new({
    input_value: input_value,
    parse_format: parse_format,
    form_class: form_class,
    variable_name: variable_name
  })
end