Module: ActiveObject::Integer

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
}

Instance Method Summary collapse

Instance Method Details

#factorialObject



8
9
10
11
# File 'lib/active_object/integer.rb', line 8

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

#of(&block) ⇒ Object



13
14
15
# File 'lib/active_object/integer.rb', line 13

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

#romanObject



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

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

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

#timeObject



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

def time
  Time.at(self)
end