macros4cuke 0.5.14 → 0.5.15

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