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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODg2ZDVlNTFhZmRjNjdhYjZlZGJlZmYxM2Q5YWU5YTlkNWQyYTdmNg==
5
- data.tar.gz: !binary |-
6
- Njg0YTdlMGE3OWRlMDU5ZGMyMTk0MzFlODhiNWFjNWQ0NGZmZWY5Yg==
7
- !binary "U0hBNTEy":
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
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.2
4
+ - 2.0.0
5
+ script: bundle exec rake
6
+
@@ -0,0 +1,6 @@
1
+ guard 'cucumber' do
2
+ watch(%r{^features/.+\.feature$})
3
+ watch(%r{^features/support/.+$}) { 'features' }
4
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
5
+ end
6
+
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
- TODO: Write usage instructions here
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
@@ -1 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'cucumber/rake/task'
3
+
4
+ desc 'Run cucumber features'
5
+ Cucumber::Rake::Task.new
6
+
7
+
8
+ task :default => :cucumber
@@ -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,3 @@
1
+ Before do
2
+ FileUtils.rm_r ('tmp/features') if File.exist?('tmp/features')
3
+ 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
- # * the tool "saw"
11
- # * a tool
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 defines 2 steps in 1 call.
45
- # * &bloc : is the implementation of the step, taking a table as argument
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|
@@ -1,3 +1,3 @@
1
1
  module CucumberTricks
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/push.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ git push origin master
4
+ bundle exec relish push philou/cucumber-tricks
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.1
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
- - !binary |-
12
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURrakNDQW5xZ0F3SUJB
13
- Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJITVJrd0Z3WURWUVFEREJCd2FH
14
- bHMKYVhCd1pTNWliM1Z5WjJGMU1SVXdFd1lLQ1pJbWlaUHlMR1FCR1JZRloy
15
- MWhhV3d4RXpBUkJnb0praWFKay9JcwpaQUVaRmdOamIyMHdIaGNOTVRNd09U
16
- SXpNVEV3T1RBM1doY05NVFF3T1RJek1URXdPVEEzV2pCSE1Sa3dGd1lEClZR
17
- UUREQkJ3YUdsc2FYQndaUzVpYjNWeVoyRjFNUlV3RXdZS0NaSW1pWlB5TEdR
18
- QkdSWUZaMjFoYVd3eEV6QVIKQmdvSmtpYUprL0lzWkFFWkZnTmpiMjB3Z2dF
19
- aU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQgpBUUM4Q3Bv
20
- cVp3RWJ6WHI1NUVVeGRTcGxnbjBNWVo5eFBHTy9YbVJhOGJENjNuK0pZV0Yw
21
- QVMrbWo0NTJaWTE4CnJ3TSt5S3JLaHRzQSthSkpkbE9hZmdJVW5ZNVNyWk9y
22
- N3Y3a2djNlQyWU5vVWorTTAwVW0yanYrc2hRYk90VjYKcUdwMEp3MUhmUE5V
23
- TVZhKzNwWFp5QUdDZWNONnJUbnNaSkl1VzZLTmFKVXE2bEVNVlhhbm9USGdB
24
- S3JINWFIZApZNm9md1FMODZkNkxEa0MxUzRwODZpTVVXdkYzNHc4aDVJdFZv
25
- K0pLbFBSUjIycnpzSy9aS2dOSDNsZmpiUzZpCkpXcVB2YTcwckwyeHo1a0NW
26
- bjZETDdYaE5adHFuQU80a3ZDUXlRZVdlenZjb0dYRW5iSGFjS2t5N0IrL1dL
27
- ZWMKT0lXRXdlZGw2aitYME9ENU9Za2kzUWFUQWdNQkFBR2pnWWd3Z1lVd0NR
28
- WURWUjBUQkFJd0FEQUxCZ05WSFE4RQpCQU1DQkxBd0hRWURWUjBPQkJZRUZK
29
- bkx6NDBPbnUvZGZwTFNpcFU1RmdUeTZXTG1NQ1VHQTFVZEVRUWVNQnlCCkdu
30
- Qm9hV3hwY0hCbExtSnZkWEpuWVhWQVoyMWhhV3d1WTI5dE1DVUdBMVVkRWdR
31
- ZU1CeUJHbkJvYVd4cGNIQmwKTG1KdmRYSm5ZWFZBWjIxaGFXd3VZMjl0TUEw
32
- R0NTcUdTSWIzRFFFQkJRVUFBNElCQVFCR29INzJLV1lBQ0dabApjTUhNSjlk
33
- L0RSVTdyeW5KOGM0eHV1TTRjM1JpOGJHUHFJL2ExQkFwNFFQSkFwUzQrQU5Y
34
- WEoyMjBoc2xyZWtQCjkvRXhFS0ZpcWl5d2gxY2xpaDl0dHVONGNIcUp6Q1A2
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.0.3
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