Sha256: ef83cb94a66c7e2d7db6679de3c05069d0011c7d48c2a1c001ed8c0f712547dd
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
require "forwardable" require "measured/version" require "active_support/all" require "bigdecimal" module Measured class UnitError < StandardError ; end class << self def build(&block) builder = UnitSystemBuilder.new builder.instance_eval(&block) Class.new(Measurable) do class << self attr_reader :unit_system end @unit_system = builder.build end end def method_missing(method, *args) class_name = "Measured::#{ method }" if Measurable.subclasses.map(&:to_s).include?(class_name) klass = class_name.constantize Measured.define_singleton_method(method) do |value, unit| klass.new(value, unit) end klass.new(*args) else super end end end end require "measured/arithmetic" require "measured/parser" require "measured/unit" require "measured/unit_system" require "measured/unit_system_builder" require "measured/conversion_table_builder" require "measured/measurable"
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
measured-2.4.0 | lib/measured/base.rb |