cucumber_tricks 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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