macros4cuke 0.5.14 → 0.5.15

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -9
  3. data/CHANGELOG.md +20 -11
  4. data/Gemfile +2 -2
  5. data/LICENSE.txt +1 -1
  6. data/README.md +43 -42
  7. data/Rakefile +54 -54
  8. data/appveyor.yml +20 -0
  9. data/bin/macros4cuke +14 -15
  10. data/lib/macro_steps.rb +3 -3
  11. data/lib/macros4cuke/application.rb +1 -3
  12. data/lib/macros4cuke/cli/cmd-line.rb +1 -3
  13. data/lib/macros4cuke/coll-walker-factory.rb +1 -1
  14. data/lib/macros4cuke/constants.rb +2 -2
  15. data/lib/macros4cuke/formatter/all-notifications.rb +1 -1
  16. data/lib/macros4cuke/formatter/to-gherkin.rb +4 -6
  17. data/lib/macros4cuke/formatter/to-null.rb +14 -14
  18. data/lib/macros4cuke/formatter/to-trace.rb +1 -3
  19. data/lib/macros4cuke/formatting-service.rb +2 -2
  20. data/lib/macros4cuke/macro-collection.rb +4 -6
  21. data/lib/macros4cuke/macro-step-support.rb +0 -2
  22. data/lib/macros4cuke/macro-step.rb +18 -19
  23. data/lib/macros4cuke/templating/comment.rb +0 -2
  24. data/lib/macros4cuke/templating/engine.rb +26 -29
  25. data/lib/macros4cuke/templating/eo-line.rb +18 -21
  26. data/lib/macros4cuke/templating/placeholder.rb +12 -12
  27. data/lib/macros4cuke/templating/section.rb +1 -5
  28. data/lib/macros4cuke/templating/static-text.rb +0 -2
  29. data/lib/macros4cuke/templating/template-element.rb +6 -7
  30. data/spec/macros4cuke/cli/cmd-line_spec.rb +4 -4
  31. data/spec/macros4cuke/coll-walker-factory_spec.rb +42 -42
  32. data/spec/macros4cuke/formatter/to-trace_spec.rb +148 -149
  33. data/spec/macros4cuke/macro-collection_spec.rb +2 -2
  34. data/spec/macros4cuke/macro-step-support_spec.rb +10 -9
  35. data/spec/macros4cuke/macro-step_spec.rb +10 -9
  36. data/spec/macros4cuke/templating/comment_spec.rb +37 -38
  37. data/spec/macros4cuke/templating/engine_spec.rb +19 -22
  38. data/spec/macros4cuke/templating/eo-line_spec.rb +31 -32
  39. data/spec/macros4cuke/templating/placeholder_spec.rb +1 -2
  40. data/spec/macros4cuke/templating/section_spec.rb +10 -7
  41. data/spec/macros4cuke/templating/static_text_spec.rb +38 -39
  42. data/spec/macros4cuke/use-sample-collection.rb +3 -3
  43. metadata +9 -8
@@ -1,5 +1,4 @@
1
1
  # File: engine_spec.rb
2
-
3
2
  require_relative '../../spec_helper'
4
3
 
5
4
  # Load the class under test
@@ -155,23 +154,23 @@ SNIPPET
155
154
 
156
155
  it 'should complain if a tag misses an closing chevron' do
157
156
  sample_text = 'begin <some_tag\> end'
158
- error_message = "Missing closing chevron '>'."
159
- expect { Engine.parse(sample_text) }.to raise_error(
160
- StandardError, error_message)
157
+ exc = StandardError
158
+ err_msg = "Missing closing chevron '>'."
159
+ expect { Engine.parse(sample_text) }.to raise_error(exc, err_msg)
161
160
  end
162
161
 
163
162
  it 'should complain if a text misses an opening chevron' do
164
163
  sample_text = 'begin <some_tag> > end'
165
- error_message = "Missing opening chevron '<'."
166
- expect { Engine.parse(sample_text) }.to raise_error(
167
- StandardError, error_message)
164
+ exc = StandardError
165
+ err_msg = "Missing opening chevron '<'."
166
+ expect { Engine.parse(sample_text) }.to raise_error(exc, err_msg)
168
167
  end
169
168
 
170
169
  it 'should complain if a text has nested opening chevrons' do
171
170
  sample_text = 'begin <<some_tag> > end'
172
- error_message = "Nested opening chevron '<'."
173
- expect { Engine.parse(sample_text) }.to raise_error(
174
- StandardError, error_message)
171
+ exc = StandardError
172
+ err_msg = "Nested opening chevron '<'."
173
+ expect { Engine.parse(sample_text) }.to raise_error(exc, err_msg)
175
174
  end
176
175
  end # context
177
176
 
@@ -203,35 +202,33 @@ SNIPPET
203
202
 
204
203
  it 'should complain when a placeholder is empty or blank' do
205
204
  text_w_empty_arg = sample_template.sub(/userid/, '')
206
- msg = %Q(An empty or blank argument occurred in\
205
+ exc = Macros4Cuke::EmptyArgumentError
206
+ msg = %(An empty or blank argument occurred in\
207
207
  'And I fill in "Username" with "<>"'.)
208
- expect { Engine.new text_w_empty_arg }.to raise_error(
209
- Macros4Cuke::EmptyArgumentError, msg)
208
+ expect { Engine.new text_w_empty_arg }.to raise_error(exc, msg)
210
209
  end
211
210
 
212
211
  it 'should complain when a placeholder contains an invalid character' do
213
212
  text_w_empty_arg = sample_template.sub(/userid/, 'user%id')
213
+ exc = Macros4Cuke::InvalidCharError
214
214
  msg = "The invalid sign '%' occurs in the argument 'user%id'."
215
- expect { Engine.new text_w_empty_arg }.to raise_error(
216
- Macros4Cuke::InvalidCharError, msg)
215
+ expect { Engine.new text_w_empty_arg }.to raise_error(exc, msg)
217
216
  end
218
217
 
219
218
  it 'should complain when a section has no closing tag' do
220
219
  # Removing an end of section tag...
221
220
  text_w_open_section = sophisticated_template.sub(%r{</address>}, '')
222
-
223
- error_message = 'Unterminated section <?address>.'
224
- expect { Engine.new text_w_open_section }.to raise_error(
225
- StandardError, error_message)
221
+ exc = StandardError
222
+ msg = 'Unterminated section <?address>.'
223
+ expect { Engine.new text_w_open_section }.to raise_error(exc, msg)
226
224
  end
227
225
 
228
226
  it 'should complain when a closing tag has no corresponding opening tag' do
229
227
  # Replacing an end of section tag by another...
230
228
  text_w_wrong_end = sophisticated_template.sub(%r{</address>}, '</foobar>')
231
-
229
+ exc = StandardError
232
230
  msg = "End of section</foobar> doesn't match current section 'address'."
233
- expect { Engine.new text_w_wrong_end }.to raise_error(
234
- StandardError, msg)
231
+ expect { Engine.new text_w_wrong_end }.to raise_error(exc, msg)
235
232
  end
236
233
 
237
234
  it 'should complain when a closing tag is found without opening tag' do
@@ -1,32 +1,31 @@
1
- # File: eo-line_spec.rb
2
-
3
- require_relative '../../spec_helper'
4
-
5
- # Load the classes under test
6
- require_relative '../../../lib/macros4cuke/templating/eo-line'
7
-
8
- module Macros4Cuke
9
- module Templating # Open this namespace to get rid of module qualifier prefixes
10
- describe EOLine do
11
- subject { EOLine.new }
12
-
13
- context 'Creation and initialization:' do
14
- it 'should be created without argument' do
15
- expect { EOLine.new }.not_to raise_error
16
- end
17
- end # context
18
-
19
- context 'Provided services:' do
20
- it 'should render a new line' do
21
- context = double('fake_context')
22
- locals = double('fake_locals')
23
-
24
- expect(subject.render(context, locals)).to eq("\n")
25
- end
26
-
27
- end # context
28
- end # describe
29
- end # module
30
- end # module
31
-
32
- # End of file
1
+ # File: eo-line_spec.rb
2
+ require_relative '../../spec_helper'
3
+
4
+ # Load the classes under test
5
+ require_relative '../../../lib/macros4cuke/templating/eo-line'
6
+
7
+ module Macros4Cuke
8
+ module Templating # Open this namespace to get rid of module qualifier prefixes
9
+ describe EOLine do
10
+ subject { EOLine.new }
11
+
12
+ context 'Creation and initialization:' do
13
+ it 'should be created without argument' do
14
+ expect { EOLine.new }.not_to raise_error
15
+ end
16
+ end # context
17
+
18
+ context 'Provided services:' do
19
+ it 'should render a new line' do
20
+ context = double('fake_context')
21
+ locals = double('fake_locals')
22
+
23
+ expect(subject.render(context, locals)).to eq("\n")
24
+ end
25
+
26
+ end # context
27
+ end # describe
28
+ end # module
29
+ end # module
30
+
31
+ # End of file
@@ -1,5 +1,4 @@
1
1
  # File: placeholder_spec.rb
2
-
3
2
  require_relative '../../spec_helper'
4
3
 
5
4
  # Load the classes under test
@@ -33,7 +32,7 @@ describe Placeholder do
33
32
 
34
33
  # Case: context object has a nil value associated to 'foobar'
35
34
  context = Object.new
36
- def context.foobar # Add singleton method foobar that returns nil
35
+ def context.foobar # Add singleton method foobar that returns nil
37
36
  nil
38
37
  end
39
38
  rendered_text = subject.render(context, {})
@@ -1,5 +1,4 @@
1
1
  # File: section_spec.rb
2
-
3
2
  require_relative '../../spec_helper'
4
3
  require_relative '../../../lib/macros4cuke/templating/template-element'
5
4
  require_relative '../../../lib/macros4cuke/templating/placeholder'
@@ -17,7 +16,8 @@ describe Section do
17
16
 
18
17
  # Return a list of possible child elements
19
18
  let(:sample_children) do
20
- [ StaticText.new('Hello '),
19
+ [
20
+ StaticText.new('Hello '),
21
21
  Placeholder.new('user'),
22
22
  EOLine.new
23
23
  ]
@@ -54,7 +54,8 @@ describe Section do
54
54
 
55
55
  # Case: at least one child is a group
56
56
  parent = Section.new('son')
57
- [ subject,
57
+ [
58
+ subject,
58
59
  Comment.new('# Simple step'),
59
60
  EOLine.new,
60
61
  StaticText.new('Bye '),
@@ -67,9 +68,10 @@ describe Section do
67
68
 
68
69
 
69
70
  it 'should expect that its subclasses render the children' do
70
- error_message = 'Method Section.render must be implemented in subclass.'
71
- expect { subject.send(:render, Object.new, {}) }.to raise_error(
72
- NotImplementedError, error_message)
71
+ exc = NotImplementedError
72
+ err_msg = 'Method Section.render must be implemented in subclass.'
73
+ obj = Object.new
74
+ expect { subject.send(:render, obj, {}) }.to raise_error(exc, err_msg)
73
75
  end
74
76
  end # context
75
77
  end # describe
@@ -95,7 +97,8 @@ describe ConditionalSection do
95
97
  context 'Provided services:' do
96
98
  # Return a list of possible child elements
97
99
  let(:sample_children) do
98
- [ StaticText.new('Hello '),
100
+ [
101
+ StaticText.new('Hello '),
99
102
  Placeholder.new('user'),
100
103
  EOLine.new
101
104
  ]
@@ -1,39 +1,38 @@
1
- # File: placeholder_spec.rb
2
-
3
- require_relative '../../spec_helper'
4
-
5
- # Load the classes under test
6
- require_relative '../../../lib/macros4cuke/templating/static-text'
7
-
8
- module Macros4Cuke
9
- module Templating # Open this namespace to get rid of module qualifier prefixes
10
- describe StaticText do
11
- let(:sample_text) { 'Some text' }
12
-
13
- subject { StaticText.new(sample_text) }
14
-
15
- context 'Creation and initialization:' do
16
- it 'should be created with a text' do
17
- expect { StaticText.new(sample_text) }.not_to raise_error
18
- end
19
-
20
- it 'should know its source text' do
21
- expect(subject.source).to eq(sample_text)
22
- end
23
-
24
- end # context
25
-
26
- context 'Provided services:' do
27
- it 'should render the source text as is' do
28
- context = double('fake_context')
29
- locals = double('fake_locals')
30
-
31
- expect(subject.render(context, locals)).to eq(sample_text)
32
- end
33
-
34
- end # context
35
- end # describe
36
- end # module
37
- end # module
38
-
39
- # End of file
1
+ # File: placeholder_spec.rb
2
+ require_relative '../../spec_helper'
3
+
4
+ # Load the classes under test
5
+ require_relative '../../../lib/macros4cuke/templating/static-text'
6
+
7
+ module Macros4Cuke
8
+ module Templating # Open this namespace to get rid of module qualifier prefixes
9
+ describe StaticText do
10
+ let(:sample_text) { 'Some text' }
11
+
12
+ subject { StaticText.new(sample_text) }
13
+
14
+ context 'Creation and initialization:' do
15
+ it 'should be created with a text' do
16
+ expect { StaticText.new(sample_text) }.not_to raise_error
17
+ end
18
+
19
+ it 'should know its source text' do
20
+ expect(subject.source).to eq(sample_text)
21
+ end
22
+
23
+ end # context
24
+
25
+ context 'Provided services:' do
26
+ it 'should render the source text as is' do
27
+ context = double('fake_context')
28
+ locals = double('fake_locals')
29
+
30
+ expect(subject.render(context, locals)).to eq(sample_text)
31
+ end
32
+
33
+ end # context
34
+ end # describe
35
+ end # module
36
+ end # module
37
+
38
+ # End of file
@@ -10,7 +10,7 @@ module Macros4Cuke # Open this namespace to avoid module qualifier prefixes
10
10
  # a sample collection of macro-steps.
11
11
  module UseSampleCollection
12
12
  # Phrase of first macro-step in the collection.
13
- SamplePhrase1 = 'enter my credentials as <userid>'
13
+ SamplePhrase1 = 'enter my credentials as <userid>'.freeze
14
14
 
15
15
  # Sub-steps of the first macro-step in the collection.
16
16
  SampleSubsteps1 = begin
@@ -26,7 +26,7 @@ SNIPPET
26
26
  end
27
27
 
28
28
  # Phrase of second macro-step in the collection.
29
- SamplePhrase2 = 'fill in the form with'
29
+ SamplePhrase2 = 'fill in the form with'.freeze
30
30
 
31
31
  # Sub-steps of the second macro-step in the collection.
32
32
  SampleSubsteps2 = begin
@@ -58,7 +58,7 @@ SNIPPET
58
58
  def fill_collection()
59
59
  coll = MacroCollection.instance
60
60
 
61
- coll.clear # Start from scratch: zap the existing macro-steps
61
+ coll.clear # Start from scratch: zap the existing macro-steps
62
62
 
63
63
  coll.add_macro(SamplePhrase1, SampleSubsteps1, true)
64
64
  coll.add_macro(SamplePhrase2, SampleSubsteps2, true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macros4cuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.14
4
+ version: 0.5.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Geshef
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-16 00:00:00.000000000 Z
11
+ date: 2016-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.2
33
+ version: 10.0.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.2
40
+ version: 10.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.6.2
61
+ version: 0.7.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 0.6.2
68
+ version: 0.7.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubygems
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +100,7 @@ files:
100
100
  - LICENSE.txt
101
101
  - README.md
102
102
  - Rakefile
103
+ - appveyor.yml
103
104
  - bin/macros4cuke
104
105
  - cucumber.yml
105
106
  - examples/demo/cucumber.yml
@@ -195,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
196
  requirements:
196
197
  - - ">="
197
198
  - !ruby/object:Gem::Version
198
- version: 1.9.3
199
+ version: 2.0.0
199
200
  required_rubygems_version: !ruby/object:Gem::Requirement
200
201
  requirements:
201
202
  - - ">="
@@ -203,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
204
  version: '0'
204
205
  requirements: []
205
206
  rubyforge_project:
206
- rubygems_version: 2.4.5.1
207
+ rubygems_version: 2.6.7
207
208
  signing_key:
208
209
  specification_version: 4
209
210
  summary: Add your own macro-steps to Cucumber scenarios