Class: ActsAsScd::Period::DateValue
- Inherits:
-
Object
- Object
- ActsAsScd::Period::DateValue
- Includes:
- ModalSupport::BracketConstructor
- Defined in:
- lib/acts_as_scd/period.rb
Instance Attribute Summary collapse
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
-
#initialize(d) ⇒ DateValue
constructor
A new instance of DateValue.
- #parse ⇒ Object
- #to_date ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(d) ⇒ DateValue
Returns a new instance of DateValue.
6 7 8 9 10 11 12 13 |
# 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 |
Instance Attribute Details
#value ⇒ Object (readonly)
Returns the value of attribute value.
15 16 17 |
# File 'lib/acts_as_scd/period.rb', line 15 def value @value end |
Instance Method Details
#parse ⇒ Object
30 31 32 33 34 35 36 |
# 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 ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# 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 ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# 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 |