Class: Enumerator

Inherits:
Object show all
Defined in:
lib/mug/bool.rb,
lib/mug/functional.rb

Direct Known Subclasses

Iterator

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.unfold(seed, &blk) ⇒ Object

Creates an Enumerator that can unfold a sequence from a given seed.

Raises:

  • (ArgumentError)


162
163
164
165
166
167
168
169
170
171
172
# File 'lib/mug/functional.rb', line 162

def unfold(seed, &blk)
  raise ArgumentError, 'no block given' unless block_given?
  Enumerator.new do |y|
    loop do
      result = blk.call(seed)
      break if result.nil?
      value, seed = result
      y << value
    end
  end
end

Instance Method Details

#to_bObject

Converts enum to a boolean. Returns true if there are any elements. An enumerator whose size cannot be calculated lazily is assumed to be true.



97
98
99
# File 'lib/mug/bool.rb', line 97

def to_b
  (s = size).nil? || s.to_b
end