macros4cuke 0.3.23 → 0.3.24

Sign up to get free protection for your applications and to get access to all the features.
data/.rubocop.yml CHANGED
@@ -1,3 +1,6 @@
1
+ AccessControl:
2
+ Enabled: false
3
+
1
4
  # This is disabled because some demos use UTF-8
2
5
  AsciiComments:
3
6
  Enabled: false
@@ -5,6 +8,9 @@ AsciiComments:
5
8
  CaseIndentation:
6
9
  Enabled: false
7
10
 
11
+ ConstantName:
12
+ Enabled: false
13
+
8
14
  DefWithParentheses:
9
15
  Enabled: false
10
16
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.3.24 / 2013-05-28
2
+ * [CHANGE] File `.rubocop.yml`: A few new Rubocop 0.8.0 checks are disabled.
3
+ * [CHANGE] Many source files refactored to satisfy new "cops" from Rubocop 0.8.0
4
+
1
5
  ## 0.3.23 / 2013-05-26
2
6
  * [CHANGE] Demo file `table.feature`: Added one scenario combining argument passing via the phrase and table.
3
7
 
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ task :push do
9
9
  system("gem push macros4cuke-#{Macros4Cuke::Version}.gem")
10
10
  end
11
11
 
12
- end
12
+ end # namespace
13
13
 
14
14
  # Testing-specific tasks
15
15
 
@@ -20,13 +20,13 @@ end
20
20
 
21
21
  # RSpec as testing tool
22
22
  require 'rspec/core/rake_task'
23
- desc "Run RSpec"
23
+ desc 'Run RSpec'
24
24
  RSpec::Core::RakeTask.new do |spec|
25
25
  spec.pattern = 'spec/**/*_spec.rb'
26
26
  end
27
27
 
28
28
  # Combine RSpec and Cucumber tests
29
- desc "Run tests, with RSpec and Cucumber"
29
+ desc 'Run tests, with RSpec and Cucumber'
30
30
  task :test => [:spec, :cucumber]
31
31
 
32
32
  # Default rake task
@@ -1,31 +1,31 @@
1
- # encoding: utf-8
2
- # File: demo_steps.rb
3
- # A few step definitions for demo and testing purpose.
4
-
5
- When(/^I leave '(.*)'$/) do |city|
6
- show "I leave #{city}"
7
- end
8
-
9
-
10
- When(/^I visit (\S+)$/) do |city|
11
- show "I visit #{city}"
12
- end
13
-
14
-
15
- # This step uses a multiline text argument
16
- When(/^I visit the cities:$/) do |cities_raw|
17
- cities = cities_raw.split(/\r\n?|\n/)
18
- cities.each { |city| show "I visit #{city}" }
19
- end
20
-
21
-
22
- When(/^I arrive in (.+)$/) do |city|
23
- show "I arrive in #{city}"
24
- end
25
-
26
-
27
- When(/^I type \"([^"]*)\"$/) do |text|
28
- show text
29
- end
30
-
1
+ # encoding: utf-8
2
+ # File: demo_steps.rb
3
+ # A few step definitions for demo and testing purpose.
4
+
5
+ When(/^I leave '(.*)'$/) do |city|
6
+ show "I leave #{city}"
7
+ end
8
+
9
+
10
+ When(/^I visit (\S+)$/) do |city|
11
+ show "I visit #{city}"
12
+ end
13
+
14
+
15
+ # This step uses a multiline text argument
16
+ When(/^I visit the cities:$/) do |cities_raw|
17
+ cities = cities_raw.split(/\r\n?|\n/)
18
+ cities.each { |city| show "I visit #{city}" }
19
+ end
20
+
21
+
22
+ When(/^I arrive in (.+)$/) do |city|
23
+ show "I arrive in #{city}"
24
+ end
25
+
26
+
27
+ When(/^I type \"([^"]*)\"$/) do |text|
28
+ show text
29
+ end
30
+
31
31
  # End of file
