Class: Integer

Inherits:
Object show all
Defined in:
lib/active_object/integer.rb

Constant Summary collapse

ROMAN_VALUES =
{
  'M'  => 1000,
  'CM' => 900,
  'D'  => 500,
  'CD' => 400,
  'C'  => 100,
  'XC' => 90,
  'L'  => 50,
  'XL' => 40,
  'X'  => 10,
  'IX' => 9,
  'V'  => 5,
  'IV' => 4,
  'I'  => 1
}.freeze

Instance Method Summary collapse

Instance Method Details

#factorialObject



19
20
21
22
# File 'lib/active_object/integer.rb', line 19

def factorial
  return(1) if zero?
  2.upto(self).inject(1) { |p, n| p * n }
end

#of(&block) ⇒ Object



24
25
26
# File 'lib/active_object/integer.rb', line 24

def of(&block)
  Array.new(self, &block)
end

#romanObject



28
29
30
31
32
33
# File 'lib/active_object/integer.rb', line 28

def roman
  return(''.freeze) if zero?
  return("-#{(-self).roman}") if self < 0

  ROMAN_VALUES.each { |k, v| return("#{k}#{(self - v).roman}") if v <= self }
end

#timeObject



35
36
37
# File 'lib/active_object/integer.rb', line 35

def time
  Time.at(self)
end