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 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/http_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::HttpStubber }
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/http_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::HttpStubber.new({})
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
- downcase.
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 name
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.example.metadata[:shokkenki_consumer]
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 HttpStubber
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,
@@ -1,7 +1,7 @@
1
1
  module Shokkenki
2
2
  module Consumer
3
3
  module Version
4
- STRING = '0.0.4'
4
+ STRING = '0.0.5'
5
5
  end
6
6
  end
7
7
  end
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.4
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: 2013-11-28 00:00:00.000000000 Z
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: '0'
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: '0'
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.4
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.4
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: rspec
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: 2.14.0
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: 2.14.0
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: 1.8.24
242
+ rubygems_version: 2.2.0
255
243
  signing_key:
256
- specification_version: 3
257
- summary: shokkenki-consumer-0.0.4
244
+ specification_version: 4
245
+ summary: shokkenki-consumer-0.0.5
258
246
  test_files: []