Sha256: 92d68fae1040fcd41b05ba66c46f5d0bbe55b2225e32ddbc3b27456f32da54f5

Contents?: true

Size: 521 Bytes

Versions: 19

Compression:

Stored size: 521 Bytes

Contents

class SetterTrap < BasicObject
  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($`) if method.to_s =~ /=$/
    @obj.send method, *args, &proc
  end

  def rollback_sets
    @cache.each { |k, v| @obj.send k, v }
  end
end

Version data entries

19 entries across 19 versions & 4 rubygems

Version Path
activeresource-2.0.1 test/setter_trap.rb
activeresource-2.0.4 test/setter_trap.rb
activeresource-2.0.2 test/setter_trap.rb
activeresource-2.0.5 test/setter_trap.rb
radiant-0.6.5.1 vendor/rails/activeresource/test/setter_trap.rb
radiant-0.6.5 vendor/rails/activeresource/test/setter_trap.rb
radiant-0.6.7 vendor/rails/activeresource/test/setter_trap.rb
radiant-0.6.6 vendor/rails/activeresource/test/setter_trap.rb
radiant-0.6.8 vendor/rails/activeresource/test/setter_trap.rb
radiant-0.6.9 vendor/rails/activeresource/test/setter_trap.rb
spree-0.0.9 vendor/rails/activeresource/test/setter_trap.rb
spree-0.2.0 vendor/rails/activeresource/test/setter_trap.rb
swivel-0.0.149 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.150 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.156 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.160 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.152 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.157 vendor/activeresource-2.0.2-/test/setter_trap.rb
swivel-0.0.155 vendor/activeresource-2.0.2-/test/setter_trap.rb