lib/measured/base.rb in measured-1.6.0 vs lib/measured/base.rb in measured-2.0.0.pre1

- old
+ new

@@ -4,14 +4,27 @@ module Measured class UnitError < StandardError ; end class << self + def build(**kwargs, &block) + builder = UnitSystemBuilder.new(**kwargs) + 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 Measured::Measurable.subclasses.map(&:to_s).include?(class_name) + 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 @@ -24,9 +37,11 @@ end end require "measured/arithmetic" require "measured/unit" -require "measured/conversion" +require "measured/unit_system" +require "measured/case_insensitive_unit" +require "measured/case_insensitive_unit_system" +require "measured/unit_system_builder" require "measured/conversion_table" require "measured/measurable" -require "measured/case_sensitive_measurable"