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



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

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



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

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



230
231
232
# File 'lib/puppet/pops/types/iterable.rb', line 230

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



234
235
236
# File 'lib/puppet/pops/types/iterable.rb', line 234

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/puppet/pops/types/iterable.rb', line 238

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



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

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



268
269
270
271
# File 'lib/puppet/pops/types/iterable.rb', line 268

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



273
274
275
# File 'lib/puppet/pops/types/iterable.rb', line 273

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