mock_api 0.2.0 → 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: 454465036d05401ec66979ba7b6fb09cee761a03d0fd6ccff3706c7da588a661
4
- data.tar.gz: 7ba42e505589caaef943bcc6b2210ac8eb4be0fca7ab341b19448d2f5745c0ba
3
+ metadata.gz: 1cd4eb2356fc4a77c03827c59fe71317b11a5f65c21b69753cdb132ce9e1232e
4
+ data.tar.gz: 67471f95d1a847de19730defc62f5b3e715113d9d8dca1fc1d38c3f770c02f4f
5
5
  SHA512:
6
- metadata.gz: 98c2286140ccb4afcae8eb7cf4baac8e09c56d29944ca8547292d58cd9ae863a597b2d7825d58a009d72f6d41a5e353c66135c96789b8a945daa9b4a826f0f55
7
- data.tar.gz: 1057bce5ebe4a1a8242dfd979e2a23258f3d866898008be5fbd0a0f9ac8c2e7469dc1b934dc2f923b704440f0377479e28c1a4e9d62e681b09dfa7f0cbc02ae7
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.0"
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,15 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mock_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
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
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '13.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.18'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.18'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
13
83
  - !ruby/object:Gem::Dependency
14
84
  name: sinatra
15
85
  requirement: !ruby/object:Gem::Requirement
@@ -17,13 +87,27 @@ dependencies:
17
87
  - - "~>"
18
88
  - !ruby/object:Gem::Version
19
89
  version: 2.2.2
20
- type: :runtime
90
+ type: :development
21
91
  prerelease: false
22
92
  version_requirements: !ruby/object:Gem::Requirement
23
93
  requirements:
24
94
  - - "~>"
25
95
  - !ruby/object:Gem::Version
26
96
  version: 2.2.2
97
+ - !ruby/object:Gem::Dependency
98
+ name: sinatra-contrib
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
27
111
  description: A library for building mock APIs in tests
28
112
  email:
29
113
  - david.kramer@redtailtechnology.com
@@ -34,6 +118,7 @@ files:
34
118
  - lib/mock_api.rb
35
119
  - lib/mock_api/runner.rb
36
120
  - lib/mock_api/store.rb
121
+ - lib/mock_api/store_registry.rb
37
122
  - lib/mock_api/version.rb
38
123
  homepage: https://github.com/davidtkramer/mock_api
39
124
  licenses: