Class: Range
- Inherits:
-
Object
- Object
- Range
- Defined in:
- lib/sleek/core_ext/range.rb
Instance Method Summary collapse
- #-(other) ⇒ Object
-
#difference ⇒ Object
Public: Calculate the differentce between ends of the range.
- #int_range? ⇒ Boolean
-
#previous(n = 1) ⇒ Object
Public: Make up a range for previous n periods.
-
#time_range? ⇒ Boolean
Public: Check if range elements are times.
-
#to_i_range ⇒ Object
Public: Convert both ends of range to integers.
-
#to_time_range(zone = nil) ⇒ Object
Public: Convert both ends of range to times.
Instance Method Details
#-(other) ⇒ Object
40 41 42 |
# File 'lib/sleek/core_ext/range.rb', line 40 def -(other) (self.begin - other)..(self.end - other) end |
#difference ⇒ Object
Public: Calculate the differentce between ends of the range.
23 24 25 |
# File 'lib/sleek/core_ext/range.rb', line 23 def difference self.end - self.begin end |
#int_range? ⇒ Boolean
13 14 15 |
# File 'lib/sleek/core_ext/range.rb', line 13 def int_range? self.begin.is_a?(Integer) end |
#previous(n = 1) ⇒ Object
Public: Make up a range for previous n periods. Start of new range would be start of current - difference between start and end * number of periods, end of new range would be start of current.
Example
(1200..1300).previous
# => 1100..1200
36 37 38 |
# File 'lib/sleek/core_ext/range.rb', line 36 def previous(n = 1) self - difference * n end |
#time_range? ⇒ Boolean
Public: Check if range elements are times.
18 19 20 |
# File 'lib/sleek/core_ext/range.rb', line 18 def time_range? self.begin.is_a?(Time) end |
#to_i_range ⇒ Object
Public: Convert both ends of range to integers.
3 4 5 |
# File 'lib/sleek/core_ext/range.rb', line 3 def to_i_range self.begin.to_i..self.end.to_i end |
#to_time_range(zone = nil) ⇒ Object
Public: Convert both ends of range to times.
8 9 10 11 |
# File 'lib/sleek/core_ext/range.rb', line 8 def to_time_range(zone = nil) time = zone ? zone : Time time.at(self.begin)..time.at(self.end) end |