Skip to content

Commit

Permalink
Work around enumerable string deprecation warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremy committed Feb 6, 2009
1 parent 86dd2f8 commit 86dcfdc
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions activesupport/lib/active_support/testing/assertions.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -32,12 +32,15 @@ module Assertions
# post :delete, :id => ... # post :delete, :id => ...
# end # end
def assert_difference(expressions, difference = 1, message = nil, &block) def assert_difference(expressions, difference = 1, message = nil, &block)
expression_evaluations = Array(expressions).collect{ |expression| lambda { eval(expression, block.send(:binding)) } } case expressions

when String
original_values = expression_evaluations.inject([]) { |memo, expression| memo << expression.call } before = eval(expressions, block.send(:binding))
yield yield
expression_evaluations.each_with_index do |expression, i| assert_equal(before + difference, eval(expressions, block.send(:binding)), message)
assert_equal original_values[i] + difference, expression.call, message when Enumerable
expressions.each { |e| assert_difference(e, difference, message, &block) }
else
raise ArgumentError, "Unrecognized expression: #{expressions.inspect}"
end end
end end


Expand Down

0 comments on commit 86dcfdc

Please sign in to comment.