lib/test_support/cucumber/support/values.rb in sniff-0.1.13 vs lib/test_support/cucumber/support/values.rb in sniff-0.1.14

- old
+ new

@@ -1,51 +1,61 @@ require 'date' require 'active_support' +require 'chronic' -def coerce_value(value) - # what is this, PHP? - if value.nil? - nil - elsif value == 'true' - true - elsif value == 'false' - false - elsif value =~ /\d+\.\d+/ - value.to_f - elsif value =~ /^\d+$/ - value.to_i - else - value +module CucumberValueParser + def coerce_value(value) + # what is this, PHP? + if value.nil? + nil + elsif value == 'true' + true + elsif value == 'false' + false + elsif value =~ /\d+\.\d+/ + value.to_f + elsif value =~ /^\d+$/ + value.to_i + elsif value.is_a?(String) and date = Chronic.parse(value) + date + else + value + end end -end -def compare_values(a, b) - if b.blank? - a.should be_blank - elsif a.is_a? Date or a.is_a? Time - b = Date.parse b - a.should == b - elsif b =~ /\d+\.\d+/ - b = b.to_f - a.to_f.should be_close(b, 0.00001) - elsif b =~ /^\d+$/ - b = b.to_i - a.to_i.should == b - else - a.should == b + def compare_values(a, b) + if b.blank? + a.should be_blank + elsif a.is_a? Time + b = Chronic.parse b unless b.is_a?(Time) + a.should == b + elsif a.is_a? Date + b = Date.parse b unless b.is_a?(Date) + a.should == b + elsif b =~ /\d+\.\d+/ + b = b.to_f + a.to_f.should be_close(b, 0.00001) + elsif b =~ /^\d+$/ + b = b.to_i + a.to_i.should == b + else + a.should == b + end end -end -def equality?(a, b) - if b.blank? - a.blank? - elsif a.is_a? Date or a.is_a? Time - b = Date.parse b - a == b - elsif b =~ /\d+\.\d+/ - (a.to_f - b.to_f).abs <= 0.00001 - elsif b =~ /^\d+$/ - a.to_i == b.to_i - else - a == b + def equality?(a, b) + if b.blank? + a.blank? + elsif a.is_a? Date or a.is_a? Time + b = Date.parse b + a == b + elsif b =~ /\d+\.\d+/ + (a.to_f - b.to_f).abs <= 0.00001 + elsif b =~ /^\d+$/ + a.to_i == b.to_i + else + a == b + end end end + +include CucumberValueParser