Sha256: 0b29813923544b91fc674380db947c970d40fed5302a0da13f26782640542a46
Contents?: true
Size: 1.06 KB
Versions: 3
Compression:
Stored size: 1.06 KB
Contents
require "measured/version" require "active_support/all" require "bigdecimal" 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 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/unit" 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"
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
measured-2.0.0.pre3 | lib/measured/base.rb |
measured-2.0.0.pre2 | lib/measured/base.rb |
measured-2.0.0.pre1 | lib/measured/base.rb |