@@ -1,11 +1,11 @@
1
- # encoding: utf-8
2
- # File: use_macro_steps.rb
3
- # Place a copy of this file in the feature/step_definitions folder
4
- # of your own Cucumber-based project.
5
-
6
- # The following require will load the step definitions from Macros4Cuke.
7
- # This allows feature file authors to use macro steps
8
- # in their Cucumber scenarios.
9
- require 'macros4cuke/../macro_steps'
10
-
1
+ # encoding: utf-8
2
+ # File: use_macro_steps.rb
3
+ # Place a copy of this file in the feature/step_definitions folder
4
+ # of your own Cucumber-based project.
5
+
6
+ # The following require will load the step definitions from Macros4Cuke.
7
+ # This allows feature file authors to use macro steps
8
+ # in their Cucumber scenarios.
9
+ require 'macros4cuke/../macro_steps'
10
+
11
11
  # End of file
@@ -1,38 +1,38 @@
1
- # encoding: utf-8
2
- # File: env.rb
3
-
4
-
5
- module DemoMacros4Cuke # Use the module as a namespace
6
-
7
-
8
- # Class created just for testing and demonstration purposes.
9
- # Its instance, will record the output emitted by the steps.
10
- class TracingWorld
11
- # Will contain the text emitted by the steps
12
- attr_reader(:trace_steps)
13
-
14
-
15
- def initialize()
16
- # Constructor
17
- @trace_steps = []
18
- end
19
-
20
- public
21
- # Write the given text to the error console
22
- def show(someText)
23
- # Replace every \" sequence by genuine "
24
- unescaped = someText.gsub(/\\"/, '"')
25
- $stderr.puts(unescaped)
26
- end
27
-
28
-
29
- end # class
30
-
31
- end # module
32
-
33
- # For testing purpose we override the default Cucumber behaviour
34
- # making our world object an instance of the TracingWorld class
35
- World { DemoMacros4Cuke::TracingWorld.new }
36
-
37
-
1
+ # encoding: utf-8
2
+ # File: env.rb
3
+
4
+
5
+ module DemoMacros4Cuke # Use the module as a namespace
6
+
7
+
8
+ # Class created just for testing and demonstration purposes.
9
+ # Its instance, will record the output emitted by the steps.
10
+ class TracingWorld
11
+ # Will contain the text emitted by the steps
12
+ attr_reader(:trace_steps)
13
+
14
+
15
+ def initialize()
16
+ # Constructor
17
+ @trace_steps = []
18
+ end
19
+
20
+ public
21
+ # Write the given text to the error console
22
+ def show(someText)
23
+ # Replace every \" sequence by genuine "
24
+ unescaped = someText.gsub(/\\"/, '"')
25
+ $stderr.puts(unescaped)
26
+ end
27
+
28
+
29
+ end # class
30
+
31
+ end # module
32
+
33
+ # For testing purpose we override the default Cucumber behaviour
34
+ # making our world object an instance of the TracingWorld class
35
+ World { DemoMacros4Cuke::TracingWorld.new }
36
+
37
+
38
38
  # End of file
@@ -1,17 +1,17 @@
1
- # encoding: utf-8
2
- # File: macro_support.rb
3
- # Purpose: Add the support for macros in Cucumber.
4
- # This file is meant to be put next to the 'env.rb' file
5
- # of your Cucumeber project.
6
-
7
-
8
- # Macros4Cuke step one: Load modules and classes from the gem.
9
- require 'macros4cuke'
10
-
11
-
12
- # Macros4Cuke step two: extend the world object with the mix-in module
13
- # that adds the support for macros in Cucumber.
14
- World(Macros4Cuke::MacroStepSupport)
15
-
16
-
1
+ # encoding: utf-8
2
+ # File: macro_support.rb
3
+ # Purpose: Add the support for macros in Cucumber.
4
+ # This file is meant to be put next to the 'env.rb' file
5
+ # of your Cucumeber project.
6
+
7
+
8
+ # Macros4Cuke step one: Load modules and classes from the gem.
9
+ require 'macros4cuke'
10
+
11
+
12
+ # Macros4Cuke step two: extend the world object with the mix-in module
13
+ # that adds the support for macros in Cucumber.
14
+ World(Macros4Cuke::MacroStepSupport)
15
+
16
+
17
17
  # End of file
@@ -1,14 +1,14 @@
1
- # encoding: utf-8
2
- # Quelques définitions de pas de scénarios Cucumber.
3
- require 'stringio'
4
-
5
- Quand(/^j'imprime "(.*?)" à l'écran$/) do |some_text|
6
- $stderr.puts some_text
7
- end
8
-
9
- Quand(/^je garde "(.*?)" en mémoire$/) do |some_text|
10
- @output ||= StringIO.new('')
11
- @output.puts some_text
12
- end
13
-
1
+ # encoding: utf-8
2
+ # Quelques définitions de pas de scénarios Cucumber.
3
+ require 'stringio'
4
+
5
+ Quand(/^j'imprime "(.*?)" à l'écran$/) do |some_text|
6
+ $stderr.puts some_text
7
+ end
8
+
9
+ Quand(/^je garde "(.*?)" en mémoire$/) do |some_text|
10
+ @output ||= StringIO.new('')
11
+ @output.puts some_text
12
+ end
13
+
14
14
  # End of file
@@ -1,30 +1,30 @@
1
- # encoding: utf-8
2
- # Définitions de pas de scénarios utilisant Macros4Cuke.
3
-
4
-
5
- Etantdonné(/^que je crée le pas "(?:Soit|Quand|Alors) j(?:e |')\[((?:[^\\\]]|\\.)+)\](:?)" qui équivaut à:$/) do |macro_phrase, colon_capture, template|
6
- use_table = (colon_capture == ':')
7
- add_macro(macro_phrase, template, use_table)
8
- end
9
-
10
-
11
- Quand(/^j(?:e |')\[((?:[^\\\]]|\\.)+)\]$/) do |macro_phrase|
12
- # This will call the macro with the given phrase
13
- invoke_macro(macro_phrase)
14
- end
15
-
16
-
17
- Quand(/^j(?:e |')\[([^\]]+)\]:$/) do |macro_phrase, table_argument|
18
- # Ensure that the second argument is of the correct type
19
- unless table_argument.kind_of?(Cucumber::Ast::Table)
20
- error_message = 'This step must have a data table as an argument.'
21
- raise Macros4Cuke::DataTableNotFound, error_message
22
- end
23
-
24
- # This will call the macro with the given phrase.
25
- # The second argument consists of an array with couples
26
- # of the kind: [argument name, actual value]
27
- invoke_macro(macro_phrase, table_argument.raw)
28
- end
29
-
1
+ # encoding: utf-8
2
+ # Définitions de pas de scénarios utilisant Macros4Cuke.
3
+
4
+
5
+ Etantdonné(/^que je crée le pas "(?:Soit|Quand|Alors) j(?:e |')\[((?:[^\\\]]|\\.)+)\](:?)" qui équivaut à:$/) do |macro_phrase, colon_capture, template|
6
+ use_table = (colon_capture == ':')
7
+ add_macro(macro_phrase, template, use_table)
8
+ end
9
+
10
+
11
+ Quand(/^j(?:e |')\[((?:[^\\\]]|\\.)+)\]$/) do |macro_phrase|
12
+ # This will call the macro with the given phrase
13
+ invoke_macro(macro_phrase)
14
+ end
15
+
16
+
17
+ Quand(/^j(?:e |')\[([^\]]+)\]:$/) do |macro_phrase, table_argument|
18
+ # Ensure that the second argument is of the correct type
19
+ unless table_argument.kind_of?(Cucumber::Ast::Table)
20
+ error_message = 'This step must have a data table as an argument.'
21
+ raise Macros4Cuke::DataTableNotFound, error_message
22
+ end
23
+
24
+ # This will call the macro with the given phrase.
25
+ # The second argument consists of an array with couples
26
+ # of the kind: [argument name, actual value]
27
+ invoke_macro(macro_phrase, table_argument.raw)
28
+ end
29
+
30
30
  # End of file
@@ -1,17 +1,17 @@
1
- # encoding: utf-8 You should see a paragraph character: §
2
- # File: macro_support.rb
3
- # Purpose: Add the support for macros in Cucumber.
4
- # This file is meant to be put next to the 'env.rb' file
5
- # of your Cucumeber project.
6
-
7
-
8
- # Macros4Cuke step one: Load modules and classes from the gem.
9
- require 'macros4cuke'
10
-
11
-
12
- # Macros4Cuke step two: extend the world object with the mix-in module
13
- # that adds the support for macros in Cucumber.
14
- World(Macros4Cuke::MacroStepSupport)
15
-
16
-
1
+ # encoding: utf-8 You should see a paragraph character: §
2
+ # File: macro_support.rb
3
+ # Purpose: Add the support for macros in Cucumber.
4
+ # This file is meant to be put next to the 'env.rb' file
5
+ # of your Cucumeber project.
6
+
7
+
8
+ # Macros4Cuke step one: Load modules and classes from the gem.
9
+ require 'macros4cuke'
10
+
11
+
12
+ # Macros4Cuke step two: extend the world object with the mix-in module
13
+ # that adds the support for macros in Cucumber.
14
+ World(Macros4Cuke::MacroStepSupport)
15
+
16
+
17
17
  # End of file
@@ -1,41 +1,41 @@
1
- # encoding: utf-8
2
- # File: demo_steps.rb
3
- # A few step definitions for demo and testing purpose.
4
-
5
- When(/^I landed in the homepage$/) do
6
- trace_steps << 'Invoked step: ... I landed in the homepage'
7
- end
8
-
9
- When(/^I click "([^"]*)"$/) do |element|
10
- trace_steps << "Invoked step: ... I click \"#{element}\""
11
- end
12
-
13
-
14
- When(/^I fill in "(.*?)" with "(.*?)"$/) do |element, text|
15
- trace_steps << "Invoked step: ... I fill in \"#{element}\" with \"#{text}\""
16
- end
17
-
18
-
19
- Then(/^I expect the following step trace:$/) do |step_text|
20
- trace_steps.should == step_text.split(/\r?\n|\n/)
21
- end
22
-
23
-
24
- # This step is used for testing a particular exception
25
- When(/^I generate a DataTableNotFound exception$/) do
26
- wrong = <<-SNIPPET
27
- When I [fill in the form with]:
28
- """
29
- Should be a table instead of triple quote string
30
- """
31
- SNIPPET
32
- begin
33
- steps(wrong)
34
- rescue Macros4Cuke::DataTableNotFound => exc
35
- msg = 'The step with phrase [fill in the form with]: requires a data table.'
36
- exc.message.should == msg
37
- end
38
- end
39
-
40
-
1
+ # encoding: utf-8
2
+ # File: demo_steps.rb
3
+ # A few step definitions for demo and testing purpose.
4
+
5
+ When(/^I landed in the homepage$/) do
6
+ trace_steps << 'Invoked step: ... I landed in the homepage'
7
+ end
8
+
9
+ When(/^I click "([^"]*)"$/) do |element|
10
+ trace_steps << "Invoked step: ... I click \"#{element}\""
11
+ end
12
+
13
+
14
+ When(/^I fill in "(.*?)" with "(.*?)"$/) do |element, text|
15
+ trace_steps << "Invoked step: ... I fill in \"#{element}\" with \"#{text}\""
16
+ end
17
+
18
+
19
+ Then(/^I expect the following step trace:$/) do |step_text|
20
+ trace_steps.should == step_text.split(/\r?\n|\n/)
21
+ end
22
+
23
+
24
+ # This step is used for testing a particular exception
25
+ When(/^I generate a DataTableNotFound exception$/) do
26
+ wrong = <<-SNIPPET
27
+ When I [fill in the form with]:
28
+ """
29
+ Should be a table instead of triple quote string
30
+ """
31
+ SNIPPET
32
+ begin
33
+ steps(wrong)
34
+ rescue Macros4Cuke::DataTableNotFound => exc
35
+ msg = 'The step with phrase [fill in the form with]: requires a data table.'
36
+ exc.message.should == msg
37
+ end
38
+ end
39
+
40
+
41
41
  # End of file
@@ -1,11 +1,11 @@
1
- # encoding: utf-8
2
- # File: use_macro_steps.rb
3
- # Place a copy of this file in the feature/step_definitions folder
4
- # of your own Cucumber-based project.
5
-
6
- # The following require will load the step definitions from Macros4Cuke.
7
- # This allows feature file authors to use macro steps
8
- # in their Cucumber scenarios.
9
- require 'macros4cuke/../macro_steps'
10
-
1
+ # encoding: utf-8
2
+ # File: use_macro_steps.rb
3
+ # Place a copy of this file in the feature/step_definitions folder
4
+ # of your own Cucumber-based project.
5
+
6
+ # The following require will load the step definitions from Macros4Cuke.
7
+ # This allows feature file authors to use macro steps
8
+ # in their Cucumber scenarios.
9
+ require 'macros4cuke/../macro_steps'
10
+
11
11
  # End of file
@@ -1,46 +1,46 @@
1
- # encoding: utf-8 You should see a paragraph character: §
2
- # File: env.rb
3
- # Purpose: Allow Cucumber to load the sample application configuration
4
- # and hooks.
5
- # It also demonstrate what to do in your env.rb file
6
- # to use the Macros4Cuke gem.
7
-
8
- begin
9
- require 'simplecov'
10
- rescue LoadError
11
- # Gobble silently the exception if simplecov isn't installed.
12
- end
13
-
14
- module DemoMacros4Cuke # Use the module as a namespace
15
-
16
-
17
- # Class created just for testing and demonstration purposes.
18
- # Its instance, will record the output emitted by the steps.
19
-
20
- class TracingWorld
21
- # Will contain the text emitted by the steps
22
- attr_reader(:trace_steps)
23
-
24
-
25
- def initialize()
26
- # Constructor
27
- @trace_steps = []
28
- end
29
-
30
- public
31
- # Write the given text to the error console
32
-
33
- def show(someText)
34
- $stderr.puts(someText)
35
- end
36
-
37
-
38
- end # class
39
-
40
- end # module
41
-
42
- # For testing purpose we override the default Cucumber behaviour
43
- # making our world object an instance of the TracingWorld class
44
- World { DemoMacros4Cuke::TracingWorld.new }
45
-
1
+ # encoding: utf-8 You should see a paragraph character: §
2
+ # File: env.rb
3
+ # Purpose: Allow Cucumber to load the sample application configuration
4
+ # and hooks.
5
+ # It also demonstrate what to do in your env.rb file
6
+ # to use the Macros4Cuke gem.
7
+
8
+ begin
9
+ require 'simplecov'
10
+ rescue LoadError
11
+ # Gobble silently the exception if simplecov isn't installed.
12
+ end
13
+
14
+ module DemoMacros4Cuke # Use the module as a namespace
15
+
16
+
17
+ # Class created just for testing and demonstration purposes.
18
+ # Its instance, will record the output emitted by the steps.
19
+
20
+ class TracingWorld
21
+ # Will contain the text emitted by the steps
22
+ attr_reader(:trace_steps)
23
+
24
+
25
+ def initialize()
26
+ # Constructor
27
+ @trace_steps = []
28
+ end
29
+
30
+ public
31
+ # Write the given text to the error console
32
+
33
+ def show(someText)
34
+ $stderr.puts(someText)
35
+ end
36
+
37
+
38
+ end # class
39
+
40
+ end # module
41
+
42
+ # For testing purpose we override the default Cucumber behaviour
43
+ # making our world object an instance of the TracingWorld class
44
+ World { DemoMacros4Cuke::TracingWorld.new }
45
+
46
46
  # End of file
@@ -1,17 +1,17 @@
1
- # encoding: utf-8
2
- # File: macro_support.rb
3
- # Purpose: Add the support for macros in Cucumber.
4
- # This file is meant to be put next to the 'env.rb' file
5
- # of your Cucumeber project.
6
-
7
-
8
- # Macros4Cuke step one: Load modules and classes from the gem.
9
- require 'macros4cuke'
10
-
11
-
12
- # Macros4Cuke step two: extend the world object with the mix-in module
13
- # that adds the support for macros in Cucumber.
14
- World(Macros4Cuke::MacroStepSupport)
15
-
16
-
1
+ # encoding: utf-8
2
+ # File: macro_support.rb
3
+ # Purpose: Add the support for macros in Cucumber.
4
+ # This file is meant to be put next to the 'env.rb' file
5
+ # of your Cucumeber project.
6
+
7
+
8
+ # Macros4Cuke step one: Load modules and classes from the gem.
9
+ require 'macros4cuke'
10
+
11
+
12
+ # Macros4Cuke step two: extend the world object with the mix-in module
13
+ # that adds the support for macros in Cucumber.
14
+ World(Macros4Cuke::MacroStepSupport)
15
+
16
+
17
17
  # End of file
@@ -4,7 +4,7 @@
4
4
 
5
5
  module Macros4Cuke # Module used as a namespace
6
6
  # The version number of the gem.
7
- Version = '0.3.23'
7
+ Version = '0.3.24'
8
8
 
9
9
  # Brief description of the gem.
10
10
  Description = 'Macros for Cucumber'
@@ -19,6 +19,7 @@ class MacroCollection
19
19
 
20
20
 
21
21
  public
22
+
22
23
  # Add a new macro.
23
24
  # Pre-condition: there is no existing macro with the same key.
24
25
  # @param aPhrase [String] The text that is enclosed between
@@ -71,6 +72,7 @@ public
71
72
  end
72
73
 
73
74
  private
75
+
74
76
  # Retrieve the macro, given a phrase.
75
77
  def find_macro(aMacroPhrase, useTable)
76
78
  key = MacroStep.macro_key(aMacroPhrase, useTable, :invokation)
@@ -215,8 +215,8 @@ private
215
215
  # and the macro-step does not use data table.
216
216
  unless use_table?
217
217
  substepsVars.each do |substep_arg|
218
- unless (thePhraseArgs.include?(substep_arg) ||
219
- BuiltinParameters.include?(substep_arg))
218
+ unless thePhraseArgs.include?(substep_arg) ||
219
+ BuiltinParameters.include?(substep_arg)
220
220
  raise UnreachableSubstepArgument.new(substep_arg)
221
221
  end
222
222
  end
@@ -65,6 +65,7 @@ class UnaryElement
65
65
  end
66
66
 
67
67
  protected
68
+
68
69
  # This method has the same signature as the {Engine#render} method.
69
70
  # @return [Object] The actual value from the locals or context
70
71
  # that is assigned to the variable.
@@ -317,6 +318,7 @@ public
317
318
  end
318
319
 
319
320
  private
321
+
320
322
  # Called when the given text line could not be parsed.
321
323
  # Raises an exception with the syntax issue identified.
322
324
  # @param aTextLine [String] A text line from the template.
@@ -35,7 +35,7 @@ SNIPPET
35
35
  it 'should accept the addition of a new macro-step' do
36
36
  phrase = '[enter my credentials]'
37
37
  args = [phrase, sample_substeps, true]
38
- ->() { singleton.add_macro(*args)}.should_not raise_error
38
+ ->() { singleton.add_macro(*args) }.should_not raise_error
39
39
  singleton.should have(1).macro_steps
40
40
 
41
41
  # Error case: inserting another macro with same phrase.
@@ -226,7 +226,7 @@ SNIPPET
226
226
  text_w_open_section = sophisticated_template.sub(/<\/address>/, '')
227
227
 
228
228
  error_message = 'Unterminated section <?address>.'
229
- ->(){ Engine.new text_w_open_section}.should raise_error(
229
+ ->(){ Engine.new text_w_open_section }.should raise_error(
230
230
  StandardError, error_message)
231
231
  end
232
232
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macros4cuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.23
4
+ version: 0.3.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-26 00:00:00.000000000 Z
12
+ date: 2013-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber