Class: FixtureKit::Registry

Inherits:
Object
  • Object
show all
Includes:
ConfigurationHelper
Defined in:
lib/fixture_kit/registry.rb

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



7
8
9
10
11
# File 'lib/fixture_kit/registry.rb', line 7

def initialize
  @declarations = {}
  @fixtures = {}
  @resolving = []
end

Instance Method Details

#add(name_or_definition, scope = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/fixture_kit/registry.rb', line 13

def add(name_or_definition, scope = nil)
  fixture =
    case name_or_definition
    when String
      fetch_named_fixture(name_or_definition)
    when Definition
      raise ArgumentError, "scope is required for anonymous fixture declarations" unless scope
      fetch_anonymous_fixture(scope, name_or_definition)
    else
      raise FixtureKit::InvalidFixtureDeclaration, "unsupported fixture declaration type: #{name_or_definition.class}"
    end

  if scope
    raise FixtureKit::MultipleFixtures, "cannot load multiple fixtures in the same context" if @declarations.key?(scope)
    @declarations[scope] = fixture
  end

  fixture
end

#fixturesObject



33
34
35
# File 'lib/fixture_kit/registry.rb', line 33

def fixtures
  @fixtures.values
end