class UnitSoup::Rule
Attributes
that_measurement[R]
this_measurement[R]
Public Class Methods
from(r)
click to toggle source
# File lib/unit_soup/rule.rb, line 14 def self.from(r) self.new r end
new(*args)
click to toggle source
# File lib/unit_soup/rule.rb, line 20 def initialize(*args) case args.length when 1 r = args[0] raise ArgumentError.new("No argument provided") unless r if r.is_a? Rule @this_measurement = Measurement.new r.this_measurement @that_measurement = Measurement.new r.that_measurement else strs = r.to_s.split '=' raise ArgumentError.new("Format: 12 inch = 1 foot") unless strs.length == 2 @this_measurement = Measurement.new strs[0] @that_measurement = Measurement.new strs[1] end else @this_measurement = Measurement.new(args[0]) @that_measurement = Measurement.new(args[1]) end end
valid?(str)
click to toggle source
# File lib/unit_soup/rule.rb, line 8 def self.valid?(str) return false unless str strs = str.split '=' strs.length > 1 && Measurement.valid?(strs[0]) && Measurement.valid?(strs[1]) end
Public Instance Methods
==(o)
click to toggle source
# File lib/unit_soup/rule.rb, line 44 def ==(o) this_measurement == o.this_measurement && that_measurement == o.that_measurement end
eql?(o)
click to toggle source
# File lib/unit_soup/rule.rb, line 48 def eql?(o) this_measurement == o.this_measurement && that_measurement == o.that_measurement end
hash()
click to toggle source
# File lib/unit_soup/rule.rb, line 52 def hash to_s.hash end
to_s()
click to toggle source
# File lib/unit_soup/rule.rb, line 40 def to_s "#{this_measurement} = #{that_measurement}" end