cucumber-wire 1.1.0 → 3.1.0

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: 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