diff options
author | Rick Olson <technoweenie@gmail.com> | 2007-01-23 05:22:33 +0000 |
---|---|---|
committer | Rick Olson <technoweenie@gmail.com> | 2007-01-23 05:22:33 +0000 |
commit | 1bdb14bdd3cad4ae8850040d6d82c3c3c624f224 (patch) | |
tree | c190143d622d9bc06c7cb350366bf12a288797a3 /activeresource/test/abstract_unit.rb | |
parent | f3f691eaf2ebf0452e634e68dfc3c0eac58d09f2 (diff) | |
download | rails-1bdb14bdd3cad4ae8850040d6d82c3c3c624f224.tar.gz rails-1bdb14bdd3cad4ae8850040d6d82c3c3c624f224.tar.bz2 rails-1bdb14bdd3cad4ae8850040d6d82c3c3c624f224.zip |
Increase ActiveResource::Base test coverage. Closes #7173, #7174 [Rich Collins]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6020 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activeresource/test/abstract_unit.rb')
-rw-r--r-- | activeresource/test/abstract_unit.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/activeresource/test/abstract_unit.rb b/activeresource/test/abstract_unit.rb index f19635826c..08b41329a7 100644 --- a/activeresource/test/abstract_unit.rb +++ b/activeresource/test/abstract_unit.rb @@ -6,3 +6,31 @@ require 'active_resource/http_mock' require 'active_support/breakpoint' ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/debug.log") + +class SetterTrap < Builder::BlankSlate + class << self + def rollback_sets(obj) + returning yield(setter_trap = new(obj)) do + setter_trap.rollback_sets + end + end + end + + def initialize(obj) + @cache = {} + @obj = obj + end + + def respond_to?(method) + @obj.respond_to?(method) + end + + def method_missing(method, *args, &proc) + @cache[method] = @obj.send(method.to_s[0 ... -1]) if method.to_s[-1 .. -1] == "=" unless @cache[method] + @obj.send method, *args, &proc + end + + def rollback_sets + @cache.each { |k, v| @obj.send k, v } + end +end
\ No newline at end of file |