Class: Range

Inherits:
Object
  • Object
show all
Defined in:
lib/sleek/core_ext/range.rb

Instance Method Summary collapse

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

#differenceObject

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

Returns:

  • (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.

Returns:

  • (Boolean)


18
19
20
# File 'lib/sleek/core_ext/range.rb', line 18

def time_range?
  self.begin.is_a?(Time)
end

#to_i_rangeObject

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