class DR::DateRange
Attributes
d[RW]
t[RW]
Public Class Methods
new(d)
click to toggle source
# File lib/dr/parse/date_parse.rb, line 108 def initialize(d) @d=d @t=d.map do |range| case range.length when 1 [DateRange.to_time(range[0], complete_date: :first), DateRange.to_time(range[0], complete_date: :last)] when 2 [DateRange.to_time(range[0], complete_date: :first), DateRange.to_time(range[1], complete_date: :last)] else range.map {|i| DateRange.to_time(i)} end end end
Public Instance Methods
<=>(d2, sort_date_by: :last,**_opts)
click to toggle source
sort_date_by :first or :last
# File lib/dr/parse/date_parse.rb, line 125 def <=>(d2, sort_date_by: :last,**_opts) d1=@t; d2=d2.t sel=lambda do |d| case sort_date_by when :last return d.map {|i| i.last} when :first return d.map {|i| i.first} end end best=lambda do |d| case sort_date_by when :last return d.max when :first return d.min end end b1=best.call(sel.call(d1)) b2=best.call(sel.call(d2)) return b1 <=> b2 end
to_s(join: ", ", range_join: " – ", **opts)
click to toggle source
# File lib/dr/parse/date_parse.rb, line 148 def to_s(join: ", ", range_join: " – ", **opts) r=@d.map do |range| range.map do |d| DateRange.output_date(d,**opts) end.join(range_join) end.join(join) r.empty? ? nil : r end