class Goedel::Line

Attributes

instance_name[R]
prop[R]
val[R]

Public Class Methods

new(instance_name, prop, val) click to toggle source
# File lib/goedel/line.rb, line 8
def initialize(instance_name, prop, val)
  @instance_name = instance_name
  @prop = prop 
  @val = val
end

Public Instance Methods

generate() click to toggle source
# File lib/goedel/line.rb, line 14
def generate
  "#{instance_name}.#{prop} = #{classify(val)}"
end

Private Instance Methods

classify(val) click to toggle source
# File lib/goedel/line.rb, line 20
def classify(val)
  if val.is_a?(String)
    "\"#{val}\""
  elsif val.is_a?(ActiveSupport::TimeWithZone)
    time_str = val.utc.strftime("%Y-%m-%d %H:%M:%S")
    "Time.zone.parse(\"#{time_str}\")"
  elsif val.is_a?(Time)
    time_int = val.to_i
    "Time.at(#{time_int})"
  elsif val.is_a?(DateTime)
    time_str = val.utc.strftime("%Y-%m-%d %H:%M:%S")
    "DateTime.parse(\"#{time_str}\")"
  elsif val.is_a?(BigDecimal)
    "BigDecimal.new(\"#{val.to_f}\")" 
  else
    "#{val}"
  end
end