mock_api 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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: