class ActsAsScd::Period::DateValue
Attributes
value[R]
Public Class Methods
new(d)
click to toggle source
# File lib/acts_as_scd/period.rb, line 6 def initialize(d) d = d.strftime('%Y%m%d') if d.respond_to?(:strftime) if String===d && d =~ /\A(\d\d\d\d)-(\d\d)-(\d\d)\Z/ d = $1.to_i*10000 + $2.to_i*100 + $3.to_i end @value = d && d.to_i end
Public Instance Methods
parse()
click to toggle source
# File lib/acts_as_scd/period.rb, line 30 def parse y = @value/10000 v = @value%10000 m = v/100 d = v%100 [y,m,d] end
to_date()
click to toggle source
# File lib/acts_as_scd/period.rb, line 17 def to_date case @value when START_OF_TIME, END_OF_TIME nil else begin Date.new *parse rescue raise parse.inspect end end end
to_s()
click to toggle source
# File lib/acts_as_scd/period.rb, line 38 def to_s if @value==START_OF_TIME '' elsif @value==END_OF_TIME '' else y,m,d = parse I18n.l Date.new(y, m, d) end end