Class: Infinity

Inherits:
Numeric show all
Includes:
Multiton
Defined in:
lib/carat/infinity.rb

Constant Summary

Constants included from Multiton

Multiton::MULTITON_ID_HOOK, Multiton::MULTITON_NEW_HOOK, Multiton::POOLS, Multiton::VERSION

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Multiton

append_features

Constructor Details

#initialize(aleph = 0, direction = 1) ⇒ Infinity

Returns a new instance of Infinity.



29
30
31
32
# File 'lib/carat/infinity.rb', line 29

def initialize(aleph=0, direction=1)
  @aleph = aleph
  @direction = direction
end

Instance Attribute Details

#alephObject (readonly)

Returns the value of attribute aleph.



27
28
29
# File 'lib/carat/infinity.rb', line 27

def aleph
  @aleph
end

#directionObject (readonly)

Returns the value of attribute direction.



27
28
29
# File 'lib/carat/infinity.rb', line 27

def direction
  @direction
end

Class Method Details

.[](a) ⇒ Object



23
24
25
# File 'lib/carat/infinity.rb', line 23

def self.[](a)
  self.new(a)
end

Instance Method Details

#-@Object



34
35
36
# File 'lib/carat/infinity.rb', line 34

def -@
  self.class.instance(@aleph, @direction * -1)
end

#<=>(x) ⇒ Object



48
49
50
# File 'lib/carat/infinity.rb', line 48

def <=>(x)
  return (x.kind_of?(Infinity) ? (@aleph <=> x.aleph) : @direction)
end

#timesObject



42
43
44
45
46
# File 'lib/carat/infinity.rb', line 42

def times
  loop do
    yield
  end
end

#to_fObject



38
39
40
# File 'lib/carat/infinity.rb', line 38

def to_f
  (1.0/0) * @direction
end

#to_sObject



52
53
54
# File 'lib/carat/infinity.rb', line 52

def to_s
  %Q{#{ '-' if @direction == -1 }Infinity[#{@aleph}]}
end