yard-gherkin-turnip 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.rspec +3 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.yardopts +1 -0
  7. data/Gemfile +6 -0
  8. data/Gemfile.lock +48 -0
  9. data/History.txt +293 -0
  10. data/LICENSE.txt +22 -0
  11. data/README.md +182 -0
  12. data/Rakefile +24 -0
  13. data/example/README.md +8 -0
  14. data/example/child_feature/README.md +21 -0
  15. data/example/child_feature/child.feature +11 -0
  16. data/example/child_feature/grandchild_feature/grandchild.feature +12 -0
  17. data/example/empty.feature +2 -0
  18. data/example/placeholder.feature +34 -0
  19. data/example/scenario.feature +63 -0
  20. data/example/scenario_outline.feature +100 -0
  21. data/example/scenario_outline_multi.feature +15 -0
  22. data/example/step_definitions/customer.step.rb +16 -0
  23. data/example/step_definitions/duck.step.rb +6 -0
  24. data/example/step_definitions/placeholder.step.rb +70 -0
  25. data/example/step_definitions/text.step.rb +11 -0
  26. data/example/tags.feature +18 -0
  27. data/lib/cucumber/city_builder.rb +412 -0
  28. data/lib/docserver/default/fulldoc/html/js/cucumber.js +88 -0
  29. data/lib/docserver/default/layout/html/headers.erb +13 -0
  30. data/lib/docserver/doc_server/full_list/html/full_list.erb +39 -0
  31. data/lib/docserver/doc_server/full_list/html/setup.rb +18 -0
  32. data/lib/templates/default/feature/html/feature.erb +39 -0
  33. data/lib/templates/default/feature/html/no_steps_defined.erb +1 -0
  34. data/lib/templates/default/feature/html/outline.erb +59 -0
  35. data/lib/templates/default/feature/html/pystring.erb +3 -0
  36. data/lib/templates/default/feature/html/scenario.erb +55 -0
  37. data/lib/templates/default/feature/html/setup.rb +54 -0
  38. data/lib/templates/default/feature/html/steps.erb +39 -0
  39. data/lib/templates/default/feature/html/table.erb +20 -0
  40. data/lib/templates/default/featuredirectory/html/alpha_table.erb +30 -0
  41. data/lib/templates/default/featuredirectory/html/directory.erb +32 -0
  42. data/lib/templates/default/featuredirectory/html/setup.rb +41 -0
  43. data/lib/templates/default/featuretags/html/namespace.erb +159 -0
  44. data/lib/templates/default/featuretags/html/setup.rb +34 -0
  45. data/lib/templates/default/fulldoc/html/css/cucumber.css +226 -0
  46. data/lib/templates/default/fulldoc/html/directories.erb +27 -0
  47. data/lib/templates/default/fulldoc/html/full_list_featuredirectories.erb +11 -0
  48. data/lib/templates/default/fulldoc/html/full_list_features.erb +37 -0
  49. data/lib/templates/default/fulldoc/html/full_list_stepdefinitions.erb +20 -0
  50. data/lib/templates/default/fulldoc/html/full_list_steps.erb +20 -0
  51. data/lib/templates/default/fulldoc/html/full_list_tags.erb +16 -0
  52. data/lib/templates/default/fulldoc/html/js/cucumber.js +331 -0
  53. data/lib/templates/default/fulldoc/html/setup.rb +208 -0
  54. data/lib/templates/default/layout/html/setup.rb +131 -0
  55. data/lib/templates/default/requirements/html/alpha_table.erb +26 -0
  56. data/lib/templates/default/requirements/html/requirements.erb +50 -0
  57. data/lib/templates/default/requirements/html/setup.rb +51 -0
  58. data/lib/templates/default/steptransformers/html/header.erb +12 -0
  59. data/lib/templates/default/steptransformers/html/index.erb +10 -0
  60. data/lib/templates/default/steptransformers/html/placeholders.erb +79 -0
  61. data/lib/templates/default/steptransformers/html/setup.rb +107 -0
  62. data/lib/templates/default/steptransformers/html/step_definitions.erb +79 -0
  63. data/lib/templates/default/steptransformers/html/undefined_steps.erb +26 -0
  64. data/lib/templates/default/tag/html/alpha_table.erb +33 -0
  65. data/lib/templates/default/tag/html/setup.rb +27 -0
  66. data/lib/templates/default/tag/html/tag.erb +35 -0
  67. data/lib/yard-gherkin-turnip.rb +42 -0
  68. data/lib/yard-gherkin-turnip/version.rb +3 -0
  69. data/lib/yard/code_objects/cucumber/base.rb +24 -0
  70. data/lib/yard/code_objects/cucumber/feature.rb +16 -0
  71. data/lib/yard/code_objects/cucumber/namespace_object.rb +55 -0
  72. data/lib/yard/code_objects/cucumber/scenario.rb +22 -0
  73. data/lib/yard/code_objects/cucumber/scenario_outline.rb +68 -0
  74. data/lib/yard/code_objects/cucumber/step.rb +46 -0
  75. data/lib/yard/code_objects/cucumber/tag.rb +31 -0
  76. data/lib/yard/code_objects/placeholder.rb +45 -0
  77. data/lib/yard/code_objects/step_definition.rb +46 -0
  78. data/lib/yard/code_objects/step_transformer.rb +32 -0
  79. data/lib/yard/handlers/cucumber/base.rb +21 -0
  80. data/lib/yard/handlers/cucumber/feature_handler.rb +96 -0
  81. data/lib/yard/handlers/placeholder_handler.rb +28 -0
  82. data/lib/yard/handlers/placeholder_match_handler.rb +17 -0
  83. data/lib/yard/handlers/step_definition_handler.rb +55 -0
  84. data/lib/yard/parser/cucumber/feature.rb +72 -0
  85. data/lib/yard/server/adapter.rb +43 -0
  86. data/lib/yard/server/commands/list_command.rb +31 -0
  87. data/lib/yard/server/router.rb +31 -0
  88. data/lib/yard/templates/helpers/base_helper.rb +26 -0
  89. data/yard-gherkin-turnip.gemspec +67 -0
  90. metadata +216 -0
