File: reverse_each.rb

package info (click to toggle)
ruby-backports 3.25.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,912 kB
  • sloc: ruby: 11,759; makefile: 6
file content (20 lines) | stat: -rw-r--r-- 549 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unless (Range.new(nil, 3) rescue [:ok]).reverse_each.first
  require 'backports/tools/alias_method_chain'

  class Range
    def reverse_each_with_endless_handling(&block)
      case self.end
      when nil
        raise "Hey"
      when Float::INFINITY
        raise "Hey"
      when Integer
        delta = exclusive? ? 1 : 0
        ((self.end - delta)..(self.begin)).each(&block)
      else
        reverse_each_without_endless_handling(&block)
      end
    end
    Backports.alias_method_chain self, :reverse_each, :endless_handling
  end
end