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"