im-cuke-steps 0.2.4

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fd42c3a33f9239cc20b610966139fb8b96c7ce45
4
+ data.tar.gz: e2cf477976cd01a956b0c7289fa276587cd54520
5
+ SHA512:
6
+ metadata.gz: a544313ef6e47c2d9a7432f561ec8e80bee1757e2ed51d124db60918c1e8b63928c0f1faa0111299caae9abb9f3beec4a93d6b14b1026006969a575cc9b6f941
7
+ data.tar.gz: '0837525552bef5264af04140718dfbbe2406beb1e507b1b7af287ba9d0a6414843eb8edf8a79124cf5062438ab1831f6b6f6df5c8120470be0aec793ac9c9604'
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /test
10
+ /vendor/
11
+ /.buildpath
12
+ /.project
13
+ /.settings
14
+ *.gem
15
+
16
+ steps.cf
17
+ steps.html
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in cuke_steps_gem.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ im-cuke-steps (0.2.4)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.3)
10
+ rake (10.5.0)
11
+ rspec (3.7.0)
12
+ rspec-core (~> 3.7.0)
13
+ rspec-expectations (~> 3.7.0)
14
+ rspec-mocks (~> 3.7.0)
15
+ rspec-core (3.7.1)
16
+ rspec-support (~> 3.7.0)
17
+ rspec-expectations (3.7.0)
18
+ diff-lcs (>= 1.2.0, < 2.0)
19
+ rspec-support (~> 3.7.0)
20
+ rspec-mocks (3.7.0)
21
+ diff-lcs (>= 1.2.0, < 2.0)
22
+ rspec-support (~> 3.7.0)
23
+ rspec-support (3.7.1)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ bundler (~> 1.12)
30
+ im-cuke-steps!
31
+ rake (~> 10.0)
32
+ rspec (~> 3.0)
33
+
34
+ BUNDLED WITH
35
+ 1.16.1
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012, Sampo Niskanen
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ im-cuke-steps
2
+ ==========
3
+
4
+ Cucumber step documentation.
5
+
6
+ This is a small script that reads Cucumber/Gherkin step definition files and outputs pretty-printed documentation of those steps. It is meant as a tool for developers to easily see what step definitions already exist.
7
+
8
+ Currently supported output formats include HTML and Confluence wiki markup. The documentation can be pushed into a wiki using the [Confluence Publisher Plugin] [cpp] for Jenkins. Adding outputters for other formats is straightforward.
9
+
10
+ [cpp]: https://wiki.jenkins-ci.org/display/JENKINS/Confluence+Publisher+Plugin
11
+
12
+
13
+ Usage
14
+ -----
15
+
16
+ You might install with either the gem command or using bundler.
17
+
18
+ Assuming you installed with Bundler:
19
+
20
+ > bundle exec im-cuke-steps \[options\] &lt;directories...&gt;
21
+
22
+ In its simplest form:
23
+
24
+ > bundle exec im-cuke-steps features/
25
+
26
+ Supported options:
27
+
28
+ * -f FORMAT, --format FORMAT
29
+ Select output format, either "html" or "cf"
30
+
31
+ * -o FILE, --output FILE
32
+ Output to FILE, default "steps.html" or "steps.cf"
33
+
34
+ * -h, --help
35
+ Usage instructions
36
+
37
+ This will scan the provided directories for step definition files (*.rb) and output the documentation in the specified file.
38
+
39
+ The tool supports having step definitions in multiple directories. It will generate a separate section for each directory specified on the command line, and (if multiple directories are provided) a section containing all step definitions.
40
+
41
+
42
+ License
43
+ -----------
44
+ BSD
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'im_cuke_steps_gem'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start
data/bin/im-cuke-steps ADDED
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+
5
+ require 'step_parser'
6
+ require 'confluence_step_outputter'
7
+ require 'html_step_outputter'
8
+
9
+ # Parse command line
10
+ options = {}
11
+ opts = OptionParser.new do |opts|
12
+ opts.banner = 'Usage: im-cuke-steps.rb [options] <directories...>'
13
+
14
+ opts.on('-o', '--output FILE', 'Output to FILE') do |file|
15
+ options[:file] = file
16
+ end
17
+ opts.on('-f', '--format FMT', 'Select output format: cf, html') do |format|
18
+ options[:format] = format
19
+ end
20
+ end
21
+ opts.parse!(ARGV)
22
+
23
+ # Default output options
24
+ if options[:file] && !options[:format]
25
+ options[:format] = options[:file].sub(/^.*\./, '')
26
+ end
27
+
28
+ options[:format] = 'html' unless options[:format]
29
+
30
+ if options[:format] && !options[:file]
31
+ options[:file] = "steps.#{options[:format]}"
32
+ end
33
+
34
+ # All other arguments are treated as input directories
35
+ dirs = ['test/common/']#ARGV
36
+ if dirs.size.zero?
37
+ puts 'No source directories provided, use -h for help'
38
+ exit 1
39
+ end
40
+
41
+ # Setup output
42
+ case options[:format]
43
+ when 'cf'
44
+ output = ConfluenceStepOutputter.new(options[:file])
45
+ when 'html'
46
+ output = HtmlStepOutputter.new(options[:file])
47
+ else
48
+ puts "Unknown output format: #{options[:format]}"
49
+ exit 1
50
+ end
51
+ puts "Writing output to file '#{options[:file]}'"
52
+
53
+ # Sort primarily by step type, secondarily by step definition
54
+ sorter = lambda do |a, b|
55
+ if a[:type] == b[:type]
56
+ a[:name].downcase <=> b[:name].downcase
57
+ else
58
+ weight = {
59
+ Given: 1,
60
+ When: 2,
61
+ Then: 3,
62
+ Transform: 4,
63
+ Before: 5,
64
+ After: 6,
65
+ AfterStep: 7
66
+ }
67
+ wa = weight[a[:type]]
68
+ wb = weight[b[:type]]
69
+ wa <=> wb
70
+ end
71
+ end
72
+
73
+ # Read files and output
74
+ all_steps = []
75
+ output.header
76
+ dirs.each do |dir|
77
+ dir = dir.sub(%r{\/+$}, '')
78
+ s = StepParser.new
79
+ Dir.glob("#{dir}/**/*.rb") do |file|
80
+ s.read(file)
81
+ puts file
82
+ end
83
+ steps = s.steps
84
+ puts steps
85
+ all_steps += steps
86
+
87
+ output.start_directory(dir)
88
+ steps.sort!(&sorter)
89
+ steps.each { |step| output.step(step) }
90
+ output.end_directory
91
+ end
92
+
93
+ if dirs.size > 1
94
+ output.start_all
95
+ all_steps.sort!(&sorter)
96
+ all_steps.each { |step| output.step(step) }
97
+ output.end_all
98
+ end
99
+
100
+ output.footer
101
+ output.close
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,31 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'im_cuke_steps_gem/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'im-cuke-steps'
7
+ spec.version = CukeStepsGem::VERSION
8
+ spec.authors = ['plaa, packager:raels, igormilla']
9
+ spec.email = ['']
10
+ spec.summary = 'Generates Gherkin step reference page'
11
+ spec.description = 'This gem offers a program to generate a reference index for your Gherkin step definitions.
12
+ It was written by plaa, and packaged by raels'
13
+ spec.homepage = 'https://raels.github.io/cuke-steps/'
14
+
15
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
17
+ # if spec.respond_to?(:metadata)
18
+ # spec.metadata['allowed_push_host'] = "http://rubygems.org"
19
+ # else
20
+ # raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
21
+ # end
22
+
23
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ spec.bindir = 'bin'
25
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
+ spec.require_paths = ['lib']
27
+
28
+ spec.add_development_dependency 'bundler', '~> 1.12'
29
+ spec.add_development_dependency 'rake', '~> 10.0'
30
+ spec.add_development_dependency 'rspec', '~> 3.0'
31
+ end
@@ -0,0 +1,64 @@
1
+ # Outputter that generates Confluence markup
2
+
3
+ require 'cgi'
4
+ require 'fileutils'
5
+
6
+ class ConfluenceStepOutputter
7
+ def initialize(file)
8
+ @file = File.open(file, 'w')
9
+ @previous_type = ''
10
+ end
11
+
12
+ def header
13
+ # No-op
14
+ end
15
+
16
+ def footer
17
+ @file.puts %(<p>&nbsp;</p>)
18
+ @file.puts %(<p><em>Documentation generated #{Time.now}</em></p>)
19
+ end
20
+
21
+ def close
22
+ @file.close
23
+ end
24
+
25
+ def start_directory(dir)
26
+ @file.puts %(<p>&nbsp;</p>)
27
+ @file.puts "<h2>#{dir}</h2>"
28
+ @previous_type = ''
29
+ end
30
+
31
+ def end_directory
32
+ # No-op
33
+ end
34
+
35
+ def start_all
36
+ @file.puts %(<p>&nbsp;</p>)
37
+ @file.puts '<h2>All definitions alphabetically</h2>'
38
+ @previous_type = ''
39
+ end
40
+
41
+ def end_all
42
+ # No-op
43
+ end
44
+
45
+ def step(step)
46
+ if @previous_type != step[:type]
47
+ @file.puts %(<h3>#{step[:type]} definitions</h3>)
48
+ @previous_type = step[:type]
49
+ end
50
+ @file.puts %(<ac:macro ac:name="expand">)
51
+ @file.puts %( <ac:parameter ac:name="title">#{CGI.escapeHTML(step[:name])}</ac:parameter>)
52
+ @file.puts %( <ac:rich-text-body>)
53
+ # TODO: Add link to source repo or Jenkins workspace
54
+ # <p><a href=".../#{CGI.escapeHTML(step[:filename])}" style="color: #888;">#{CGI.escapeHTML(step[:filename])}:#{step[:line_number]}</a></p>
55
+ @file.puts %( <p style="color: #888;">#{CGI.escapeHTML(step[:filename])}:#{step[:line_number]}</p>)
56
+ @file.puts %( <pre style="background-color: #ddd; padding-top: 1.2em;">)
57
+ step[:code].each do |line|
58
+ @file.puts %( #{CGI.escapeHTML(line)})
59
+ end
60
+ @file.puts %( </pre>)
61
+ @file.puts %( </ac:rich-text-body>)
62
+ @file.puts %(</ac:macro>)
63
+ end
64
+ end
@@ -0,0 +1,117 @@
1
+ # Outputter that generates HTML markup
2
+ # Feel free to customize the below code for your needs
3
+
4
+ require 'cgi'
5
+ require 'fileutils'
6
+
7
+ class HtmlStepOutputter
8
+
9
+ def initialize(file)
10
+ @file = File.open(file, 'w')
11
+ @previous_type = ''
12
+ @id_number = 0
13
+ end
14
+
15
+ # HTML file header - customize as needed
16
+ def header
17
+ @file.puts <<-eos
18
+ <!DOCTYPE html>
19
+ <html>
20
+ <head>
21
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
22
+ <title>Cucumber step documentation</title>
23
+ <style>
24
+ .stepdefs {
25
+ font-size: smaller;
26
+ }
27
+ .stepdefs li {
28
+ margin-bottom: 0.25em;
29
+ list-style-type: none;
30
+ }
31
+ .stepdefs li:before {
32
+ content: "\u00BB ";
33
+ font-size: larger;
34
+ padding-right: 0.3em;
35
+ }
36
+ .stepdef {
37
+ color: #111;
38
+ text-decoration: none;
39
+ }
40
+ .extrainfo {
41
+ display: none;
42
+ overflow: hidden; /* Fixes jumping issue in jQuery slideToggle() */
43
+ }
44
+ </style>
45
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
46
+ </head>
47
+ <body>
48
+ eos
49
+ end
50
+
51
+ def footer
52
+ @file.puts <<-eos
53
+ </ul>
54
+ <p>&nbsp;</p>
55
+ <p><em>Documentation generated #{Time.now}</em></p>
56
+ </body>
57
+ </html>
58
+ eos
59
+ end
60
+
61
+ def close
62
+ @file.close
63
+ end
64
+
65
+ def start_directory(dir)
66
+ @file.puts %(</ul>) if @previous_type != ""
67
+ @file.puts %(<p>&nbsp;</p>)
68
+ @file.puts %(<h2>Step definitions in #{dir}/</h2>)
69
+ @previous_type = ""
70
+ end
71
+
72
+ def end_directory
73
+ # No-op
74
+ end
75
+
76
+ def start_all
77
+ @file.puts %(</ul>)
78
+ @file.puts %(<p>&nbsp;</p>)
79
+ @file.puts %(<h2>All definitions alphabetically</h2>)
80
+ @previous_type = ""
81
+ end
82
+
83
+ def end_all
84
+ # No-op
85
+ end
86
+
87
+ def step(step)
88
+ if @previous_type != step[:type]
89
+ @file.puts %(</ul>) if @previous_type != ""
90
+ @file.puts %(<h3>#{step[:type]} definitions</h3>)
91
+ @file.puts %(<ul class="stepdefs">)
92
+ @previous_type = step[:type]
93
+ end
94
+
95
+ id = new_id
96
+ @file.puts %(<li>)
97
+ @file.puts %( <a href="#" onclick="$('##{id}').slideToggle(); return false;" class="stepdef">#{CGI.escapeHTML(step[:name])}</a>)
98
+ @file.puts %( <div id="#{id}" class="extrainfo">)
99
+ # TODO: Add link to source repo or Jenkins workspace
100
+ # <p><a href=".../#{CGI.escapeHTML(step[:filename])}" style="color: #888;">#{CGI.escapeHTML(step[:filename])}:#{step[:line_number]}</a></p>
101
+ @file.puts %( <p style="color: #888;">#{CGI.escapeHTML(step[:filename])}:#{step[:line_number]}</p>)
102
+ @file.puts %( <pre style="background-color: #ddd; padding-top: 1.2em;">)
103
+ step[:code].each do |line|
104
+ @file.puts %( #{CGI.escapeHTML(line)})
105
+ end
106
+ @file.puts %( </pre>)
107
+ @file.puts %( </div>)
108
+ @file.puts %(</li>)
109
+ end
110
+
111
+ private
112
+
113
+ def new_id
114
+ @id_number += 1
115
+ "id#{@id_number}"
116
+ end
117
+ end
@@ -0,0 +1,3 @@
1
+ module CukeStepsGem
2
+ VERSION = '0.2.4'.freeze
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'im_cuke_steps_gem/version'
2
+ require 'step_parser'
3
+ require 'html_step_outputter'
4
+ require 'confluence_step_outputter'
5
+
6
+ module CukeStepsGem
7
+ # Your code goes here...
8
+ end
@@ -0,0 +1,79 @@
1
+ # Class that parses step definitions from Ruby files
2
+
3
+ class StepParser
4
+
5
+ attr_reader :steps
6
+ def initialize
7
+ @steps = []
8
+ end
9
+
10
+ def read(file)
11
+ puts '>>>>'
12
+ @current_file = file
13
+ @line_number = 0
14
+ puts '>>'
15
+ puts @current_file
16
+ @lines = IO.read(file).split(/\r?\n/)
17
+ parse_lines
18
+ end
19
+
20
+
21
+ private
22
+
23
+ def next_line
24
+ @line_number += 1
25
+ @lines.shift
26
+ end
27
+
28
+ def unread(line)
29
+ @line_number -= 1
30
+ @lines.unshift(line)
31
+ end
32
+
33
+ def parse_lines
34
+ @comments = []
35
+ puts @lines.length
36
+ until @lines.empty?
37
+
38
+ line = next_line
39
+ case line
40
+ when /^ *#/
41
+ @comments << line
42
+ when /^(Given|When|Then|Before|After|AfterStep|Transform)[ (]/
43
+ unread(line)
44
+ parse_step
45
+ @comments = []
46
+ when /^\s+(Given|When|Then|Before|After|AfterStep|Transform)[ (]/
47
+ puts "WARNING: Indented step definition in file #{@current_file}: #{line}"
48
+ @comments = []
49
+ else
50
+ @comments = []
51
+ end
52
+
53
+ end
54
+ end
55
+
56
+ def parse_step
57
+ type = parse_step_type(@lines.first)
58
+ name = parse_step_name(@lines.first)
59
+ line_number = @line_number + 1
60
+ code = @comments
61
+ line = ""
62
+ while !@lines.empty? && line !~ /^end\s*$/
63
+ line = next_line
64
+ code << line
65
+ end
66
+ @steps << { type: type, name: name, filename: @current_file, code: code, line_number: line_number }
67
+ end
68
+
69
+ def parse_step_type(line)
70
+ line.sub(/^([A-Za-z]+).*/, '\1')
71
+ end
72
+
73
+ def parse_step_name(line)
74
+ line = line.sub(/^(Given|When|Then|Transform) *\(?\/\^?(.*?)\$?\/.*/, '\1 \2')
75
+ line = line.gsub('\ ', ' ')
76
+ line
77
+ end
78
+
79
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: im-cuke-steps
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - plaa, packager:raels, igormilla
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: |-
56
+ This gem offers a program to generate a reference index for your Gherkin step definitions.
57
+ It was written by plaa, and packaged by raels
58
+ email:
59
+ - ''
60
+ executables:
61
+ - console
62
+ - im-cuke-steps
63
+ - setup
64
+ extensions: []
65
+ extra_rdoc_files: []
66
+ files:
67
+ - ".gitignore"
68
+ - ".rspec"
69
+ - Gemfile
70
+ - Gemfile.lock
71
+ - LICENSE
72
+ - README.md
73
+ - Rakefile
74
+ - bin/console
75
+ - bin/im-cuke-steps
76
+ - bin/setup
77
+ - cuke_steps_gem.gemspec
78
+ - lib/confluence_step_outputter.rb
79
+ - lib/html_step_outputter.rb
80
+ - lib/im_cuke_steps_gem.rb
81
+ - lib/im_cuke_steps_gem/version.rb
82
+ - lib/step_parser.rb
83
+ homepage: https://raels.github.io/cuke-steps/
84
+ licenses: []
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.6.12
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Generates Gherkin step reference page
106
+ test_files: []