class Goaltender::Input

Attributes

current_instance[RW]
default[RW]
form_class[RW]
form_path[RW]
input_value[RW]
name[RW]
parse_format[RW]
type[RW]
variable_name[RW]

Public Class Methods

new(current_instance, name, type, input_value, options = {}) click to toggle source
# 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 = options[:variable_name] || @name
end

Public Instance Methods

generate_form_class() click to toggle source
# 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_value() click to toggle source
# File lib/goaltender/input.rb, line 27
def parsed_value
  @parsed_value ||= value_parser.parse
end
perform_default(default_value) click to toggle source
# 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_parser() click to toggle source
# 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