Module: Puppet::Pops::Types::PIntegerType::ClassModule

Includes:
Enumerable
Defined in:
lib/puppet/pops/types/types.rb

Instance Method Summary collapse

Instance Method Details

#==(o) ⇒ Object



147
148
149
# File 'lib/puppet/pops/types/types.rb', line 147

def ==(o)
  self.class == o.class && from == o.from && to == o.to
end

#eachObject

Returns Enumerator if no block is given Returns self if size is infinity (does not yield)



133
134
135
136
137
138
139
140
141
# File 'lib/puppet/pops/types/types.rb', line 133

def each
  return self.to_enum unless block_given?
  return nil if from.nil? || to.nil?
  if to < from
    from.downto(to) {|x| yield x }
  else
    from.upto(to) {|x| yield x }
  end
end

#hashObject



143
144
145
# File 'lib/puppet/pops/types/types.rb', line 143

def hash
  [self.class, from, to].hash
end

#rangeObject

Returns the range as an array ordered so the smaller number is always first. The number may be Infinity or -Infinity.



121
122
123
124
125
126
127
128
129
# File 'lib/puppet/pops/types/types.rb', line 121

def range
  f = from || NEGATIVE_INFINITY
  t = to || INFINITY
  if f < t
    [f, t]
  else
    [t,f]
  end
end

#sizeObject

Returns Float.Infinity if one end of the range is unbound



114
115
116
117
# File 'lib/puppet/pops/types/types.rb', line 114

def size
  return INFINITY if from.nil? || to.nil?
  1+(to-from).abs
end