Sha256: bfb861f06903572f421a41a51fe53dac72f9fb438027861b0ca5d1ca877a1f5a

Contents?: true

Size: 1.47 KB

Versions: 19

Compression:

Stored size: 1.47 KB

Contents

require 'date'
require 'active_support'
require 'chronic'

module CucumberValueParser
  def coerce_value(value)
    # what is this, PHP?
    if value.blank?
      nil
    elsif value == 'true'
      true
    elsif value == 'false'
      false
    elsif value =~ /\d+.*,.*\d/
      value
    elsif value =~ /\d+\.\d+/
      value.to_f
    elsif value =~ /^0/
      value
    elsif value =~ /^\d+$/
      value.to_i
    elsif value =~ /Address:/
      value.sub(/Address:\s*/,'')
    elsif value.is_a?(String) and date = Chronic.parse(value)
      date
    else
      value
    end
  end

  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/
      a.should == b
    elsif b =~ /\d+\.\d+/
      b = b.to_f
      a.to_f.should be_within(0.00001).of(b)
    elsif b =~ /^0/
      a.to_s.should == b
    elsif b =~ /^\d+$/
      b = b.to_i
      a.to_i.should == b
    else
      a.should == b
    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 == b
    elsif b =~ /\d+\.\d+/
      (a.to_f - b.to_f).abs <= 0.00001
    elsif b =~ /^0/
      a == b
    elsif b =~ /^\d+$/
      a.to_i == b.to_i
    else
      a == b
    end
  end
end

include CucumberValueParser

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
sniff-0.11.2 lib/test_support/cucumber/support/values.rb
sniff-0.11.1 lib/test_support/cucumber/support/values.rb
sniff-0.11.0 lib/test_support/cucumber/support/values.rb
sniff-0.10.1 lib/test_support/cucumber/support/values.rb
sniff-0.10.0 lib/test_support/cucumber/support/values.rb
sniff-0.9.0 lib/test_support/cucumber/support/values.rb
sniff-0.8.7 lib/test_support/cucumber/support/values.rb
sniff-0.8.6 lib/test_support/cucumber/support/values.rb
sniff-0.8.5 lib/test_support/cucumber/support/values.rb
sniff-0.8.4 lib/test_support/cucumber/support/values.rb
sniff-0.8.3 lib/test_support/cucumber/support/values.rb
sniff-0.8.2 lib/test_support/cucumber/support/values.rb
sniff-0.8.1 lib/test_support/cucumber/support/values.rb
sniff-0.8.0 lib/test_support/cucumber/support/values.rb
sniff-0.7.3 lib/test_support/cucumber/support/values.rb
sniff-0.7.2 lib/test_support/cucumber/support/values.rb
sniff-0.7.1 lib/test_support/cucumber/support/values.rb
sniff-0.7.0 lib/test_support/cucumber/support/values.rb
sniff-0.6.8 lib/test_support/cucumber/support/values.rb