Class: Range
Instance Method Summary collapse
-
#&(other_range) ⇒ Range?
The intersection of 2 ranges.
-
#include_range?(other_range) ⇒ true, false
Does this range wholely include other_range? (true or false).
-
#size ⇒ Object
The Range’s computed size, ie the number of elements in range.
Instance Method Details
#&(other_range) ⇒ Range?
The intersection of 2 ranges. Returns nil if there are no common elements.
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/plist4r/mixin/ruby_stdlib.rb', line 133 def & other_range case other_range when Range intersection = [] each do |i| intersection << i if other_range.include? i end result = intersection.to_ranges case result[0] when Integer return (result[0])..(result[0]) when Range, nil return result[0] end else raise "unsupported type" end end |
#include_range?(other_range) ⇒ true, false
Does this range wholely include other_range? (true or false)
160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/plist4r/mixin/ruby_stdlib.rb', line 160 def include_range? other_range case other_range when Range if other_range.first >= self.first && other_range.last <= self.last return true else return false end else raise "unsupported type" end end |
#size ⇒ Object
The Range’s computed size, ie the number of elements in range.
125 126 127 |
# File 'lib/plist4r/mixin/ruby_stdlib.rb', line 125 def size last - first + 1 end |