macros4cuke 0.3.18 → 0.3.19

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.
data/.rubocop.yml CHANGED
@@ -11,9 +11,9 @@ DefWithParentheses:
11
11
  EmptyLines:
12
12
  Enabled: false
13
13
 
14
- # Avoid methods longer than 40 lines of code
14
+ # Avoid methods longer than 30 lines of code
15
15
  MethodLength:
16
- Max: 40
16
+ Max: 30
17
17
 
18
18
  SpaceInsideBrackets:
19
19
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,7 +1,14 @@
1
+ ## 0.3.19 / 2013-05-22
2
+ * [CHANGE] File `.rubocop.yml`: Reduced MethodLength to 30 (lines in a method).
3
+ * [CHANGE] Method `Engine#compile_line refactored: Extract Method pattern => new method line_rep_ending added.
4
+ * [CHANGE] Method `Engine#compile_sections refactored: Extract Method pattern => new method validate_section_end added.
5
+ * [FIX] File `exceptions.rb`: Removal of useless assignment (detected by Rubocop). No runtime impact.
6
+
7
+
1
8
  ## 0.3.18 / 2013-05-21
2
9
  * [FEATURE] Support for sub-steps having multiline text arguments (docstring).
3
- * [CHANGE] Method MacroStep#expand passes also built-in arguments to template engine.
4
- * [CHANGE] Method MacroStep#validate_phrase_args does not apply validations on built-in arguments.
10
+ * [CHANGE] Method `MacroStep#expand passes` also built-in arguments to template engine.
11
+ * [CHANGE] Method `MacroStep#validate_phrase_args` does not apply validations on built-in arguments.
5
12
  * [CHANGE] File `macro-step_spec.rb`: Added one example to test the insertion of triple quotes.
6
13
  * [NEW] File `multiline.feature` added in examples/features/ folder.
7
14
  * [CHANGE] File `README.md`: Added section 'Sub-steps with multiline text argument'
@@ -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.18'
7
+ Version = '0.3.19'
8
8
 
9
9
  # Brief description of the gem.
10
10
  Description = "Macros for Cucumber"
@@ -81,9 +81,6 @@ class DataTableNotFound < Macros4CukeError
81
81
  end
82
82
  end # class
83
83
 
84
- msg =
85
-
86
-
87
84
 
88
85
  # Raised when Macros4Cuke encountered an issue
89
86
  # that it can't handle properly.
@@ -394,20 +394,25 @@ private
394
394
  if line_to_squeeze && ! section_item.nil?
395
395
  line_rep = [section_item]
396
396
  else
397
- # Apply another rule: if last item in line is an end of section marker,
398
- # then place eoline before that item.
399
- # Otherwise, end the line with a eoline marker.
400
- if line_rep.last.is_a?(SectionEndMarker)
401
- section_end = line_rep.pop()
402
- line_rep << EOLine.new
403
- line_rep << section_end
404
- else
405
- line_rep << EOLine.new
406
- end
397
+ line_rep_ending(line_rep)
407
398
  end
408
399
 
409
400
  return line_rep
410
401
  end
402
+
403
+
404
+ # Apply rule: if last item in line is an end of section marker,
405
+ # then place eoline before that item.
406
+ # Otherwise, end the line with a eoline marker.
407
+ def line_rep_ending(theLineRep)
408
+ if theLineRep.last.is_a?(SectionEndMarker)
409
+ section_end = theLineRep.pop()
410
+ theLineRep << EOLine.new
411
+ theLineRep << section_end
412
+ else
413
+ theLineRep << EOLine.new
414
+ end
415
+ end
411
416
 
412
417
 
413
418
  # @param aCouple [Array] a two-element array of the form: [kind, text]
@@ -461,24 +466,18 @@ private
461
466
  when Section
462
467
  open_sections << element
463
468
 
464
- when SectionEndMarker
465
- if open_sections.empty?
466
- raise StandardError, "End of section</#{element.name}> found while no corresponding section is open."
467
- end
468
- if element.name != open_sections.last.name
469
- msg = "End of section</#{element.name}> doesn't match current section '#{open_sections.last.name}'."
470
- raise StandardError, msg
471
- end
469
+ when SectionEndMarker
470
+ validate_section_end(element, open_sections)
472
471
  subResult << open_sections.pop()
473
-
472
+
474
473
  else
475
474
  if open_sections.empty?
476
475
  subResult << element
477
476
  else
478
477
  open_sections.last.add_child(element)
479
478
  end
480
- end
481
-
479
+
480
+ end
482
481
  end
483
482
 
484
483
  unless open_sections.empty?
@@ -488,6 +487,18 @@ private
488
487
 
489
488
  return compiled
490
489
  end
490
+
491
+ # Validate the given end of section marker taking into account the open sections.
492
+ def validate_section_end(marker, sections)
493
+ if sections.empty?
494
+ msg = "End of section</#{marker.name}> found while no corresponding section is open."
495
+ raise StandardError, msg
496
+ end
497
+ if marker.name != sections.last.name
498
+ msg = "End of section</#{marker.name}> doesn't match current section '#{sections.last.name}'."
499
+ raise StandardError, msg
500
+ end
501
+ end
491
502
 
492
503
  end # class
493
504
 
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.18
4
+ version: 0.3.19
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-21 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber