Sha256: f7e191abebca92a06fa31c5f9a0d164f361bfd9b1b23b39f8ec665e61db951c3

Contents?: true

Size: 529 Bytes

Versions: 1

Compression:

Stored size: 529 Bytes

Contents

class Numeric
  def unit(unit, system = nil)
    Unit.to_unit(unit, system) * self
  end

  def method_missing(name, system = nil)
    Unit.to_unit(Unit.method_name_to_unit(name), system) * self
  end
end

class Unit < Numeric
  def self.method_name_to_unit(name)
    name.to_s.sub(/^per_/, '1/').gsub('_per_', '/').gsub('_', ' ')
  end

  def method_missing(name)
    if name.to_s =~ /^in_/
      self.in(Unit.method_name_to_unit($'))
    else
      Unit.to_unit(Unit.method_name_to_unit(name), system) * self
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
unit-0.3.0 lib/unit/dsl.rb