cucumber-wire 1.1.0 → 3.1.0

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: 462ca912391ac19f173a610a18056c7c2dd3ddc42d6ab7b11aeaef6986d60201
4
- data.tar.gz: ba3040346ba690ce5471b5af2e97b9a5e383001933684c79c553e9603f9fdd98
3
+ metadata.gz: 1e6165b86a29bd73dd89d8f0597e4b3c835162aa97aa1f67ab719e05baa55564
4
+ data.tar.gz: 607270d0f042c6460668ab59259ca1d8c845913be01594cea736bac6dc9b05d9
5
5
  SHA512:
6
- metadata.gz: 620e604bec618f31fbb554079297f4c55f956e8bccad13deaa760c2ddbc902e8fb0371336584a3d8c122c4ccdf1298860a763865f1a1c319035bdc27d8805a0c
7
- data.tar.gz: 6e3ff7030d0770fe50d3010db7a21e55811dc78c369de8725175680666738d642b93fba2354f9dd076233fa6f26ed1d1eb44d6ea46156124be696074ff7f9cd5
6
+ metadata.gz: a35c2406a29c41ff059dbe0922389c579ee714b6a29583a59c0d4c5b8a37d08ec5b43f841bc63fda0268dee9f585b20d432ad0817e517fc4503dd80bba0c4542
7
+ data.tar.gz: a723d908ffb86c75aff3f1b02d5376789099028e87ea70df158c53d7003f16d30930772f35b1a3ba6fb3a9a930a295d82ef845cba44efebc4ec7874e1ce15875
@@ -10,6 +10,47 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
10
10
 
11
11
  ----
12
12
 
13
+ ## [3.1.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v3.0.0...v3.1.0)
14
+
15
+ ### Changed
16
+
17
+ * Updated gems:
18
+ * `cucumber-core` ~> 7.1.0
19
+ * `cucumber-messages` ~> 12.2.0
20
+
21
+ ## [3.0.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v2.0.1...v3.0.0)
22
+
23
+ ### Changed
24
+
25
+ * Use `cucumber-ruby-core` 7.0.0
26
+
27
+ * Updated monorepo libraries:
28
+ * cucumber-cucumber-expressions ~> 10
29
+ * cucumber-messages ~> 12
30
+
31
+ ## [2.0.1](https://github.com/cucumber/cucumber-ruby-wire/compare/v2.0.0...v2.0.1)
32
+
33
+ ### Removed
34
+
35
+ * Replace use of `MultiJSON` to use native JSON gem
36
+
37
+ ## [2.0.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v1.2.0...v2.0.0)
38
+
39
+ ### Changed
40
+
41
+ * Use `cucumber-ruby-core` 6.0.0
42
+
43
+ ## [1.2.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v1.1.0...v1.2.0)
44
+
45
+ ### Removed
46
+
47
+ * Multiline arguments do not need `Location` anymore
48
+
49
+ ### Added
50
+
51
+ * Use `Cucumber:Messages::IdGenerator::UUID` to provide ids for `Hooks`
52
+
53
+
13
54
  ## [1.1.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v1.0.0...v1.1.0)
14
55
 
15
56
  ### Changed
