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