Skip to content

End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

instance method

Range#%

%(n) {|element| ... } → self
%(n) → enumerator

Iterates over the elements of self.

With a block given, calls the block with selected elements of the range; returns self:

Example
a = []
(1..5).%(2) {|element| a.push(element) } # => 1..5
a # => [1, 3, 5]
a = []
('a'..'e').%(2) {|element| a.push(element) } # => "a".."e"
a # => ["a", "c", "e"]

With no block given, returns an enumerator, which will be of class Enumerator::ArithmeticSequence if self is numeric; otherwise of class Enumerator:

Example
e = (1..5) % 2 # => ((1..5).%(2))
e.class        # => Enumerator::ArithmeticSequence
('a'..'e') % 2 # =>  #<Enumerator: ...>

Related: Range#step.

See also .new #== .json_create #=== also in 4.1 · 4.0 · 3.4 · 3.3 · 3.1 · 3.0