Sha256: c4b414325e7150666d94bbbaa1cb4f033d4e0107159a6a684ad8ba7f395de00a

Contents?: true

Size: 657 Bytes

Versions: 10

Compression:

Stored size: 657 Bytes

Contents

module Support
  module Swappers
    def swap_with_encryptor(klass, encryptor, options={})
      klass.instance_variable_set(:@encryptor_class, nil)

      swap klass, options.merge(:encryptor => encryptor) do
        begin
          yield
        ensure
          klass.instance_variable_set(:@encryptor_class, nil)
        end
      end
    end

    def swap(object, new_values)
      old_values = {}
      new_values.each do |key, value|
        old_values[key] = object.send key
        object.send :"#{key}=", value
      end
      yield
    ensure
      old_values.each do |key, value|
        object.send :"#{key}=", value
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
devise-encryptable-0.2.0 test/support/swappers.rb
devise-encryptable-0.1.2 test/support/swappers.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/devise-encryptable-0.1.1/test/support/swappers.rb
devise-encryptable-0.1.1 test/support/swappers.rb
devise-encryptable-0.1.0 test/support/swappers.rb