class Dieses::Support::Ruler

Attributes

multiple[R]
unit[R]

Public Class Methods

call(unit, multiple = 1) click to toggle source
# File lib/dieses/support/ruler.rb, line 6
def self.call(unit, multiple = 1)
  new unit, (multiple || 1)
end
divide(unit:, multiple:, length:) click to toggle source
# File lib/dieses/support/ruler.rb, line 10
def self.divide(unit:, multiple:, length:)
  ruler = new(unit, multiple)
  [ruler.division(length), ruler.even(length)]
end
new(unit, multiple = 1) click to toggle source
# File lib/dieses/support/ruler.rb, line 17
def initialize(unit, multiple = 1)
  @unit = unit.to_f
  @multiple = multiple.to_f
end

Public Instance Methods

division(length) click to toggle source
# File lib/dieses/support/ruler.rb, line 30
def division(length)
  (length / major).to_i.to_f
end
even(length) click to toggle source
# File lib/dieses/support/ruler.rb, line 26
def even(length)
  major * division(length)
end
major() click to toggle source
# File lib/dieses/support/ruler.rb, line 22
def major
  @major ||= multiple * unit
end
measure(n) click to toggle source
# File lib/dieses/support/ruler.rb, line 34
def measure(n)
  n * unit
end