Class: Fixnum

Inherits:
Object
  • Object
show all
Defined in:
lib/ndr_support/fixnum/julian_date_conversions.rb,
lib/ndr_support/fixnum/calculations.rb

Overview

Extend Fixnum for use in our Daterange class

Instance Method Summary collapse

Instance Method Details

#choose(k) ⇒ Object

Gets binomial coefficients:

4.choose(2) #=> 6


6
7
8
9
# File 'lib/ndr_support/fixnum/calculations.rb', line 6

def choose(k)
  fail(ArgumentError, "cannot choose #{k} from #{self}") unless (0..self) === k
  self.factorial / (k.factorial * (self - k).factorial)
end

#factorialObject



11
12
13
14
# File 'lib/ndr_support/fixnum/calculations.rb', line 11

def factorial
  fail("cannot calculate #{self}.factorial") unless self >= 0 # limited implementation
  self.zero? ? 1 : (1..self).inject { |product, i| product * i }
end

#jd_to_dateObject

Julian date number to Ruby Date



6
7
8
# File 'lib/ndr_support/fixnum/julian_date_conversions.rb', line 6

def jd_to_date
  Date.jd(self)
end

#jd_to_datetimeObject



10
11
12
13
# File 'lib/ndr_support/fixnum/julian_date_conversions.rb', line 10

def jd_to_datetime
  date = jd_to_date
  Ourdate.build_datetime(date.year, date.month, date.day)
end