mock_api 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b013d99524a26ab89473f75ec3498400c495e4183ea90ce7689370b6fdd0ad06
4
- data.tar.gz: 8b8ca7729b30a54baf14dc2836ab3e12d55022c32f9826f589a16f6e39763956
3
+ metadata.gz: 1cd4eb2356fc4a77c03827c59fe71317b11a5f65c21b69753cdb132ce9e1232e
4
+ data.tar.gz: 67471f95d1a847de19730defc62f5b3e715113d9d8dca1fc1d38c3f770c02f4f
5
5
  SHA512:
6
- metadata.gz: bfbe0a3caab065f84e5002ee04b1170841989c88dd6fe25b9a2ae02abef3e32a15bb3811ca2c531e7aa5ff7365eca8a8be6eee334af99e872b81740db14fc7e6
7
- data.tar.gz: 4b9e5654ac0ff57cc2a459bc875119a727c1ffa8e232df4a5232eaea982a3457adabd3239ac42d11d078d20bf725c6a69164767ce7ed4f9523bad0d4b97f014b
6
+ metadata.gz: 9e88c27a6bee6044a7172933b393b586597c59ab2bc01bf68c9314c8ad7349e9ba237faf7e04c6fc8ddf59c7fe7e71a4d4a99ccf2b50b8df5bb86b82649802fd
7
+ data.tar.gz: 067674ade70c867d8c7506f44c583878965aee75ec7f73f3b35c6a357f1a42295dbea7ca50464f6c625f155f09ecdac5e32e8bf008639102aa80a4f28dc3d6f4
@@ -0,0 +1,16 @@
1
+ require_relative 'store'
2
+
3
+ module MockApi
4
+ class StoreRegistry
5
+ include Singleton
6
+
7
+ def initialize
8
+ @stores = {}
9
+ end
10
+
11
+ def find_or_create(name, entity_types)
12
+ return @stores[name] if @stores.key?(name)
13
+ @stores[name] = Store.new(*entity_types)
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module MockApi
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/mock_api.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require_relative 'mock_api/version'
2
2
  require_relative 'mock_api/runner'
3
- require_relative 'mock_api/store'
3
+ require_relative 'mock_api/store_registry'
4
4
 
5
5
  module MockApi
6
6
  def self.included(klass)
@@ -14,10 +14,13 @@ module MockApi
14
14
  def mock(&block)
15
15
  definition = MockDefinition.new
16
16
  definition.instance_exec(&block)
17
- self.store = Store.new(*definition.entity_types) unless definition.entity_types.nil?
17
+ store = nil
18
+ unless definition.entity_types.nil?
19
+ store = StoreRegistry.instance.find_or_create(name, definition.entity_types)
20
+ extend(store.mixin)
21
+ include(store.mixin)
22
+ end
18
23
  self.runner = Runner.new(url: definition._url, server: self, store: store)
19
- extend(store.mixin)
20
- include(store.mixin)
21
24
  end
22
25
 
23
26
  def hooks
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mock_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kramer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-30 00:00:00.000000000 Z
11
+ date: 2022-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -118,6 +118,7 @@ files:
118
118
  - lib/mock_api.rb
119
119
  - lib/mock_api/runner.rb
120
120
  - lib/mock_api/store.rb
121
+ - lib/mock_api/store_registry.rb
121
122
  - lib/mock_api/version.rb
122
123
  homepage: https://github.com/davidtkramer/mock_api
123
124
  licenses: