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

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

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.

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.



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.



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:

  • (Boolean)


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:

  • (Boolean)


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.



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.



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.



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.



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:

  • (Boolean)


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.



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.



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:

  • (ArgumentError)


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.



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.



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:

  • (Boolean)


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

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