Class: Puppet::Pops::Types::Iterator Private

Inherits:
Object
  • Object
show all
Includes:
Iterable
Defined in:
lib/puppet/pops/types/iterable.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Direct Known Subclasses

HashIterator, IntegerRangeIterator, StepIterator

Instance Method Summary collapse

Methods included from Iterable

asserted_iterable, #each, #hash_style?, on, #to_a, unbounded?

Constructor Details

#initialize(element_type, enumeration) ⇒ Iterator

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Iterator.

API:

  • private



190
191
192
193
# File 'lib/puppet/pops/types/iterable.rb', line 190

def initialize(element_type, enumeration)
  @element_type = element_type
  @enumeration = enumeration
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *arguments, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



207
208
209
# File 'lib/puppet/pops/types/iterable.rb', line 207

def method_missing(name, *arguments, &block)
  @enumeration.send(name, *arguments, &block)
end

Instance Method Details

#all?(&block) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

API:

  • private



223
224
225
# File 'lib/puppet/pops/types/iterable.rb', line 223

def all?(&block)
  @enumeration.all?(&block)
end

#any?(&block) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

API:

  • private



227
228
229
# File 'lib/puppet/pops/types/iterable.rb', line 227

def any?(&block)
  @enumeration.any?(&block)
end

#element_typeObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



195
196
197
# File 'lib/puppet/pops/types/iterable.rb', line 195

def element_type
  @element_type
end

#map(*args, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



215
216
217
# File 'lib/puppet/pops/types/iterable.rb', line 215

def map(*args, &block)
  @enumeration.map(*args, &block)
end

#nextObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



211
212
213
# File 'lib/puppet/pops/types/iterable.rb', line 211

def next
  @enumeration.next
end

#reduce(*args, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



219
220
221
# File 'lib/puppet/pops/types/iterable.rb', line 219

def reduce(*args, &block)
  @enumeration.reduce(*args, &block)
end

#respond_to_missing?(name, include_private) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

API:

  • private



203
204
205
# File 'lib/puppet/pops/types/iterable.rb', line 203

def respond_to_missing?(name, include_private)
  @enumeration.respond_to?(name, include_private)
end

#reverse_each(&block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



251
252
253
254
# File 'lib/puppet/pops/types/iterable.rb', line 251

def reverse_each(&block)
  r = Iterator.new(@element_type, @enumeration.reverse_each)
  block_given? ? r.each(&block) : r
end

#sizeObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



199
200
201
# File 'lib/puppet/pops/types/iterable.rb', line 199

def size
  @enumeration.size
end

#step(step, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:

API:

  • private



231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
# File 'lib/puppet/pops/types/iterable.rb', line 231

def step(step, &block)
  raise ArgumentError if step <= 0
  r = self
  r = r.step_iterator(step) if step > 1

  if block_given?
    begin
    if block.arity == 1
      loop { yield(r.next) }
    else
      loop { yield(*r.next) }
    end
    rescue StopIteration
    end
    self
  else
    r
  end
end

#step_iterator(step) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



256
257
258
# File 'lib/puppet/pops/types/iterable.rb', line 256

def step_iterator(step)
  StepIterator.new(@element_type, self, step)
end

#to_sObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



260
261
262
263
# File 'lib/puppet/pops/types/iterable.rb', line 260

def to_s
  et = element_type
  et.nil? ? 'Iterator-Value' : "Iterator[#{et.generalize}]-Value"
end

#unbounded?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

API:

  • private



265
266
267
# File 'lib/puppet/pops/types/iterable.rb', line 265

def unbounded?
  Iterable.unbounded?(@enumeration)
end