38 lines
809 B
Ruby
38 lines
809 B
Ruby
module Shoulda
|
|
module Matchers
|
|
module Doublespeak
|
|
# @private
|
|
class World
|
|
def double_collection_for(klass)
|
|
double_collections_by_class[klass] ||= DoubleCollection.new(klass)
|
|
end
|
|
|
|
def with_doubles_activated
|
|
activate
|
|
yield
|
|
ensure
|
|
deactivate
|
|
end
|
|
|
|
private
|
|
|
|
def activate
|
|
double_collections_by_class.each do |klass, double_collection|
|
|
double_collection.activate
|
|
end
|
|
end
|
|
|
|
def deactivate
|
|
double_collections_by_class.each do |klass, double_collection|
|
|
double_collection.deactivate
|
|
end
|
|
end
|
|
|
|
def double_collections_by_class
|
|
@_double_collections_by_class ||= {}
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|