cucumber-wire 1.1.0 → 1.2.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: 180f3b85cce4bc115f12c42c35cfc1ae9ddf2d046e9359a168dda59c81f38ac8
4
+ data.tar.gz: b8740378f12e070524613710ca82b2832aca2ad911c377d1a85b0510021fa8ac
5
5
  SHA512:
6
- metadata.gz: 620e604bec618f31fbb554079297f4c55f956e8bccad13deaa760c2ddbc902e8fb0371336584a3d8c122c4ccdf1298860a763865f1a1c319035bdc27d8805a0c
7
- data.tar.gz: 6e3ff7030d0770fe50d3010db7a21e55811dc78c369de8725175680666738d642b93fba2354f9dd076233fa6f26ed1d1eb44d6ea46156124be696074ff7f9cd5
6
+ metadata.gz: 8e00f2465851ea1247d40b33893074df9949d303cedc4e6581622db8803382ed16aa447bd1dbc0fba03b9af8ce6b436a1b44f88a1ebf9178ff57849dfb792d5f
7
+ data.tar.gz: f33ee829c0297fa4dff553387370d8b4b431a70e7782a0d55e82890521ae2cea1bae53f21d36c145eed08ad247ab82e88d2cfa4def7df6f352951c314d1edb68
@@ -10,6 +10,17 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
10
10
 
11
11
  ----
12
12
 
13
+ ## [1.2.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v1.1.0...v1.2.0)
14
+
15
+ ### Removed
16
+
17
+ * Multiline arguments do not need `Location` anymore
18
+
19
+ ### Added
20
+
21
+ * Use `Cucumber:Messages::IdGenerator::UUID` to provide ids for `Hooks
22
+
23
+
13
24
  ## [1.1.0](https://github.com/cucumber/cucumber-ruby-wire/compare/v1.0.0...v1.1.0)
14
25
 
15
26
  ### 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
@@ -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
+ 1.2.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: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wynne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-31 00:00:00.000000000 Z
11
+ date: 2020-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber-core
@@ -180,10 +180,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  requirements: []
183
- rubygems_version: 3.0.3
183
+ rubygems_version: 3.0.6
184
184
  signing_key:
185
185
  specification_version: 4
186
- summary: cucumber-wire-1.1.0
186
+ summary: cucumber-wire-1.2.0
187
187
  test_files:
188
188
  - spec/cucumber/wire/data_packet_spec.rb
189
189
  - spec/cucumber/wire/configuration_spec.rb