cucumber_tricks 0.0.1 → 0.0.2
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 +6 -14
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +6 -0
- data/Guardfile +6 -0
- data/README.md +94 -2
- data/Rakefile +7 -0
- data/cucumber_tricks.gemspec +3 -0
- data/features/either.feature +85 -0
- data/features/pronouns.feature +67 -0
- data/features/step_definitions/steps.rb +15 -0
- data/features/support/hooks.rb +3 -0
- data/features/tables.feature +115 -0
- data/lib/cucumber_tricks/dsl_extensions.rb +15 -9
- data/lib/cucumber_tricks/table_extensions.rb +13 -0
- data/lib/cucumber_tricks/version.rb +1 -1
- data/push.sh +4 -0
- metadata +91 -43
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YjBiNWM0M2Y1YjFhOWM1MmVjZDAwODQxMzM5OWZkZjU3NzhlZTkyNWNlYWFm
|
10
|
-
OGU2OTI1MTcwNzJkYjgwMjU0ZTkzNTY1MGZiM2ZhNTg2NmNiNjgzOGU5YmUz
|
11
|
-
ZGNiMDc1MjlhZjc5NzcwMDgyYWM1YjBjOTNjYjg1NTI1ZGJmMzE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzI4NmRlYmVlY2RiMjEyNzBiOTY3MTg3NDhlMjMyODY2ODhkMTcwYzEzYjVm
|
14
|
-
OWFmNjhiYzE3Mjg2MjVlZWRlMDBlMWE1M2NlNzQ1MDY1MzM2ZWY2MDk1YTRm
|
15
|
-
YTA0OTI3M2M4NGIzZDg2OWJkNzYxYjM2ODliMWFiN2Q2NDk5YTA=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1ac6c24b722d27946f99e5eb1db8ae12ae948aa2
|
4
|
+
data.tar.gz: f1136506115f98af5b5af81c2a3a4976f02ebede
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c99f129e4c8c841bfad792fcfd4e6a8c9d411495903e18ec3b7070ab9c88ad4be47925c592cf9605c2b29593a8936b67b4fd8428f5a2eef0b12cd2e9d4ac39c7
|
7
|
+
data.tar.gz: aa02a1381309c547c5198c42deb6c500c8c7ce324075031b9fd1a24a77507b7ad3cb7edce0f8bf8ec4b1ecf2d614902063bc491af4a0650eba8fdf65e0b88a28
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
ADDED
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -6,7 +6,7 @@ Cucumber step definition dsl extension to easily define more readable steps.
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
gem 'cucumber_tricks'
|
9
|
+
gem 'cucumber_tricks', :require => false
|
10
10
|
|
11
11
|
And then execute:
|
12
12
|
|
@@ -18,7 +18,99 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
Detailed usage examples can be found on [relish](https://www.relishapp.com/philou/cucumber-tricks/docs)
|
22
|
+
|
23
|
+
### Requiring the files
|
24
|
+
|
25
|
+
Add `require 'cucumber_tricks' from every steps definition file where you use
|
26
|
+
it. This will make cucumber work in normal mode as well as in dry-run mode.
|
27
|
+
|
28
|
+
### Use pronouns to reference previously introduced items
|
29
|
+
|
30
|
+
foo.feature
|
31
|
+
|
32
|
+
```gherkin
|
33
|
+
Given the tool 'screwdriver'
|
34
|
+
When this tool is used
|
35
|
+
```
|
36
|
+
|
37
|
+
steps.rb
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
A_TOOL = NameOrPronounTransform('tool', 'hammer')
|
41
|
+
|
42
|
+
Given /^(#{A_TOOL})$/ do |tool|
|
43
|
+
...
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
### Use the same step implementation to handle an inline arg as a 1-cell table
|
48
|
+
|
49
|
+
steps.rb
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
GivenEither /^the dog named "(.*)"$)$/,
|
53
|
+
/^the following dogs$/ do |dogs_table|
|
54
|
+
...
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
58
|
+
foo.feature
|
59
|
+
|
60
|
+
```gherkin
|
61
|
+
Given the dog "Rolphy"
|
62
|
+
...
|
63
|
+
Given the following dogs
|
64
|
+
| Rex |
|
65
|
+
| King |
|
66
|
+
| Volt |
|
67
|
+
```
|
68
|
+
|
69
|
+
### Add default values to the hashes of a table
|
70
|
+
|
71
|
+
foo.feature
|
72
|
+
|
73
|
+
```gherkin
|
74
|
+
Given the following dogs
|
75
|
+
| names | color |
|
76
|
+
| Rex | white |
|
77
|
+
| King | Sand |
|
78
|
+
```
|
79
|
+
|
80
|
+
steps.rb
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
Given /^the following dogs$$/ do |dogs|
|
84
|
+
hashes = dogs.hashes_with_defaults('names', 'tail' => 'wagging', 'smell' => 'not nice')
|
85
|
+
|
86
|
+
# hashes.each do |hash|
|
87
|
+
# expect(hash['smell']).to eq('not nice')
|
88
|
+
# end
|
89
|
+
|
90
|
+
...
|
91
|
+
end
|
92
|
+
```
|
93
|
+
|
94
|
+
### Define named lists from a table
|
95
|
+
|
96
|
+
foo.feature
|
97
|
+
|
98
|
+
```gherkin
|
99
|
+
Given the following dishes
|
100
|
+
| Spaghetti Bolognaise | => | Spaghetti | Bolognaise sauce | | |
|
101
|
+
| Burger | => | Bread | Meat | Salad | Ketchup |
|
102
|
+
```
|
103
|
+
|
104
|
+
steps.rb
|
105
|
+
|
106
|
+
```ruby
|
107
|
+
Given /^the following dishes$$/ do |dishes|
|
108
|
+
name_2_dishes = dishes.hash_2_lists
|
109
|
+
|
110
|
+
# expect(name_2_dishes['Burger']).to eq(['Bread','Meat','Salad','Ketchup'])
|
111
|
+
|
112
|
+
...
|
113
|
+
end
|
22
114
|
|
23
115
|
## Contributing
|
24
116
|
|
data/Rakefile
CHANGED
data/cucumber_tricks.gemspec
CHANGED
@@ -22,4 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler"
|
24
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "guard-cucumber"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
spec.add_development_dependency "relish"
|
25
28
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
Feature: Either
|
2
|
+
|
3
|
+
As a developper tester
|
4
|
+
In order to factorize code and support english readable steps
|
5
|
+
I want a one liner to define a step that can take either a 1-cell table or a string
|
6
|
+
|
7
|
+
Background: Step defintions
|
8
|
+
|
9
|
+
Given a file named "features/step_definitions/steps.rb" with
|
10
|
+
"""
|
11
|
+
require 'cucumber_tricks'
|
12
|
+
|
13
|
+
GivenEither /^the dish with "(.*)"$/,
|
14
|
+
/^the dish with the following ingredients$/ do |ingredients|
|
15
|
+
@ingredients = ingredients
|
16
|
+
end
|
17
|
+
|
18
|
+
Then /^the dish should contain$/ do |ingredients|
|
19
|
+
expect(@ingredients.raw).to eq(ingredients.raw)
|
20
|
+
end
|
21
|
+
|
22
|
+
"""
|
23
|
+
|
24
|
+
Scenario: The inline step definition
|
25
|
+
|
26
|
+
The inline regex transforms it's argument to a 1-cell raw table
|
27
|
+
|
28
|
+
Given a file named "features/foo.feature" with
|
29
|
+
"""
|
30
|
+
Feature:
|
31
|
+
Scenario:
|
32
|
+
Given the dish with "peanuts"
|
33
|
+
Then the dish should contain
|
34
|
+
| peanuts |
|
35
|
+
"""
|
36
|
+
When I run cucumber "features/foo.feature"
|
37
|
+
Then it should pass
|
38
|
+
|
39
|
+
Scenario: The table step definition
|
40
|
+
|
41
|
+
The table step definition is as any table step definitions.
|
42
|
+
|
43
|
+
Given a file named "features/foo.feature" with
|
44
|
+
"""
|
45
|
+
Feature:
|
46
|
+
Scenario:
|
47
|
+
Given the dish with the following ingredients
|
48
|
+
| pasta |
|
49
|
+
| tomatoes |
|
50
|
+
Then the dish should contain
|
51
|
+
| pasta |
|
52
|
+
| tomatoes |
|
53
|
+
"""
|
54
|
+
When I run cucumber "features/foo.feature"
|
55
|
+
Then it should pass
|
56
|
+
|
57
|
+
Scenario: With When and Then
|
58
|
+
|
59
|
+
This also works for 'When' and 'Then'
|
60
|
+
|
61
|
+
Given a file named "features/step_definitions/steps.rb" with
|
62
|
+
"""
|
63
|
+
require 'cucumber_tricks'
|
64
|
+
|
65
|
+
WhenEither /^the dish contains "(.*)"$/,
|
66
|
+
/^the dish contains the following ingredients$/ do |ingredients|
|
67
|
+
@ingredients = ingredients
|
68
|
+
end
|
69
|
+
|
70
|
+
ThenEither /^the dish should contain "(.*)"$/,
|
71
|
+
/^the dish should contain$/ do |ingredients|
|
72
|
+
expect(@ingredients.raw).to eq(ingredients.raw)
|
73
|
+
end
|
74
|
+
|
75
|
+
"""
|
76
|
+
And a file named "features/foo.feature" with
|
77
|
+
"""
|
78
|
+
Feature:
|
79
|
+
Scenario:
|
80
|
+
When the dish contains "peanuts"
|
81
|
+
Then the dish should contain
|
82
|
+
| peanuts |
|
83
|
+
"""
|
84
|
+
When I run cucumber "features/foo.feature"
|
85
|
+
Then it should pass
|
@@ -0,0 +1,67 @@
|
|
1
|
+
Feature: Pronouns
|
2
|
+
|
3
|
+
As a developper tester
|
4
|
+
In order to factorize code and support english readable steps
|
5
|
+
I want a special textual transform that can be referenced with a pronoun
|
6
|
+
|
7
|
+
Special NameOrPronounTransform creates special transform that can have a default
|
8
|
+
value.
|
9
|
+
|
10
|
+
Background: Step definitions
|
11
|
+
|
12
|
+
Given a file named "features/step_definitions/steps.rb" with
|
13
|
+
"""
|
14
|
+
require 'cucumber_tricks'
|
15
|
+
|
16
|
+
A_TOOL = NameOrPronounTransform('tool','hammer')
|
17
|
+
|
18
|
+
Given /^(#{A_TOOL})$/ do |tool|
|
19
|
+
end
|
20
|
+
|
21
|
+
Then /^(#{A_TOOL}) should be a "(.*)"$/ do |tool, expected|
|
22
|
+
expect(tool).to eq(expected)
|
23
|
+
end
|
24
|
+
"""
|
25
|
+
|
26
|
+
Scenario Outline: Referencing a previously declared thing
|
27
|
+
|
28
|
+
After the first usage of the transform in the scenario, later steps can
|
29
|
+
then use it without repeating its name.
|
30
|
+
|
31
|
+
For readability reason, it is possible to reference this value using many
|
32
|
+
different pronouns.
|
33
|
+
|
34
|
+
Given a file named "features/foo.feature" with
|
35
|
+
"""
|
36
|
+
Feature:
|
37
|
+
Scenario:
|
38
|
+
Given the tool "screwdriver"
|
39
|
+
Then <this> tool should be a "screwdriver"
|
40
|
+
"""
|
41
|
+
|
42
|
+
When I run cucumber "features/foo.feature"
|
43
|
+
Then it should pass
|
44
|
+
|
45
|
+
Examples:
|
46
|
+
| this |
|
47
|
+
| this |
|
48
|
+
| a |
|
49
|
+
| an |
|
50
|
+
| the |
|
51
|
+
| of |
|
52
|
+
|
53
|
+
Scenario: Default value for a thing
|
54
|
+
|
55
|
+
If no value is specified at the first usage of a transform in a scenario
|
56
|
+
it automaticaly gets the value specified in the transform definition.
|
57
|
+
|
58
|
+
Given a file named "features/foo.feature" with
|
59
|
+
"""
|
60
|
+
Feature:
|
61
|
+
Scenario:
|
62
|
+
Then the tool should be a "hammer"
|
63
|
+
"""
|
64
|
+
|
65
|
+
When I run cucumber "features/foo.feature"
|
66
|
+
Then it should pass
|
67
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
Given(/^a file named "(.*?)" with$/) do |file_path, content|
|
4
|
+
full_path = File.join('tmp', file_path)
|
5
|
+
FileUtils.makedirs(File.dirname(full_path))
|
6
|
+
IO.write(full_path, content)
|
7
|
+
end
|
8
|
+
|
9
|
+
When(/^I run cucumber "(.*?)"$/) do |args|
|
10
|
+
@cucumber_success = system("cucumber tmp/#{args}")
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^it should pass$/) do
|
14
|
+
expect(@cucumber_success).to be(true), "cucumber sub process failed"
|
15
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
Feature: Special tables
|
2
|
+
|
3
|
+
As a feature writer
|
4
|
+
In order to have more readable scenarios
|
5
|
+
I want to be able to use different forms of data tables
|
6
|
+
|
7
|
+
Scenario: Hashes with extra values
|
8
|
+
|
9
|
+
It is possible to simply extend all hashes from a scenario table with
|
10
|
+
default values. As scenario given values override the default, it is
|
11
|
+
possible to specify more or less columns in different scenarios, while
|
12
|
+
using the same step defintion.
|
13
|
+
|
14
|
+
Given a file named "features/step_definitions/steps.rb" with
|
15
|
+
"""
|
16
|
+
require 'cucumber_tricks'
|
17
|
+
|
18
|
+
Given(/^the fishes$/) do |table|
|
19
|
+
@hashes = table.hashes_with_defaults('name', 'size' => 'normal')
|
20
|
+
end
|
21
|
+
|
22
|
+
Then(/^(.*) should be (.*) and have a (.*) size$/) do |name, color, size|
|
23
|
+
@hashes.select { |fish| fish['name'] == name }.each do |fish|
|
24
|
+
expect(fish['color']).to eq(color)
|
25
|
+
expect(fish['size']).to eq(size)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
"""
|
30
|
+
And a file named "features/foo.feature" with
|
31
|
+
"""
|
32
|
+
Feature:
|
33
|
+
Scenario:
|
34
|
+
Given the fishes
|
35
|
+
| name | color |
|
36
|
+
| Whity | white |
|
37
|
+
| Blacky | black |
|
38
|
+
| Reddy | red |
|
39
|
+
Then Whity should be white and have a normal size
|
40
|
+
And Blacky should be black and have a normal size
|
41
|
+
And Reddy should be red and have a normal size
|
42
|
+
"""
|
43
|
+
When I run cucumber "features/foo.feature"
|
44
|
+
Then it should pass
|
45
|
+
|
46
|
+
Scenario: Default hashes with a one column raw table
|
47
|
+
|
48
|
+
For readability reasons, With a one column table it is possible to omit the
|
49
|
+
name of that column from the scenario.
|
50
|
+
|
51
|
+
Given a file named "features/step_definitions/steps.rb" with
|
52
|
+
"""
|
53
|
+
require 'cucumber_tricks'
|
54
|
+
|
55
|
+
Given(/^the fishes$/) do |names|
|
56
|
+
@hashes = names.hashes_with_defaults('name', 'size' => 'normal')
|
57
|
+
end
|
58
|
+
|
59
|
+
Then(/^(.*) should have a (.*) size$/) do |name, size|
|
60
|
+
@hashes.select { |fish| fish['name'] == name }.each do |fish|
|
61
|
+
expect(fish['size']).to eq(size)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
"""
|
66
|
+
And a file named "features/foo.feature" with
|
67
|
+
"""
|
68
|
+
Feature:
|
69
|
+
Scenario:
|
70
|
+
Given the fishes
|
71
|
+
| Whity |
|
72
|
+
| Reddy |
|
73
|
+
Then Whity should have a normal size
|
74
|
+
And Reddy should have a normal size
|
75
|
+
"""
|
76
|
+
When I run cucumber "features/foo.feature"
|
77
|
+
Then it should pass
|
78
|
+
|
79
|
+
Scenario: Tables to named lists
|
80
|
+
|
81
|
+
Using the '=>' notation in a scenario data table, one can define a set of
|
82
|
+
named lists.
|
83
|
+
|
84
|
+
Given a file named "features/step_definitions/steps.rb" with
|
85
|
+
"""
|
86
|
+
require 'cucumber_tricks'
|
87
|
+
|
88
|
+
Given(/^the dishes$/) do |dishes|
|
89
|
+
@dishes = dishes.hash_2_lists
|
90
|
+
end
|
91
|
+
|
92
|
+
Then(/^(.*) should be made of$/) do |dish, table|
|
93
|
+
ingredients = table.raw.map {|row| row.first}
|
94
|
+
|
95
|
+
expect(@dishes[dish]).to eq(ingredients)
|
96
|
+
end
|
97
|
+
|
98
|
+
"""
|
99
|
+
And a file named "features/foo.feature" with
|
100
|
+
"""
|
101
|
+
Feature:
|
102
|
+
Scenario:
|
103
|
+
Given the dishes
|
104
|
+
| Burger | => | Bread | Meat | Ketchup |
|
105
|
+
| Spaghetti Bolognaise | => | Spaghetti | Bolognaise sauce | |
|
106
|
+
Then Burger should be made of
|
107
|
+
| Bread |
|
108
|
+
| Meat |
|
109
|
+
| Ketchup |
|
110
|
+
And Spaghetti Bolognaise should be made of
|
111
|
+
| Spaghetti |
|
112
|
+
| Bolognaise sauce |
|
113
|
+
"""
|
114
|
+
When I run cucumber "features/foo.feature"
|
115
|
+
Then it should pass
|
@@ -6,10 +6,9 @@
|
|
6
6
|
# /^(a|an|the|this) tool( "([^"]*)")?$/
|
7
7
|
#
|
8
8
|
# Allowing to match things like
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
# * this tool
|
9
|
+
# * the tool "saw"
|
10
|
+
# * a tool
|
11
|
+
# * this tool
|
13
12
|
#
|
14
13
|
# The first time this capture is matched in a scenario, the given value
|
15
14
|
# is stored for any subsequent capture where no value is specified.
|
@@ -17,6 +16,8 @@
|
|
17
16
|
# If ever the first capture does not provide an explicit value, then
|
18
17
|
# the given default value is used (aka 'hammer' in the previous example)
|
19
18
|
#
|
19
|
+
# * kind : the kind of things to match (ex: 'tool')
|
20
|
+
# * default_value : the default value to use if none is given at first usage
|
20
21
|
def NameOrPronounTransform(kind, default_value)
|
21
22
|
|
22
23
|
knows_this_kind_of_things = Module.new do
|
@@ -41,11 +42,8 @@ def NameOrPronounTransform(kind, default_value)
|
|
41
42
|
end
|
42
43
|
|
43
44
|
|
44
|
-
# GivenEither, WhenEither and ThenEither
|
45
|
-
#
|
46
|
-
# * table_regex : is the regex with no arguments, matching the table
|
47
|
-
# * inline_regex : is a regex matching a single textual argument, that
|
48
|
-
# will be embedded in a one cell table before calling the block
|
45
|
+
# Implementation of #GivenEither, #WhenEither and #ThenEither.
|
46
|
+
# Defines 2 steps in 1 call.
|
49
47
|
#
|
50
48
|
# example:
|
51
49
|
#
|
@@ -54,18 +52,26 @@ end
|
|
54
52
|
# create_animals(table)
|
55
53
|
# end
|
56
54
|
#
|
55
|
+
# * adverb : 'Given' | 'When' | 'Then', implementation purpose
|
56
|
+
# * inline_regex : is a regex matching a single textual argument, that
|
57
|
+
# will be embedded in a one cell table before calling the block
|
58
|
+
# * table_regex : is the regex with no arguments, matching the table
|
59
|
+
# * &bloc : is the implementation of the step, taking a table as argument
|
57
60
|
def register_either_step_definitions(adverb, inline_regex, table_regex, &block)
|
58
61
|
send(adverb,inline_regex) do |arg|
|
59
62
|
self.instance_exec(cucumber_table(arg), &block)
|
60
63
|
end
|
61
64
|
send(adverb,table_regex, &block)
|
62
65
|
end
|
66
|
+
# see #register_either_step_definitions
|
63
67
|
def GivenEither(inline_regex, table_regex, &block)
|
64
68
|
register_either_step_definitions('Given', inline_regex, table_regex, &block)
|
65
69
|
end
|
70
|
+
# see #register_either_step_definitions
|
66
71
|
def WhenEither(inline_regex, table_regex, &block)
|
67
72
|
register_either_step_definitions('When', inline_regex, table_regex, &block)
|
68
73
|
end
|
74
|
+
# see #register_either_step_definitions
|
69
75
|
def ThenEither(inline_regex, table_regex, &block)
|
70
76
|
register_either_step_definitions('Then', inline_regex, table_regex, &block)
|
71
77
|
end
|
@@ -1,13 +1,26 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
+
# Extension to the Cucumber::Ast::Table class providing table transformation
|
4
|
+
# goodies
|
3
5
|
class Cucumber::Ast::Table
|
4
6
|
|
7
|
+
# Similar to the #hashes method, but merges every hash into a default
|
8
|
+
# hash of values. It can also create a hash from an untitled 1-column
|
9
|
+
# table.
|
10
|
+
#
|
11
|
+
# * main_column : name of the given column in case of an untitled 1-column
|
12
|
+
# table
|
13
|
+
# * defaults : the default values to merge into every hash
|
5
14
|
def hashes_with_defaults(main_column, defaults = {})
|
6
15
|
hashes_with_default_column(main_column).map do |hash|
|
7
16
|
defaults.merge(hash)
|
8
17
|
end
|
9
18
|
end
|
10
19
|
|
20
|
+
# Transforms the table into a collection of named lists. More precisely, this
|
21
|
+
# is a hash from the value in the first column to a list of all the values
|
22
|
+
# from the successive columns. Empty cells are simply ignored.
|
23
|
+
# As a visual hint, the second column should only contain the '=>' marker.
|
11
24
|
def hash_2_lists
|
12
25
|
result = {}
|
13
26
|
raw.each do |row|
|
data/push.sh
ADDED
metadata
CHANGED
@@ -1,85 +1,120 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber_tricks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
|
-
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
UUhxSnpuUXJ2YVlUb1pMeEdBUkRmM013ejRtRlNoNFcKc25TZXA1M0RaMXZy
|
36
|
-
WTJHem1pZy80UHVCRjRxM25od1BneFY2SDNTSDQvUHk3UUY1Q09aUFFsQ2RC
|
37
|
-
d1BZY3pxVwpYeEliWGhSVlhjZ2pCSFQwdzJIc1hrT3dtbVl2QnpicmZxdFR4
|
38
|
-
NU5zd3dIY0llUVpCL05JRDdiZXJJZjlhd3gzCnlMY2wxY21tNUFMdEovK0Jr
|
39
|
-
a21wMGk0YW1YZVRETXZxOXI4UEJzVnNRd3hZT1lKQlArVW14ejNQWDZIakZI
|
40
|
-
clEKWGRrWHgzb1oKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
|
41
|
-
date: 2014-06-03 00:00:00.000000000 Z
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDkjCCAnqgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMRkwFwYDVQQDDBBwaGls
|
14
|
+
aXBwZS5ib3VyZ2F1MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/Is
|
15
|
+
ZAEZFgNjb20wHhcNMTMwOTIzMTEwOTA3WhcNMTQwOTIzMTEwOTA3WjBHMRkwFwYD
|
16
|
+
VQQDDBBwaGlsaXBwZS5ib3VyZ2F1MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzAR
|
17
|
+
BgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
18
|
+
AQC8CpoqZwEbzXr55EUxdSplgn0MYZ9xPGO/XmRa8bD63n+JYWF0AS+mj452ZY18
|
19
|
+
rwM+yKrKhtsA+aJJdlOafgIUnY5SrZOr7v7kgc6T2YNoUj+M00Um2jv+shQbOtV6
|
20
|
+
qGp0Jw1HfPNUMVa+3pXZyAGCecN6rTnsZJIuW6KNaJUq6lEMVXanoTHgAKrH5aHd
|
21
|
+
Y6ofwQL86d6LDkC1S4p86iMUWvF34w8h5ItVo+JKlPRR22rzsK/ZKgNH3lfjbS6i
|
22
|
+
JWqPva70rL2xz5kCVn6DL7XhNZtqnAO4kvCQyQeWezvcoGXEnbHacKky7B+/WKec
|
23
|
+
OIWEwedl6j+X0OD5OYki3QaTAgMBAAGjgYgwgYUwCQYDVR0TBAIwADALBgNVHQ8E
|
24
|
+
BAMCBLAwHQYDVR0OBBYEFJnLz40Onu/dfpLSipU5FgTy6WLmMCUGA1UdEQQeMByB
|
25
|
+
GnBoaWxpcHBlLmJvdXJnYXVAZ21haWwuY29tMCUGA1UdEgQeMByBGnBoaWxpcHBl
|
26
|
+
LmJvdXJnYXVAZ21haWwuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQBGoH72KWYACGZl
|
27
|
+
cMHMJ9d/DRU7rynJ8c4xuuM4c3Ri8bGPqI/a1BAp4QPJApS4+ANXXJ220hslrekP
|
28
|
+
9/ExEKFiqiywh1clih9ttuN4cHqJzCP6QHqJznQrvaYToZLxGARDf3Mwz4mFSh4W
|
29
|
+
snSep53DZ1vrY2Gzmig/4PuBF4q3nhwPgxV6H3SH4/Py7QF5COZPQlCdBwPYczqW
|
30
|
+
XxIbXhRVXcgjBHT0w2HsXkOwmmYvBzbrfqtTx5NswwHcIeQZB/NID7berIf9awx3
|
31
|
+
yLcl1cmm5ALtJ/+Bkkmp0i4amXeTDMvq9r8PBsVsQwxYOYJBP+Umxz3PX6HjFHrQ
|
32
|
+
XdkXx3oZ
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
date: 2014-06-11 00:00:00.000000000 Z
|
42
35
|
dependencies:
|
43
36
|
- !ruby/object:Gem::Dependency
|
44
37
|
name: cucumber
|
45
38
|
requirement: !ruby/object:Gem::Requirement
|
46
39
|
requirements:
|
47
|
-
- -
|
40
|
+
- - ">="
|
48
41
|
- !ruby/object:Gem::Version
|
49
42
|
version: '0'
|
50
43
|
type: :runtime
|
51
44
|
prerelease: false
|
52
45
|
version_requirements: !ruby/object:Gem::Requirement
|
53
46
|
requirements:
|
54
|
-
- -
|
47
|
+
- - ">="
|
55
48
|
- !ruby/object:Gem::Version
|
56
49
|
version: '0'
|
57
50
|
- !ruby/object:Gem::Dependency
|
58
51
|
name: bundler
|
59
52
|
requirement: !ruby/object:Gem::Requirement
|
60
53
|
requirements:
|
61
|
-
- -
|
54
|
+
- - ">="
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: '0'
|
64
57
|
type: :development
|
65
58
|
prerelease: false
|
66
59
|
version_requirements: !ruby/object:Gem::Requirement
|
67
60
|
requirements:
|
68
|
-
- -
|
61
|
+
- - ">="
|
69
62
|
- !ruby/object:Gem::Version
|
70
63
|
version: '0'
|
71
64
|
- !ruby/object:Gem::Dependency
|
72
65
|
name: rake
|
73
66
|
requirement: !ruby/object:Gem::Requirement
|
74
67
|
requirements:
|
75
|
-
- -
|
68
|
+
- - ">="
|
76
69
|
- !ruby/object:Gem::Version
|
77
70
|
version: '0'
|
78
71
|
type: :development
|
79
72
|
prerelease: false
|
80
73
|
version_requirements: !ruby/object:Gem::Requirement
|
81
74
|
requirements:
|
82
|
-
- -
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: guard-cucumber
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
type: :development
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: rspec
|
94
|
+
requirement: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: relish
|
108
|
+
requirement: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
type: :development
|
114
|
+
prerelease: false
|
115
|
+
version_requirements: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
83
118
|
- !ruby/object:Gem::Version
|
84
119
|
version: '0'
|
85
120
|
description: Cucumber step definition dsl extension to easily define more readable
|
@@ -90,16 +125,24 @@ executables: []
|
|
90
125
|
extensions: []
|
91
126
|
extra_rdoc_files: []
|
92
127
|
files:
|
93
|
-
- .gitignore
|
128
|
+
- ".gitignore"
|
129
|
+
- ".travis.yml"
|
94
130
|
- Gemfile
|
131
|
+
- Guardfile
|
95
132
|
- LICENSE.txt
|
96
133
|
- README.md
|
97
134
|
- Rakefile
|
98
135
|
- cucumber_tricks.gemspec
|
136
|
+
- features/either.feature
|
137
|
+
- features/pronouns.feature
|
138
|
+
- features/step_definitions/steps.rb
|
139
|
+
- features/support/hooks.rb
|
140
|
+
- features/tables.feature
|
99
141
|
- lib/cucumber_tricks.rb
|
100
142
|
- lib/cucumber_tricks/dsl_extensions.rb
|
101
143
|
- lib/cucumber_tricks/table_extensions.rb
|
102
144
|
- lib/cucumber_tricks/version.rb
|
145
|
+
- push.sh
|
103
146
|
homepage: https://github.com/philou/cucumber_tricks
|
104
147
|
licenses:
|
105
148
|
- MIT
|
@@ -110,19 +153,24 @@ require_paths:
|
|
110
153
|
- lib
|
111
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
155
|
requirements:
|
113
|
-
- -
|
156
|
+
- - ">="
|
114
157
|
- !ruby/object:Gem::Version
|
115
158
|
version: '0'
|
116
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
160
|
requirements:
|
118
|
-
- -
|
161
|
+
- - ">="
|
119
162
|
- !ruby/object:Gem::Version
|
120
163
|
version: '0'
|
121
164
|
requirements: []
|
122
165
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
166
|
+
rubygems_version: 2.2.2
|
124
167
|
signing_key:
|
125
168
|
specification_version: 4
|
126
169
|
summary: Allows to reference entities with pronouns in gherkin, and to have dual steps,
|
127
170
|
taking a single parameter, or a more detailed table.
|
128
|
-
test_files:
|
171
|
+
test_files:
|
172
|
+
- features/either.feature
|
173
|
+
- features/pronouns.feature
|
174
|
+
- features/step_definitions/steps.rb
|
175
|
+
- features/support/hooks.rb
|
176
|
+
- features/tables.feature
|
metadata.gz.sig
CHANGED
Binary file
|