class Puppet::Pops::Types::Enumeration

The Enumeration class provides default Enumerable::Enumerator creation for Puppet Programming Language runtime objects that supports the concept of enumeration.

Public Instance Methods

enumerator(o) click to toggle source

Produces an Enumerator for Array, Hash, Integer, Integer Range, and String.

# File lib/puppet/pops/types/enumeration.rb, line 14
def enumerator(o)
  case o
  when String
    x = o.chars
    # Ruby 1.8.7 returns Enumerable::Enumerator, Ruby 1.8.9 Enumerator, and 2.0.0 an Array
    x.is_a?(Array) ? x.each : x
  when Integer
    o.times
  when Array
    o.each
  when Hash
    o.each
  when Puppet::Pops::Types::PIntegerType
    # Not enumerable if representing an infinite range
    return nil if o.to.nil? || o.from.nil?
    o.each
  else
    nil
  end
end

Public Class Methods

enumerator(o) click to toggle source

Produces an Enumerable::Enumerator for Array, Hash, Integer, Integer Range, and String.

# File lib/puppet/pops/types/enumeration.rb, line 7
def self.enumerator(o)
  @@singleton ||= new
  @@singleton.enumerator(o)
end