@@ -0,0 +1,28 @@
1
+ class YARD::Handlers::Ruby::PlaceholderHandler < YARD::Handlers::Ruby::Base
2
+ handles method_call(:placeholder)
3
+
4
+ process do
5
+ instance = YARD::CodeObjects::Placeholder.new(step_transform_namespace,placeholder_name) do |o|
6
+ o.source = statement.source
7
+ o.comments = statement.comments
8
+ o.keyword = 'placeholder'
9
+ o.literal_value = statement[1].source
10
+ end
11
+ parse_block(statement.last.last,owner: instance)
12
+ register instance if instance.value
13
+ rescue StandardError => e
14
+ log.warn(e)
15
+ end
16
+
17
+ def step_transform_namespace
18
+ YARD::CodeObjects::Cucumber::CUCUMBER_STEPTRANSFORM_NAMESPACE
19
+ end
20
+
21
+ def placeholder_name
22
+ "placeholder#{self.class.generate_unique_id}"
23
+ end
24
+
25
+ def self.generate_unique_id
26
+ @placeholder_count = @placeholder_count.to_i + 1
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ class YARD::Handlers::Ruby::PlaceholderMatchHandler < YARD::Handlers::Ruby::Base
2
+ handles method_call(:match)
3
+
4
+ process do
5
+ if owner.is_a?(YARD::CodeObjects::Placeholder)
6
+ regex = "(?:#{statement.parameters[0].source.gsub(/^(["\/]|%r[{])|([}]|["\/])$/,'')})"
7
+ if owner.value
8
+ owner.value = "#{owner.value}|#{regex}"
9
+ else
10
+ owner.value = regex
11
+ end
12
+ end
13
+ rescue StandardError => e
14
+ log.warn(e.backtrace)
15
+ log.warn(e)
16
+ end
17
+ end
@@ -0,0 +1,55 @@
1
+ #
2
+ # Finds and processes all the step definitions defined in the ruby source
3
+ #
4
+ class YARD::Handlers::Ruby::StepDefinitionHandler < YARD::Handlers::Ruby::Base
5
+
6
+ handles method_call(:step)
7
+
8
+ process do
9
+
10
+ instance = YARD::CodeObjects::StepDefinition.new(step_transform_namespace,step_definition_name) do |o|
11
+ o.source = statement.source
12
+ o.comments = statement.comments
13
+ step_name = statement.parameters[0].source
14
+ if step_name[0] == ":"
15
+ step_name = statement.parameters[1].source
16
+ else
17
+ o.pending = pending_keyword_used?(statement.block)
18
+ end
19
+ o.keyword = statement.method_name.source
20
+ step_name.gsub!(/(?<!\\)"[\s]*(?:\+|\\)[\s]*"/,"")
21
+ o.literal_value = step_name
22
+ o.value = step_name.gsub(/^\"|\"$/, "")
23
+ end
24
+
25
+ obj = register instance
26
+ parse_block(statement[2],:owner => obj) unless statement.parameters[0].source[0] == ":"
27
+ rescue StandardError => e
28
+ log.warn(e)
29
+ end
30
+
31
+ def pending_keyword
32
+ "skip"
33
+ end
34
+
35
+ def pending_command_statement?(line)
36
+ (line.type == :command || line.type == :vcall) && line.first.source == pending_keyword
37
+ end
38
+
39
+ def pending_keyword_used?(block)
40
+ code_in_block = block.last
41
+ code_in_block.find { |line| pending_command_statement?(line) }
42
+ end
43
+
44
+ def step_transform_namespace
45
+ YARD::CodeObjects::Cucumber::CUCUMBER_STEPTRANSFORM_NAMESPACE
46
+ end
47
+
48
+ def step_definition_name
49
+ "step_definition#{self.class.generate_unique_id}"
50
+ end
51
+
52
+ def self.generate_unique_id
53
+ @step_definition_count = @step_definition_count.to_i + 1
54
+ end
55
+ end
@@ -0,0 +1,72 @@
1
+ module YARD::Parser::Cucumber
2
+
3
+ class FeatureParser < YARD::Parser::Base
4
+
5
+ #
6
+ # Each found feature found is creates a new FeatureParser
7
+ #
8
+ # This logic was copied from the logic found in Cucumber to create the builder
9
+ # and then set up the formatter and parser. The difference is really the
10
+ # custom Cucumber::Parser::CityBuilder that is being used to parse the elements
11
+ # of the feature into YARD::CodeObjects.
12
+ #
13
+ # @param [<String>] source containing the string conents of the feauture file
14
+ # @param [<String>] file the filename that contains the source
15
+ #
16
+ def initialize(source, file = '(stdin)')
17
+
18
+ @builder = Cucumber::Parser::CityBuilder.new(file)
19
+ @tag_counts = {}
20
+ @parser = Gherkin::Parser.new(@builder)
21
+
22
+ @source = source
23
+ @file = file
24
+
25
+ @feature = nil
26
+ end
27
+
28
+ #
29
+ # When parse is called, the gherkin parser is executed and all the feature
30
+ # elements that are found are sent to the various methods in the
31
+ # Cucumber::Parser::CityBuilder. The result of which is the feature element
32
+ # that contains all the scenarios, steps, etc. associated with that feature.
33
+ #
34
+ # @see Cucumber::Parser::CityBuilder
35
+ def parse
36
+ begin
37
+ @parser.parse(@source)
38
+ @feature = @builder.ast
39
+ return nil if @feature.nil? # Nothing matched
40
+
41
+ # The parser used the following keywords when parsing the feature
42
+ # @feature.language = @parser.i18n_language.get_code_keywords.map {|word| word }
43
+
44
+ rescue Gherkin::ParserError => e
45
+ e.message.insert(0, "#{@file}: ")
46
+ warn e
47
+ end
48
+
49
+ self
50
+ end
51
+
52
+ #
53
+ # This is not used as all the work is done in the parse method
54
+ #
55
+ def tokenize
56
+
57
+ end
58
+
59
+ #
60
+ # The only enumeration that can be done here is returning the feature itself
61
+ #
62
+ def enumerator
63
+ [@feature]
64
+ end
65
+
66
+ end
67
+
68
+ #
69
+ # Register all feature files (.feature) to be processed with the above FeatureParser
70
+ YARD::Parser::SourceParser.register_parser_type :feature, FeatureParser, 'feature'
71
+
72
+ end
@@ -0,0 +1,43 @@
1
+ module YARD
2
+ module Server
3
+
4
+ class Adapter
5
+
6
+ class << self
7
+
8
+ alias_method :yard_setup, :setup
9
+
10
+ #
11
+ # To provide the templates necessary for `yard-gherkin-turnip` to integrate
12
+ # with YARD the adapter has to around-alias the setup method to place
13
+ # the `yard-gherkin-turnip` server templates as the last template in the list.
14
+ #
15
+ # When they are normally loaded with the plugin they cause an error with
16
+ # the `yardoc` command. They are also not used because the YARD server
17
+ # templates are placed after all plugin templates.
18
+ #
19
+ def setup
20
+ yard_setup
21
+ YARD::Templates::Engine.template_paths +=
22
+ [File.dirname(__FILE__) + '/../../templates',File.dirname(__FILE__) + '/../../docserver']
23
+ end
24
+
25
+ alias_method :yard_shutdown, :shutdown
26
+
27
+ #
28
+ # Similar to the addition, it is good business to tear down the templates
29
+ # that were added by again around-aliasing the shutdown method.
30
+ #
31
+ def shutdown
32
+ yard_shutdown
33
+ YARD::Templates::Engine.template_paths -=
34
+ [File.dirname(__FILE__) + '/../../templates',File.dirname(__FILE__) + '/../../docserver']
35
+ end
36
+
37
+ end
38
+
39
+
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,31 @@
1
+ module YARD
2
+ module Server
3
+ module Commands
4
+
5
+ #
6
+ # List Features powers the features menu option in `yard server`
7
+ #
8
+ class ListFeaturesCommand < ListCommand
9
+ def type; :features end
10
+
11
+ def items
12
+ Registry.load_all
13
+ run_verifier(Registry.all(:feature))
14
+ end
15
+ end
16
+
17
+ #
18
+ # List Tags powers the tags menu option in `yard server`
19
+ #
20
+ class ListTagsCommand < ListCommand
21
+ def type; :tags end
22
+
23
+ def items
24
+ Registry.load_all
25
+ run_verifier(Registry.all(:tag).sort_by {|t| t.value.to_s })
26
+ end
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ module YARD
2
+ module Server
3
+
4
+ #
5
+ # The YARD::Server::Router needs the following modification,
6
+ # so that it will provide routing for the features and tags commands
7
+ # to their appropriate definitions
8
+ #
9
+ Router.class_eval do
10
+
11
+ alias_method :core_route_list, :route_list
12
+
13
+ #
14
+ # Provide the full list of features and tags
15
+ #
16
+ def route_list(library, paths)
17
+ if paths && !paths.empty? && paths.first =~ /^(?:features|tags)$/
18
+ case paths.shift
19
+ when "features"; cmd = Commands::ListFeaturesCommand
20
+ when "tags"; cmd = Commands::ListTagsCommand
21
+ end
22
+ cmd.new(final_options(library, paths)).call(request)
23
+ else
24
+ core_route_list(library,paths)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ module YARD::Templates::Helpers
2
+
3
+ module BaseHelper
4
+
5
+ def format_object_title(object)
6
+ if object.is_a?(YARD::CodeObjects::Cucumber::FeatureTags)
7
+ "Tags"
8
+ elsif object.is_a?(YARD::CodeObjects::Cucumber::StepTransformers)
9
+ "Step Definitions and Placeholders"
10
+ elsif object.is_a?(YARD::CodeObjects::Cucumber::NamespaceObject)
11
+ "#{format_object_type(object)}#{object.value ? ": #{object.value}" : ''}"
12
+ elsif object.is_a?(YARD::CodeObjects::Cucumber::FeatureDirectory)
13
+ "Feature Directory: #{object.name}"
14
+ else
15
+ case object
16
+ when YARD::CodeObjects::RootObject
17
+ "Top Level Namespace"
18
+ else
19
+ format_object_type(object) + ": " + object.path
20
+ end
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,67 @@
1
+ require File.dirname(__FILE__) + "/lib/yard-gherkin-turnip/version"
2
+
3
+ module YardTurnip
4
+ def self.show_version_changes(version)
5
+ date = ""
6
+ changes = []
7
+ grab_changes = false
8
+
9
+ File.open("#{File.dirname(__FILE__)}/History.txt",'r') do |file|
10
+ while (line = file.gets) do
11
+
12
+ if line =~ /^===\s*#{version.gsub('.','\.')}\s*\/\s*(.+)\s*$/
13
+ grab_changes = true
14
+ date = $1.strip
15
+ elsif line =~ /^===\s*.+$/
16
+ grab_changes = false
17
+ elsif grab_changes
18
+ changes = changes << line
19
+ end
20
+
21
+ end
22
+ end
23
+
24
+ { :date => date, :changes => changes }
25
+ end
26
+ end
27
+
28
+ Gem::Specification.new do |s|
29
+ s.name = 'yard-gherkin-turnip'
30
+ s.version = ::YardTurnip::VERSION
31
+ s.authors = ["Franklin Webber", "Angela Todd"]
32
+ s.description = %{
33
+ YARD-Gherkin-Turnip is a YARD extension that processes Gherkin Features, Scenarios, Steps and Tags
34
+ and Turnip Step Definitions and Placeholders and provides a documentation interface that allows you
35
+ easily view and investigate the test suite. This tools hopes to bridge the gap of being able
36
+ to provide your feature descriptions to your Product Owners and Stakeholders. }
37
+ s.summary = "Turnip Features in YARD"
38
+ s.homepage = "http://github.com/angelatodd/yard-gherkin-turnip"
39
+ s.license = 'MIT'
40
+
41
+ s.platform = Gem::Platform::RUBY
42
+
43
+ changes = YardTurnip.show_version_changes(::YardTurnip::VERSION)
44
+
45
+ s.post_install_message = %{
46
+ (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
47
+
48
+ Thank you for installing yard-gherkin-turnip #{::YardTurnip::VERSION} / #{changes[:date]}.
49
+
50
+ Changes:
51
+ #{changes[:changes].collect{|change| " #{change}"}.join("")}
52
+ (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
53
+
54
+ }
55
+
56
+ s.add_development_dependency 'rake', '~> 10'
57
+
58
+ s.add_dependency 'gherkin', '>= 4.0', '< 6.0'
59
+ s.add_dependency 'cucumber', '>= 2.0', '< 4.0'
60
+ s.add_dependency 'yard', '~> 0.8', '>= 0.8.1'
61
+
62
+ s.rubygems_version = "1.3.7"
63
+ s.files = `git ls-files`.split("\n")
64
+ s.extra_rdoc_files = ["README.md", "History.txt"]
65
+ s.rdoc_options = ["--charset=UTF-8"]
66
+ s.require_path = "lib"
67
+ end
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yard-gherkin-turnip
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Franklin Webber
8
+ - Angela Todd
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-06-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '10'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '10'
28
+ - !ruby/object:Gem::Dependency
29
+ name: gherkin
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '4.0'
35
+ - - "<"
36
+ - !ruby/object:Gem::Version
37
+ version: '6.0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '4.0'
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: '6.0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: cucumber
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '4.0'
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '2.0'
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '4.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: yard
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.8'
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 0.8.1
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '0.8'
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 0.8.1
88
+ description: "\n YARD-Gherkin-Turnip is a YARD extension that processes Gherkin
89
+ Features, Scenarios, Steps and Tags\n and Turnip Step Definitions and Placeholders
90
+ and provides a documentation interface that allows you\n easily view and investigate
91
+ the test suite. This tools hopes to bridge the gap of being able\n to provide
92
+ your feature descriptions to your Product Owners and Stakeholders. "
93
+ email:
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files:
97
+ - README.md
98
+ - History.txt
99
+ files:
100
+ - ".gitignore"
101
+ - ".rspec"
102
+ - ".ruby-gemset"
103
+ - ".ruby-version"
104
+ - ".yardopts"
105
+ - Gemfile
106
+ - Gemfile.lock
107
+ - History.txt
108
+ - LICENSE.txt
109
+ - README.md
110
+ - Rakefile
111
+ - example/README.md
112
+ - example/child_feature/README.md
113
+ - example/child_feature/child.feature
114
+ - example/child_feature/grandchild_feature/grandchild.feature
115
+ - example/empty.feature
116
+ - example/placeholder.feature
117
+ - example/scenario.feature
118
+ - example/scenario_outline.feature
119
+ - example/scenario_outline_multi.feature
120
+ - example/step_definitions/customer.step.rb
121
+ - example/step_definitions/duck.step.rb
122
+ - example/step_definitions/placeholder.step.rb
123
+ - example/step_definitions/text.step.rb
124
+ - example/tags.feature
125
+ - lib/cucumber/city_builder.rb
126
+ - lib/docserver/default/fulldoc/html/js/cucumber.js
127
+ - lib/docserver/default/layout/html/headers.erb
128
+ - lib/docserver/doc_server/full_list/html/full_list.erb
129
+ - lib/docserver/doc_server/full_list/html/setup.rb
130
+ - lib/templates/default/feature/html/feature.erb
131
+ - lib/templates/default/feature/html/no_steps_defined.erb
132
+ - lib/templates/default/feature/html/outline.erb
133
+ - lib/templates/default/feature/html/pystring.erb
134
+ - lib/templates/default/feature/html/scenario.erb
135
+ - lib/templates/default/feature/html/setup.rb
136
+ - lib/templates/default/feature/html/steps.erb
137
+ - lib/templates/default/feature/html/table.erb
138
+ - lib/templates/default/featuredirectory/html/alpha_table.erb
139
+ - lib/templates/default/featuredirectory/html/directory.erb
140
+ - lib/templates/default/featuredirectory/html/setup.rb
141
+ - lib/templates/default/featuretags/html/namespace.erb
142
+ - lib/templates/default/featuretags/html/setup.rb
143
+ - lib/templates/default/fulldoc/html/css/cucumber.css
144
+ - lib/templates/default/fulldoc/html/directories.erb
145
+ - lib/templates/default/fulldoc/html/full_list_featuredirectories.erb
146
+ - lib/templates/default/fulldoc/html/full_list_features.erb
147
+ - lib/templates/default/fulldoc/html/full_list_stepdefinitions.erb
148
+ - lib/templates/default/fulldoc/html/full_list_steps.erb
149
+ - lib/templates/default/fulldoc/html/full_list_tags.erb
150
+ - lib/templates/default/fulldoc/html/js/cucumber.js
151
+ - lib/templates/default/fulldoc/html/setup.rb
152
+ - lib/templates/default/layout/html/setup.rb
153
+ - lib/templates/default/requirements/html/alpha_table.erb
154
+ - lib/templates/default/requirements/html/requirements.erb
155
+ - lib/templates/default/requirements/html/setup.rb
156
+ - lib/templates/default/steptransformers/html/header.erb
157
+ - lib/templates/default/steptransformers/html/index.erb
158
+ - lib/templates/default/steptransformers/html/placeholders.erb
159
+ - lib/templates/default/steptransformers/html/setup.rb
160
+ - lib/templates/default/steptransformers/html/step_definitions.erb
161
+ - lib/templates/default/steptransformers/html/undefined_steps.erb
162
+ - lib/templates/default/tag/html/alpha_table.erb
163
+ - lib/templates/default/tag/html/setup.rb
164
+ - lib/templates/default/tag/html/tag.erb
165
+ - lib/yard-gherkin-turnip.rb
166
+ - lib/yard-gherkin-turnip/version.rb
167
+ - lib/yard/code_objects/cucumber/base.rb
168
+ - lib/yard/code_objects/cucumber/feature.rb
169
+ - lib/yard/code_objects/cucumber/namespace_object.rb
170
+ - lib/yard/code_objects/cucumber/scenario.rb
171
+ - lib/yard/code_objects/cucumber/scenario_outline.rb
172
+ - lib/yard/code_objects/cucumber/step.rb
173
+ - lib/yard/code_objects/cucumber/tag.rb
174
+ - lib/yard/code_objects/placeholder.rb
175
+ - lib/yard/code_objects/step_definition.rb
176
+ - lib/yard/code_objects/step_transformer.rb
177
+ - lib/yard/handlers/cucumber/base.rb
178
+ - lib/yard/handlers/cucumber/feature_handler.rb
179
+ - lib/yard/handlers/placeholder_handler.rb
180
+ - lib/yard/handlers/placeholder_match_handler.rb
181
+ - lib/yard/handlers/step_definition_handler.rb
182
+ - lib/yard/parser/cucumber/feature.rb
183
+ - lib/yard/server/adapter.rb
184
+ - lib/yard/server/commands/list_command.rb
185
+ - lib/yard/server/router.rb
186
+ - lib/yard/templates/helpers/base_helper.rb
187
+ - yard-gherkin-turnip.gemspec
188
+ homepage: http://github.com/angelatodd/yard-gherkin-turnip
189
+ licenses:
190
+ - MIT
191
+ metadata: {}
192
+ post_install_message: "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
193
+ (::) (::) (::)\n\n Thank you for installing yard-gherkin-turnip 1.0.0 / 2020-06-28.\n\n
194
+ \ Changes:\n \n * Forked from yard-cucumber and renamed yard-gherkin-turnip\n
195
+ \ * Support added for Turnip `step` and `placeholder` definitions\n \n\n(::) (::)
196
+ (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n\n"
197
+ rdoc_options:
198
+ - "--charset=UTF-8"
199
+ require_paths:
200
+ - lib
201
+ required_ruby_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ requirements: []
212
+ rubygems_version: 3.1.2
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Turnip Features in YARD
216
+ test_files: []