Sha256: 260b3f7e5012426129871031013b9a43e3b610b3b60fdb0170feb8f1a93e74c0

Contents?: true

Size: 614 Bytes

Versions: 21

Compression:

Stored size: 614 Bytes

Contents

require 'singleton'

module Fakes
  class ClassSwaps
    include Singleton
    attr_reader :swaps

    def initialize
      @swaps = {}
    end

    def add_fake_for(klass,the_fake)
      symbol = klass.to_s.to_sym
      ensure_swap_does_not_already_exist_for(symbol)
      swap = ClassSwap.new(klass,the_fake)
      @swaps[symbol] = swap
      swap.initiate
    end

    def ensure_swap_does_not_already_exist_for(symbol)
      raise "A swap already exists for the class #{symbol}" if @swaps.has_key?(symbol)
    end

    def reset
      @swaps.values.each{|item| item.reset}
      @swaps.clear
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
fakes-1.1.3 lib/fakes/class_swaps.rb
fakes-1.1.2 lib/fakes/class_swaps.rb
fakes-1.0.31 lib/core/class_swaps.rb
fakes-1.0.30 lib/core/class_swaps.rb
fakes-1.0.25 lib/core/class_swaps.rb
fakes-1.1.1 lib/fakes/class_swaps.rb
fakes-1.0.24 lib/core/class_swaps.rb
fakes-1.0.22 lib/core/class_swaps.rb
fakes-1.1.0 lib/fakes/class_swaps.rb
fakes-1.0.9 lib/fakes/class_swaps.rb
fakes-1.0.8 lib/fakes/class_swaps.rb
fakes-1.0.7 lib/fakes/class_swaps.rb
fakes-1.0.6 lib/fakes/class_swaps.rb
fakes-1.0.5 lib/core/class_swaps.rb
fakes-1.0.2 lib/core/class_swaps.rb
fakes-1.0.1 lib/core/class_swaps.rb
fakes-1.0.0 lib/core/class_swaps.rb
fakes-0.4.1 lib/core/class_swaps.rb
fakes-0.4.0 lib/core/class_swaps.rb
fakes-0.3.8 lib/core/class_swaps.rb