class ATC::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/air_traffic_control/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/air_traffic_control/input.rb, line 35 def association? [:has_many, :belongs_to, :has_one].include?(type) end
parsed_value()
click to toggle source
# File lib/air_traffic_control/input.rb, line 23 def parsed_value @parsed_value ||= value_parser.parse end
perform_default(default_value)
click to toggle source
# File lib/air_traffic_control/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/air_traffic_control/input.rb, line 16 def value_parser @value_parser ||= "ATC::ValueParser::#{type.to_s.classify}".constantize.new(options.merge({ input_value: input_value, variable_name: variable_name })) end