Sha256: a120aae04214087bb03a974bf947f1dc19379241654a44eabd91d9396044735d
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module ToFactory module Generation class Attribute def initialize(attribute, value) @attribute = attribute @value = value end def to_s setter = "#{@attribute}#{inspect_value(@value)}" if ToFactory.new_syntax? " #{setter}" else " o.#{setter}" end end def inspect_value(value, nested=false) formatted = format(value, nested) if !value.is_a?(Hash) && !nested formatted = " #{formatted}" end formatted end private def format(value, nested) case value when Time, DateTime inspect_time(value) when BigDecimal value.to_f.inspect when Hash inspect_hash(value, nested) when Array value.map{|v| inspect_value(v)} else value.inspect end end def inspect_time(value) time = in_utc(value).strftime("%Y-%m-%dT%H:%M%Z").inspect time.gsub(/UTC"$/, "Z\"").gsub(/GMT"$/, "Z\"") end def inspect_hash(value, nested) formatted = value.keys.inject([]) do |a, key| a << key_value_pair(key, value) end.join(', ') if nested "{#{formatted}}" else "({#{formatted}})" end end def key_value_pair(key, value) formatted_key = inspect_value(key, true) formatted_value = inspect_value(value.fetch(key), true) "#{formatted_key} => #{formatted_value}" end def in_utc(time) time.utc end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
to_factory-0.2.0 | lib/to_factory/generation/attribute.rb |