shokkenki-consumer 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/shokkenki/consumer/configuration/session.rb +2 -2
- data/lib/shokkenki/consumer/model/provider.rb +2 -2
- data/lib/shokkenki/consumer/model/simplification.rb +4 -1
- data/lib/shokkenki/consumer/rspec/consumer_name.rb +25 -0
- data/lib/shokkenki/consumer/rspec/hooks.rb +9 -1
- data/lib/shokkenki/consumer/rspec/rspec_configuration.rb +1 -1
- data/lib/shokkenki/consumer/session.rb +1 -0
- data/lib/shokkenki/consumer/stubber/{http_stubber.rb → local_server_stubber.rb} +5 -1
- data/lib/shokkenki/consumer/version.rb +1 -1
- metadata +54 -66
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cb18f107284bf91b28c6fa78ae68f1a9751dd7e3
|
4
|
+
data.tar.gz: 063137ecfa431404f2d49c9150f9f0870fab3c0c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1643821f2c91cee3f641ec79131df807c5b6ee6af1b3e92bd176b5cc906b48462a711caf8771672219f2df2e979470830cf57b11bc147acd5b844280cd615df2
|
7
|
+
data.tar.gz: 6c9cfd95b67e29819969510442a1245a3ab6b484e3dffd4903fc4b10e5f4a3bab4bcc279b28a0302284b6d037194bd9bbff3fd4a1c3671ad2a317b97a076e9cd
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative 'provider_configuration'
|
2
|
-
require_relative '../stubber/
|
2
|
+
require_relative '../stubber/local_server_stubber'
|
3
3
|
|
4
4
|
module Shokkenki
|
5
5
|
module Consumer
|
@@ -17,7 +17,7 @@ module Shokkenki
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def stubber_classes
|
20
|
-
@stubber_classes ||= { :local_server => Shokkenki::Consumer::Stubber::
|
20
|
+
@stubber_classes ||= { :local_server => Shokkenki::Consumer::Stubber::LocalServerStubber }
|
21
21
|
end
|
22
22
|
|
23
23
|
def register_stubber name, clazz
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative 'role'
|
2
|
-
require_relative '../stubber/
|
2
|
+
require_relative '../stubber/local_server_stubber'
|
3
3
|
|
4
4
|
module Shokkenki
|
5
5
|
module Consumer
|
@@ -13,7 +13,7 @@ module Shokkenki
|
|
13
13
|
|
14
14
|
def initialize attributes
|
15
15
|
super attributes
|
16
|
-
@stubber = attributes[:stubber] || Shokkenki::Consumer::Stubber::
|
16
|
+
@stubber = attributes[:stubber] || Shokkenki::Consumer::Stubber::LocalServerStubber.new({})
|
17
17
|
end
|
18
18
|
|
19
19
|
def assert_all_requests_matched!
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/core_ext/string/inflections'
|
2
|
+
|
1
3
|
module Shokkenki
|
2
4
|
module Consumer
|
3
5
|
module Model
|
@@ -5,9 +7,10 @@ module Shokkenki
|
|
5
7
|
def simplify name
|
6
8
|
name.to_s.
|
7
9
|
strip.
|
10
|
+
demodulize.
|
8
11
|
gsub(' ', '_').
|
9
12
|
gsub(/\W/, '').
|
10
|
-
|
13
|
+
underscore.
|
11
14
|
to_sym if name
|
12
15
|
end
|
13
16
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Shokkenki
|
2
|
+
module Consumer
|
3
|
+
module RSpec
|
4
|
+
class ConsumerName
|
5
|
+
|
6
|
+
def self.from example_group
|
7
|
+
metadata = example_group.example.metadata
|
8
|
+
consumer_metadata = metadata[:shokkenki_consumer]
|
9
|
+
consumer_metadata == true ? description_arg_from(metadata): consumer_metadata
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def self.description_arg_from metadata
|
15
|
+
while(metadata.has_key?(:example_group)) do
|
16
|
+
metadata = metadata[:example_group]
|
17
|
+
end
|
18
|
+
|
19
|
+
metadata[:description_args].first
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative '../consumer'
|
2
2
|
require_relative '../model/role'
|
3
|
+
require_relative 'consumer_name'
|
3
4
|
|
4
5
|
module Shokkenki
|
5
6
|
module Consumer
|
@@ -10,7 +11,8 @@ module Shokkenki
|
|
10
11
|
Shokkenki.consumer.start
|
11
12
|
end
|
12
13
|
|
13
|
-
def self.before_each
|
14
|
+
def self.before_each example_group
|
15
|
+
name = ConsumerName.from example_group
|
14
16
|
Shokkenki.consumer.add_consumer(Shokkenki::Consumer::Model::Role.new(:name => name)) unless Shokkenki.consumer.consumer(name)
|
15
17
|
Shokkenki.consumer.set_current_consumer name
|
16
18
|
Shokkenki.consumer.clear_interaction_stubs
|
@@ -26,6 +28,12 @@ module Shokkenki
|
|
26
28
|
Shokkenki.consumer.close
|
27
29
|
end
|
28
30
|
|
31
|
+
private
|
32
|
+
|
33
|
+
def self.name_from example_group
|
34
|
+
example_group
|
35
|
+
end
|
36
|
+
|
29
37
|
end
|
30
38
|
end
|
31
39
|
end
|
@@ -14,7 +14,7 @@ RSpec.configure do |config|
|
|
14
14
|
shokkenki_consumer_examples = { :shokkenki_consumer => lambda{ |x| true } }
|
15
15
|
|
16
16
|
config.before(:each, shokkenki_consumer_examples) do |example_group|
|
17
|
-
Shokkenki::Consumer::RSpec::Hooks.before_each example_group
|
17
|
+
Shokkenki::Consumer::RSpec::Hooks.before_each example_group
|
18
18
|
end
|
19
19
|
|
20
20
|
config.after(:each, shokkenki_consumer_examples) do
|
@@ -65,6 +65,7 @@ module Shokkenki
|
|
65
65
|
|
66
66
|
def print_tickets
|
67
67
|
@patronages.values.collect(&:ticket).each do |ticket|
|
68
|
+
FileUtils.mkpath ticket_location
|
68
69
|
ticket_path = File.expand_path(File.join(ticket_location, ticket.filename))
|
69
70
|
File.open(ticket_path, 'w') { |file| file.write(ticket.to_json) }
|
70
71
|
end
|
@@ -7,7 +7,7 @@ require 'find_a_port'
|
|
7
7
|
module Shokkenki
|
8
8
|
module Consumer
|
9
9
|
module Stubber
|
10
|
-
class
|
10
|
+
class LocalServerStubber
|
11
11
|
|
12
12
|
attr_reader :port, :host, :scheme, :interactions_path, :server
|
13
13
|
|
@@ -20,6 +20,10 @@ module Shokkenki
|
|
20
20
|
@unused_interactions_path = '/shokkenki/interactions/unused'
|
21
21
|
end
|
22
22
|
|
23
|
+
def type
|
24
|
+
:local_server
|
25
|
+
end
|
26
|
+
|
23
27
|
def stub_interaction interaction
|
24
28
|
response = HTTParty.post(interactions_uri,
|
25
29
|
:body => interaction.to_hash.to_json,
|
metadata
CHANGED
@@ -1,190 +1,181 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shokkenki-consumer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brent Snook
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-24 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: json
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: httparty
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: find_a_port
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: activesupport
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
75
|
+
version: 3.0.0
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
82
|
+
version: 3.0.0
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: shokkenki-support
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0.0.
|
89
|
+
version: 0.0.5
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.0.
|
96
|
+
version: 0.0.5
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rack
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rake
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- - ~>
|
115
|
+
- - "~>"
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: 10.0.0
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- - ~>
|
122
|
+
- - "~>"
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: 10.0.0
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
126
|
+
name: cucumber
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - ">="
|
148
130
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
131
|
+
version: '0'
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - ">="
|
156
137
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
138
|
+
version: '0'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: timecop
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - ">="
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - ">="
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: webmock
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: relish
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
180
172
|
- !ruby/object:Gem::Version
|
181
173
|
version: '0'
|
182
174
|
type: :development
|
183
175
|
prerelease: false
|
184
176
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
177
|
requirements:
|
187
|
-
- -
|
178
|
+
- - ">="
|
188
179
|
- !ruby/object:Gem::Version
|
189
180
|
version: '0'
|
190
181
|
description: Example-driven consumer-driven contracts. For consumers.
|
@@ -208,14 +199,15 @@ files:
|
|
208
199
|
- lib/shokkenki/consumer/model/simplification.rb
|
209
200
|
- lib/shokkenki/consumer/model/ticket.rb
|
210
201
|
- lib/shokkenki/consumer/rspec.rb
|
202
|
+
- lib/shokkenki/consumer/rspec/consumer_name.rb
|
211
203
|
- lib/shokkenki/consumer/rspec/example_group_binding.rb
|
212
204
|
- lib/shokkenki/consumer/rspec/hooks.rb
|
213
205
|
- lib/shokkenki/consumer/rspec/rspec_configuration.rb
|
214
206
|
- lib/shokkenki/consumer/session.rb
|
215
|
-
- lib/shokkenki/consumer/stubber/http_stubber.rb
|
216
207
|
- lib/shokkenki/consumer/stubber/interaction.rb
|
217
208
|
- lib/shokkenki/consumer/stubber/interactions.rb
|
218
209
|
- lib/shokkenki/consumer/stubber/interactions_middleware.rb
|
210
|
+
- lib/shokkenki/consumer/stubber/local_server_stubber.rb
|
219
211
|
- lib/shokkenki/consumer/stubber/rack_response.rb
|
220
212
|
- lib/shokkenki/consumer/stubber/request.rb
|
221
213
|
- lib/shokkenki/consumer/stubber/restful_middleware.rb
|
@@ -229,30 +221,26 @@ files:
|
|
229
221
|
homepage: http://github.com/brentsnook/shokkenki-consumer
|
230
222
|
licenses:
|
231
223
|
- GPL2
|
224
|
+
metadata: {}
|
232
225
|
post_install_message:
|
233
226
|
rdoc_options:
|
234
|
-
- --charset=UTF-8
|
227
|
+
- "--charset=UTF-8"
|
235
228
|
require_paths:
|
236
229
|
- lib
|
237
230
|
required_ruby_version: !ruby/object:Gem::Requirement
|
238
|
-
none: false
|
239
231
|
requirements:
|
240
|
-
- -
|
232
|
+
- - ">="
|
241
233
|
- !ruby/object:Gem::Version
|
242
234
|
version: '1.9'
|
243
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
|
-
none: false
|
245
236
|
requirements:
|
246
|
-
- -
|
237
|
+
- - ">="
|
247
238
|
- !ruby/object:Gem::Version
|
248
239
|
version: '0'
|
249
|
-
segments:
|
250
|
-
- 0
|
251
|
-
hash: 2449415268387905708
|
252
240
|
requirements: []
|
253
241
|
rubyforge_project:
|
254
|
-
rubygems_version:
|
242
|
+
rubygems_version: 2.2.0
|
255
243
|
signing_key:
|
256
|
-
specification_version:
|
257
|
-
summary: shokkenki-consumer-0.0.
|
244
|
+
specification_version: 4
|
245
|
+
summary: shokkenki-consumer-0.0.5
|
258
246
|
test_files: []
|