class Timely::TemporalPatterns::Interval
Attributes
first_datetime[RW]
last_datetime[RW]
Public Class Methods
new(first_datetime, last_datetime = nil)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 16 def initialize(first_datetime, last_datetime = nil) self.first_datetime = first_datetime self.last_datetime = last_datetime || first_datetime end
surrounding(intervals)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 6 def self.surrounding(intervals) first_datetime = nil last_datetime = nil intervals.each do |i| first_datetime = i.first_datetime if first_datetime.nil? || i.first_datetime < first_datetime last_datetime = i.last_datetime if last_datetime.nil? || i.last_datetime > last_datetime end new(first_datetime, last_datetime) end
Public Instance Methods
==(other)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 37 def ==(other) self.range == other.range end
date_time_to_s(datetime)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 56 def date_time_to_s(datetime) datetime.strftime("%I:%M %p") end
datetimes()
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 33 def datetimes range.to_a end
first_datetime=(first_datetime)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 21 def first_datetime=(first_datetime) @first_datetime = first_datetime.to_datetime end
last_datetime=(last_datetime)
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 25 def last_datetime=(last_datetime) @last_datetime = last_datetime.to_datetime end
range()
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 29 def range (first_datetime..last_datetime) end
to_s()
click to toggle source
# File lib/timely/temporal_patterns/interval.rb, line 41 def to_s if first_datetime == last_datetime "on #{first_datetime}#{first_datetime == first_datetime.beginning_of_day ? "" : " at #{first_datetime.strftime("%I:%M %p")}"}" elsif first_datetime == first_datetime.beginning_of_month && last_datetime == last_datetime.end_of_month if first_datetime.month == last_datetime.month "during #{first_datetime.strftime('%b %Y')}" else "from #{first_datetime.strftime('%b %Y')} to #{last_datetime.strftime('%b %Y')}" end else "from #{first_datetime}#{first_datetime == first_datetime.beginning_of_day ? "" : " at #{first_datetime.strftime("%I:%M %p")}"} "+ "to #{last_datetime}#{last_datetime == last_datetime.beginning_of_day ? "" : " at #{last_datetime.strftime("%I:%M %p")}"}" end end