lib/physical/cuboid.rb in physical-0.3.1 vs lib/physical/cuboid.rb in physical-0.3.2

- old
+ new

@@ -23,9 +23,30 @@ id == other.id end private + NORMALIZED_METHOD_REGEX = /(\w+)\??$/ + + def method_missing(method) + symbolized_properties = properties.symbolize_keys + method_name = normalize_method_name(method) + if symbolized_properties.key?(method_name) + symbolized_properties[method_name] + else + super + end + end + + def respond_to_missing?(method, *args) + method_name = normalize_method_name(method) + properties.symbolize_keys.key?(method_name) || super + end + + def normalize_method_name(method) + method.to_s.sub(NORMALIZED_METHOD_REGEX, '\1').to_sym + end + def fill_dimensions(dimensions) dimensions.fill(dimensions.length..2) do |index| @dimensions[index] || Measured::Length(self.class::DEFAULT_LENGTH, :cm) end end