data/README.md CHANGED
@@ -1,3 +1,41 @@
1
1
  [![Build Status](https://travis-ci.org/cucumber/cucumber-ruby-wire.svg?branch=master)](https://travis-ci.org/cucumber/cucumber-ruby-wire)
2
2
 
3
3
  # cucumber-wire
4
+
5
+ This gem was extracted from the [cucumber gem](https://github.com/cucumber/cucumber-ruby), and remains a runtime dependency to that gem.
6
+
7
+ Its tests are a bit hairy and prone to the occasional flicker.
8
+
9
+ In the future, it may become an opt-in plugin rather than a direct dependency on every Cucumber.
10
+
11
+ ## Configuration
12
+
13
+ You can configure the connection using a YAML file called a `.wire` file:
14
+
15
+ ```yaml
16
+ host: localhost
17
+ port: 54321
18
+ timeout:
19
+ connect: 11
20
+ invoke: 120
21
+ begin_scenario: 120
22
+ end_scenario: 120
23
+ ```
24
+
25
+ ### Timeouts
26
+
27
+ The default timeout is 120 seconds. `connect` has a default timeout of 11 seconds.
28
+
29
+ ### YAML with ERB templating
30
+
31
+ The file format is YAML, with ERB templating, so you could make the configuration configurable:
32
+
33
+ ```yaml,erb
34
+ host: localhost
35
+ port: 54321
36
+ timeout:
37
+ connect: <%= (ENV['MY_CONNECT_TIMEOUT'] || 11).to_i %>
38
+ invoke: 120
39
+ begin_scenario: 120
40
+ end_scenario: 120
41
+ ```
@@ -1,4 +1,6 @@
1
1
  # coding: utf-8
2
+ require 'cucumber/messages'
3
+
2
4
  module Cucumber
3
5
  module Wire
4
6
  class AddHooksFilter < Core::Filter.new(:connections)
@@ -11,16 +13,20 @@ module Cucumber
11
13
  def before_hook(test_case)
12
14
  # TODO: is this dependency on Cucumber::Hooks OK? Feels a bit internal..
13
15
  # TODO: how do we express the location of the hook? Should we create one hook per connection so we can use the host:port of the connection?
14
- Cucumber::Hooks.before_hook(Core::Test::Location.new('TODO:wire')) do
16
+ Cucumber::Hooks.before_hook(id_generator.new_id, Core::Test::Location.new('TODO:wire')) do
15
17
  connections.begin_scenario(test_case)
16
18
  end
17
19
  end
18
20
 
19
21
  def after_hook(test_case)
20
- Cucumber::Hooks.after_hook(Core::Test::Location.new('TODO:wire')) do
22
+ Cucumber::Hooks.after_hook(id_generator.new_id, Core::Test::Location.new('TODO:wire')) do
21
23
  connections.end_scenario(test_case)
22
24
  end
23
25
  end
26
+
27
+ def id_generator
28
+ @id_generator ||= Cucumber::Messages::IdGenerator::UUID.new
29
+ end
24
30
  end
25
31
  end
26
32
  end
@@ -1,4 +1,4 @@
1
- require 'multi_json'
1
+ require 'json'
2
2
  require 'socket'
3
3
  require 'cucumber/wire/connection'
4
4
  require 'cucumber/wire/configuration'
@@ -1,4 +1,4 @@
1
- require 'multi_json'
1
+ require 'json'
2
2
 
3
3
  module Cucumber
4
4
  module Wire
@@ -7,7 +7,7 @@ module Cucumber
7
7
  class DataPacket
8
8
  class << self
9
9
  def parse(raw)
10
- attributes = MultiJson.load(raw.strip)
10
+ attributes = JSON.parse(raw.strip)
11
11
  message = attributes[0]
12
12
  params = attributes[1]
13
13
  new(message, params)
@@ -23,7 +23,7 @@ module Cucumber
23
23
  def to_json
24
24
  packet = [@message]
25
25
  packet << @params if @params
26
- MultiJson.dump(packet)
26
+ JSON.generate(packet)
27
27
  end
28
28
 
29
29
  def handle_with(handler)
@@ -69,10 +69,8 @@ module Cucumber
69
69
  end
70
70
 
71
71
  def handle_diff!(tables)
72
- # TODO: figure out if / how we could get a location for a table from the wire (or make a null location)
73
- location = Core::Test::Location.new(__FILE__, __LINE__)
74
- table1 = table(tables[0], location)
75
- table2 = table(tables[1], location)
72
+ table1 = table(tables[0])
73
+ table2 = table(tables[1])
76
74
  table1.diff!(table2)
77
75
  end
78
76
 
@@ -89,8 +87,8 @@ module Cucumber
89
87
 
90
88
  private
91
89
 
92
- def table(data, location)
93
- Cucumber::MultilineArgument.from_core(Core::Test::DataTable.new(data, location))
90
+ def table(data)
91
+ Cucumber::MultilineArgument.from_core(Core::Test::DataTable.new(data))
94
92
  end
95
93
  end
96
94
 
@@ -1 +1 @@
1
- 1.1.0
1
+ 3.1.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-wire
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wynne
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-31 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber-core
@@ -16,60 +16,80 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 7.1.0
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.0'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.0.0
29
+ version: 7.1.0
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.0'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
- name: cucumber-expressions
34
+ name: cucumber-cucumber-expressions
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '8.0'
40
37
  - - ">="
41
38
  - !ruby/object:Gem::Version
42
- version: 8.0.2
39
+ version: 10.1.0
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '10.1'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 10.1.0
47
50
  - - "~>"
48
51
  - !ruby/object:Gem::Version
49
- version: '8.0'
52
+ version: '10.1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: cucumber-messages
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
50
57
  - - ">="
51
58
  - !ruby/object:Gem::Version
52
- version: 8.0.2
59
+ version: 12.2.0
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '12.2'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 12.2.0
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '12.2'
53
73
  - !ruby/object:Gem::Dependency
54
74
  name: cucumber
55
75
  requirement: !ruby/object:Gem::Requirement
56
76
  requirements:
57
77
  - - "~>"
58
78
  - !ruby/object:Gem::Version
59
- version: '3.1'
79
+ version: '4.0'
60
80
  - - ">="
61
81
  - !ruby/object:Gem::Version
62
- version: 3.1.2
82
+ version: 4.0.1
63
83
  type: :development
64
84
  prerelease: false
65
85
  version_requirements: !ruby/object:Gem::Requirement
66
86
  requirements:
67
87
  - - "~>"
68
88
  - !ruby/object:Gem::Version
69
- version: '3.1'
89
+ version: '4.0'
70
90
  - - ">="
71
91
  - !ruby/object:Gem::Version
72
- version: 3.1.2
92
+ version: 4.0.1
73
93
  - !ruby/object:Gem::Dependency
74
94
  name: rake
75
95
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +184,7 @@ homepage: http://cucumber.io
164
184
  licenses:
165
185
  - MIT
166
186
  metadata: {}
167
- post_install_message:
187
+ post_install_message:
168
188
  rdoc_options:
169
189
  - "--charset=UTF-8"
170
190
  require_paths:
@@ -180,10 +200,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
200
  - !ruby/object:Gem::Version
181
201
  version: '0'
182
202
  requirements: []
183
- rubygems_version: 3.0.3
184
- signing_key:
203
+ rubygems_version: 3.0.6
204
+ signing_key:
185
205
  specification_version: 4
186
- summary: cucumber-wire-1.1.0
206
+ summary: cucumber-wire-3.1.0
187
207
  test_files:
188
208
  - spec/cucumber/wire/data_packet_spec.rb
189
209
  - spec/cucumber/wire/configuration_spec.rb