yard 0.9.23 → 0.9.27

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of yard might be problematic. Click here for more details.

Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +0 -0
  3. data/.gitattributes +4 -0
  4. data/.github/FUNDING.yml +3 -0
  5. data/.github/ISSUE_TEMPLATE.md +6 -6
  6. data/.github/PULL_REQUEST_TEMPLATE.md +5 -5
  7. data/.github/workflows/ci.yml +30 -0
  8. data/.github/workflows/gem.yml +19 -0
  9. data/.gitignore +0 -0
  10. data/.rspec +0 -0
  11. data/.rubocop.yml +37 -24
  12. data/.yardopts +0 -0
  13. data/.yardopts_guide +0 -0
  14. data/.yardopts_i18n +0 -0
  15. data/CHANGELOG.md +50 -4
  16. data/CONTRIBUTING.md +2 -2
  17. data/Gemfile +5 -3
  18. data/README.md +97 -102
  19. data/Rakefile +2 -3
  20. data/lib/yard/cli/diff.rb +4 -1
  21. data/lib/yard/cli/server.rb +22 -13
  22. data/lib/yard/cli/stats.rb +2 -0
  23. data/lib/yard/cli/yardoc.rb +2 -1
  24. data/lib/yard/code_objects/method_object.rb +1 -1
  25. data/lib/yard/code_objects/namespace_mapper.rb +30 -3
  26. data/lib/yard/code_objects/proxy.rb +2 -1
  27. data/lib/yard/globals.rb +1 -1
  28. data/lib/yard/handlers/c/base.rb +35 -0
  29. data/lib/yard/handlers/ruby/method_handler.rb +1 -1
  30. data/lib/yard/handlers/ruby/mixin_handler.rb +7 -2
  31. data/lib/yard/handlers/ruby/module_function_handler.rb +15 -3
  32. data/lib/yard/parser/ruby/ast_node.rb +2 -2
  33. data/lib/yard/parser/ruby/ruby_parser.rb +7 -5
  34. data/lib/yard/parser/ruby/token_resolver.rb +3 -1
  35. data/lib/yard/parser/source_parser.rb +1 -1
  36. data/lib/yard/registry_resolver.rb +10 -24
  37. data/lib/yard/registry_store.rb +1 -1
  38. data/lib/yard/serializers/yardoc_serializer.rb +1 -1
  39. data/lib/yard/server/commands/base.rb +2 -2
  40. data/lib/yard/server/commands/library_command.rb +1 -1
  41. data/lib/yard/tags/directives.rb +10 -1
  42. data/lib/yard/templates/helpers/html_helper.rb +15 -5
  43. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +5 -4
  44. data/lib/yard/templates/helpers/markup_helper.rb +2 -1
  45. data/lib/yard/templates/section.rb +1 -3
  46. data/lib/yard/version.rb +1 -1
  47. data/lib/yard.rb +3 -0
  48. data/samus.json +15 -46
  49. data/tasks/prepare_tag.rake +45 -0
  50. data/tasks/update_error_map.rake +53 -0
  51. data/templates/default/fulldoc/html/css/style.css +1 -0
  52. data/yard.gemspec +3 -2
  53. metadata +23 -207
  54. data/.travis.yml +0 -52
  55. data/spec/cli/command_parser_spec.rb +0 -43
  56. data/spec/cli/command_spec.rb +0 -36
  57. data/spec/cli/config_spec.rb +0 -148
  58. data/spec/cli/diff_spec.rb +0 -254
  59. data/spec/cli/display_spec.rb +0 -30
  60. data/spec/cli/gems_spec.rb +0 -81
  61. data/spec/cli/graph_spec.rb +0 -18
  62. data/spec/cli/help_spec.rb +0 -22
  63. data/spec/cli/i18n_spec.rb +0 -107
  64. data/spec/cli/list_spec.rb +0 -8
  65. data/spec/cli/markup_types_spec.rb +0 -22
  66. data/spec/cli/server_spec.rb +0 -324
  67. data/spec/cli/stats_spec.rb +0 -96
  68. data/spec/cli/yard_on_yard_spec.rb +0 -38
  69. data/spec/cli/yardoc_spec.rb +0 -896
  70. data/spec/cli/yri_spec.rb +0 -101
  71. data/spec/code_objects/base_spec.rb +0 -485
  72. data/spec/code_objects/class_object_spec.rb +0 -226
  73. data/spec/code_objects/code_object_list_spec.rb +0 -36
  74. data/spec/code_objects/constants_spec.rb +0 -116
  75. data/spec/code_objects/extra_file_object_spec.rb +0 -161
  76. data/spec/code_objects/macro_object_spec.rb +0 -150
  77. data/spec/code_objects/method_object_spec.rb +0 -184
  78. data/spec/code_objects/module_object_spec.rb +0 -142
  79. data/spec/code_objects/namespace_object_spec.rb +0 -171
  80. data/spec/code_objects/proxy_spec.rb +0 -147
  81. data/spec/code_objects/spec_helper.rb +0 -3
  82. data/spec/config_spec.rb +0 -171
  83. data/spec/core_ext/array_spec.rb +0 -13
  84. data/spec/core_ext/file_spec.rb +0 -72
  85. data/spec/core_ext/hash_spec.rb +0 -14
  86. data/spec/core_ext/insertion_spec.rb +0 -37
  87. data/spec/core_ext/module_spec.rb +0 -9
  88. data/spec/core_ext/string_spec.rb +0 -42
  89. data/spec/core_ext/symbol_hash_spec.rb +0 -89
  90. data/spec/docstring_parser_spec.rb +0 -280
  91. data/spec/docstring_spec.rb +0 -373
  92. data/spec/handlers/alias_handler_spec.rb +0 -82
  93. data/spec/handlers/attribute_handler_spec.rb +0 -96
  94. data/spec/handlers/base_spec.rb +0 -216
  95. data/spec/handlers/c/alias_handler_spec.rb +0 -34
  96. data/spec/handlers/c/attribute_handler_spec.rb +0 -41
  97. data/spec/handlers/c/class_handler_spec.rb +0 -78
  98. data/spec/handlers/c/constant_handler_spec.rb +0 -71
  99. data/spec/handlers/c/init_handler_spec.rb +0 -48
  100. data/spec/handlers/c/method_handler_spec.rb +0 -327
  101. data/spec/handlers/c/mixin_handler_spec.rb +0 -44
  102. data/spec/handlers/c/module_handler_spec.rb +0 -71
  103. data/spec/handlers/c/override_comment_handler_spec.rb +0 -47
  104. data/spec/handlers/c/path_handler_spec.rb +0 -36
  105. data/spec/handlers/c/spec_helper.rb +0 -23
  106. data/spec/handlers/c/struct_handler_spec.rb +0 -16
  107. data/spec/handlers/class_condition_handler_spec.rb +0 -87
  108. data/spec/handlers/class_handler_spec.rb +0 -247
  109. data/spec/handlers/class_method_handler_shared_examples.rb +0 -133
  110. data/spec/handlers/class_variable_handler_spec.rb +0 -12
  111. data/spec/handlers/constant_handler_spec.rb +0 -112
  112. data/spec/handlers/decorator_handler_methods_spec.rb +0 -393
  113. data/spec/handlers/dsl_handler_spec.rb +0 -226
  114. data/spec/handlers/examples/alias_handler_001.rb.txt +0 -46
  115. data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -32
  116. data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -69
  117. data/spec/handlers/examples/class_handler_001.rb.txt +0 -120
  118. data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -10
  119. data/spec/handlers/examples/constant_handler_001.rb.txt +0 -35
  120. data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -156
  121. data/spec/handlers/examples/exception_handler_001.rb.txt +0 -59
  122. data/spec/handlers/examples/extend_handler_001.rb.txt +0 -19
  123. data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -10
  124. data/spec/handlers/examples/method_handler_001.rb.txt +0 -128
  125. data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -40
  126. data/spec/handlers/examples/module_handler_001.rb.txt +0 -29
  127. data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -8
  128. data/spec/handlers/examples/process_handler_001.rb.txt +0 -11
  129. data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -36
  130. data/spec/handlers/examples/yield_handler_001.rb.txt +0 -54
  131. data/spec/handlers/exception_handler_spec.rb +0 -49
  132. data/spec/handlers/extend_handler_spec.rb +0 -28
  133. data/spec/handlers/legacy_base_spec.rb +0 -128
  134. data/spec/handlers/method_condition_handler_spec.rb +0 -15
  135. data/spec/handlers/method_handler_spec.rb +0 -214
  136. data/spec/handlers/mixin_handler_spec.rb +0 -60
  137. data/spec/handlers/module_function_handler_spec.rb +0 -106
  138. data/spec/handlers/module_handler_spec.rb +0 -35
  139. data/spec/handlers/private_class_method_handler_spec.rb +0 -11
  140. data/spec/handlers/private_constant_handler_spec.rb +0 -25
  141. data/spec/handlers/processor_spec.rb +0 -35
  142. data/spec/handlers/public_class_method_handler_spec.rb +0 -11
  143. data/spec/handlers/ruby/base_spec.rb +0 -95
  144. data/spec/handlers/ruby/legacy/base_spec.rb +0 -84
  145. data/spec/handlers/spec_helper.rb +0 -33
  146. data/spec/handlers/visibility_handler_spec.rb +0 -44
  147. data/spec/handlers/yield_handler_spec.rb +0 -52
  148. data/spec/i18n/locale_spec.rb +0 -81
  149. data/spec/i18n/message_spec.rb +0 -52
  150. data/spec/i18n/messages_spec.rb +0 -67
  151. data/spec/i18n/pot_generator_spec.rb +0 -295
  152. data/spec/i18n/text_spec.rb +0 -184
  153. data/spec/logging_spec.rb +0 -44
  154. data/spec/options_spec.rb +0 -171
  155. data/spec/parser/base_spec.rb +0 -24
  156. data/spec/parser/c_parser_spec.rb +0 -236
  157. data/spec/parser/examples/array.c.txt +0 -6267
  158. data/spec/parser/examples/example1.rb.txt +0 -8
  159. data/spec/parser/examples/extrafile.c.txt +0 -8
  160. data/spec/parser/examples/file.c.txt +0 -28
  161. data/spec/parser/examples/multifile.c.txt +0 -22
  162. data/spec/parser/examples/namespace.cpp.txt +0 -68
  163. data/spec/parser/examples/override.c.txt +0 -424
  164. data/spec/parser/examples/parse_in_order_001.rb.txt +0 -2
  165. data/spec/parser/examples/parse_in_order_002.rb.txt +0 -2
  166. data/spec/parser/examples/tag_handler_001.rb.txt +0 -8
  167. data/spec/parser/ruby/ast_node_spec.rb +0 -33
  168. data/spec/parser/ruby/legacy/statement_list_spec.rb +0 -299
  169. data/spec/parser/ruby/legacy/token_list_spec.rb +0 -79
  170. data/spec/parser/ruby/ruby_parser_spec.rb +0 -508
  171. data/spec/parser/ruby/token_resolver_spec.rb +0 -165
  172. data/spec/parser/source_parser_spec.rb +0 -727
  173. data/spec/parser/tag_parsing_spec.rb +0 -17
  174. data/spec/rake/yardoc_task_spec.rb +0 -118
  175. data/spec/registry_spec.rb +0 -463
  176. data/spec/registry_store_spec.rb +0 -327
  177. data/spec/rubygems/doc_manager_spec.rb +0 -112
  178. data/spec/serializers/data/serialized_yardoc/checksums +0 -1
  179. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  180. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  181. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  182. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  183. data/spec/serializers/data/serialized_yardoc/proxy_types +0 -2
  184. data/spec/serializers/file_system_serializer_spec.rb +0 -145
  185. data/spec/serializers/spec_helper.rb +0 -2
  186. data/spec/serializers/yardoc_serializer_spec.rb +0 -78
  187. data/spec/server/adapter_spec.rb +0 -39
  188. data/spec/server/commands/base_spec.rb +0 -91
  189. data/spec/server/commands/library_command_spec.rb +0 -39
  190. data/spec/server/doc_server_helper_spec.rb +0 -72
  191. data/spec/server/doc_server_serializer_spec.rb +0 -60
  192. data/spec/server/rack_adapter_spec.rb +0 -21
  193. data/spec/server/router_spec.rb +0 -123
  194. data/spec/server/spec_helper.rb +0 -22
  195. data/spec/server/static_caching_spec.rb +0 -47
  196. data/spec/server/webrick_servlet_spec.rb +0 -20
  197. data/spec/server_spec.rb +0 -19
  198. data/spec/spec_helper.rb +0 -212
  199. data/spec/tags/default_factory_spec.rb +0 -168
  200. data/spec/tags/default_tag_spec.rb +0 -11
  201. data/spec/tags/directives_spec.rb +0 -463
  202. data/spec/tags/library_spec.rb +0 -48
  203. data/spec/tags/overload_tag_spec.rb +0 -53
  204. data/spec/tags/ref_tag_list_spec.rb +0 -53
  205. data/spec/tags/types_explainer_spec.rb +0 -203
  206. data/spec/templates/class_spec.rb +0 -45
  207. data/spec/templates/constant_spec.rb +0 -41
  208. data/spec/templates/engine_spec.rb +0 -131
  209. data/spec/templates/examples/class001.html +0 -308
  210. data/spec/templates/examples/class001.txt +0 -36
  211. data/spec/templates/examples/class002.html +0 -39
  212. data/spec/templates/examples/constant001.txt +0 -25
  213. data/spec/templates/examples/constant002.txt +0 -7
  214. data/spec/templates/examples/constant003.txt +0 -11
  215. data/spec/templates/examples/method001.html +0 -137
  216. data/spec/templates/examples/method001.txt +0 -35
  217. data/spec/templates/examples/method002.html +0 -91
  218. data/spec/templates/examples/method002.txt +0 -20
  219. data/spec/templates/examples/method003.html +0 -165
  220. data/spec/templates/examples/method003.txt +0 -45
  221. data/spec/templates/examples/method004.html +0 -48
  222. data/spec/templates/examples/method004.txt +0 -10
  223. data/spec/templates/examples/method005.html +0 -105
  224. data/spec/templates/examples/method005.txt +0 -33
  225. data/spec/templates/examples/method006.html +0 -108
  226. data/spec/templates/examples/method006.txt +0 -20
  227. data/spec/templates/examples/module001.dot +0 -33
  228. data/spec/templates/examples/module001.html +0 -833
  229. data/spec/templates/examples/module001.txt +0 -33
  230. data/spec/templates/examples/module002.html +0 -341
  231. data/spec/templates/examples/module003.html +0 -202
  232. data/spec/templates/examples/module004.html +0 -394
  233. data/spec/templates/examples/module005.html +0 -82
  234. data/spec/templates/examples/tag001.txt +0 -82
  235. data/spec/templates/helpers/base_helper_spec.rb +0 -171
  236. data/spec/templates/helpers/html_helper_spec.rb +0 -687
  237. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +0 -65
  238. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +0 -84
  239. data/spec/templates/helpers/markup_helper_spec.rb +0 -136
  240. data/spec/templates/helpers/method_helper_spec.rb +0 -107
  241. data/spec/templates/helpers/module_helper_spec.rb +0 -35
  242. data/spec/templates/helpers/shared_signature_examples.rb +0 -126
  243. data/spec/templates/helpers/text_helper_spec.rb +0 -65
  244. data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +0 -60
  245. data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +0 -46
  246. data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +0 -59
  247. data/spec/templates/markup_processor_integrations/rdoc_spec.rb +0 -39
  248. data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +0 -59
  249. data/spec/templates/markup_processor_integrations/redcloth_spec.rb +0 -48
  250. data/spec/templates/method_spec.rb +0 -118
  251. data/spec/templates/module_spec.rb +0 -203
  252. data/spec/templates/onefile_spec.rb +0 -66
  253. data/spec/templates/section_spec.rb +0 -144
  254. data/spec/templates/spec_helper.rb +0 -76
  255. data/spec/templates/tag_spec.rb +0 -52
  256. data/spec/templates/template_spec.rb +0 -410
  257. data/spec/verifier_spec.rb +0 -106
data/spec/spec_helper.rb DELETED
@@ -1,212 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rubygems"
3
- begin
4
- require "rspec"
5
- rescue LoadError
6
- require "spec"
7
- end
8
-
9
- begin
10
- require 'bundler/setup'
11
- rescue LoadError
12
- nil # noop
13
- end
14
-
15
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'yard'))
16
-
17
- unless defined?(HAVE_RIPPER)
18
- begin require 'ripper'; rescue LoadError; nil end
19
- HAVE_RIPPER = defined?(::Ripper) && !ENV['LEGACY'] ? true : false
20
- LEGACY_PARSER = !HAVE_RIPPER
21
-
22
- class YARD::Parser::SourceParser
23
- def self.parser_type; @parser_type == :ruby ? :ruby18 : @parser_type end
24
- end if ENV['LEGACY']
25
- end
26
-
27
- begin
28
- require 'coveralls'
29
- Coveralls.wear!
30
- end if ENV['CI'] && HAVE_RIPPER
31
-
32
- NAMED_OPTIONAL_ARGUMENTS = RUBY_VERSION >= '2.1.0'
33
-
34
- def parse_file(file, thisfile = __FILE__, log_level = log.level, ext = '.rb.txt')
35
- Registry.clear
36
- path = File.join(File.dirname(thisfile), 'examples', file.to_s + ext)
37
- YARD::Parser::SourceParser.parse(path, [], log_level)
38
- end
39
-
40
- def described_in_docs(klass, meth, file = nil)
41
- YARD::Tags::Library.define_tag "RSpec Specification", :it, :with_raw_title_and_text
42
-
43
- # Parse the file (could be multiple files)
44
- if file
45
- filename = File.join(YARD::ROOT, file)
46
- YARD::Parser::SourceParser.new.parse(filename)
47
- else
48
- underscore = klass.class_name.gsub(/([a-z])([A-Z])/, '\1_\2').downcase.gsub('::', '/')
49
- $LOADED_FEATURES.find_all {|p| p.include? underscore }.each do |found_fname|
50
- next unless File.exist? found_fname
51
- YARD::Parser::SourceParser.new.parse(found_fname)
52
- end
53
- end
54
-
55
- # Get the object
56
- objname = klass.name + (meth[0, 1] == '#' ? meth : '::' + meth)
57
- obj = Registry.at(objname)
58
- raise "Cannot find object #{objname} described by spec." unless obj
59
- raise "#{obj.path} has no @it tags to spec." unless obj.has_tag? :it
60
-
61
- # Run examples
62
- describe(klass, meth) do
63
- obj.tags(:it).each do |it|
64
- path = File.relative_path(YARD::ROOT, obj.file)
65
- it(it.name + " (from #{path}:#{obj.line})") do
66
- begin
67
- eval(it.text)
68
- rescue => e
69
- e.set_backtrace(["#{path}:#{obj.line}:in @it tag specification"])
70
- raise e
71
- end
72
- end
73
- end
74
- end
75
- end
76
-
77
- def docspec(objname = self.class.description, klass = self.class.described_type)
78
- # Parse the file (could be multiple files)
79
- underscore = klass.class_name.gsub(/([a-z])([A-Z])/, '\1_\2').downcase.gsub('::', '/')
80
- $LOADED_FEATURES.find_all {|p| p.include? underscore }.each do |filename|
81
- filename = File.join(YARD::ROOT, filename)
82
- next unless File.exist? filename
83
- YARD::Parser::SourceParser.new.parse(filename)
84
- end
85
-
86
- # Get the object
87
- objname = klass.name + objname if objname =~ /^[^A-Z]/
88
- obj = Registry.at(objname)
89
- raise "Cannot find object #{objname} described by spec." unless obj
90
- raise "#{obj.path} has no @example tags to spec." unless obj.has_tag? :example
91
-
92
- # Run examples
93
- obj.tags(:example).each do |exs|
94
- exs.text.split(/\n/).each do |ex|
95
- begin
96
- hash = eval("{ #{ex} }")
97
- expect(hash.keys.first).to eq hash.values.first
98
- rescue => e
99
- raise e, "#{e.message}\nInvalid spec example in #{objname}:\n\n\t#{ex}\n"
100
- end
101
- end
102
- end
103
- end
104
-
105
- module Kernel
106
- require 'cgi'
107
-
108
- def p(*args)
109
- puts args.map {|arg| CGI.escapeHTML(arg.inspect) }.join("<br/>\n")
110
- args.first
111
- end
112
-
113
- def puts(str = '')
114
- STDOUT.puts str + "<br/>\n"
115
- str
116
- end
117
- end if ENV['TM_APP_PATH']
118
-
119
- RSpec.configure do |config|
120
- config.before(:each) { log.io = StringIO.new }
121
-
122
- # isolate environment of each test
123
- # any other global settings which might be modified by a test should also
124
- # be saved and restored here
125
- config.around(:each) do |example|
126
- saved_level = log.level
127
- example.run
128
- log.level = saved_level
129
- end
130
-
131
- # rspec-expectations config goes here. You can use an alternate
132
- # assertion/expectation library such as wrong or the stdlib/minitest
133
- # assertions if you prefer.
134
- config.expect_with :rspec do |expectations|
135
- # This option will default to `true` in RSpec 4. It makes the `description`
136
- # and `failure_message` of custom matchers include text for helper methods
137
- # defined using `chain`, e.g.:
138
- # be_bigger_than(2).and_smaller_than(4).description
139
- # # => "be bigger than 2 and smaller than 4"
140
- # ...rather than:
141
- # # => "be bigger than 2"
142
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
143
- end
144
-
145
- # rspec-mocks config goes here. You can use an alternate test double
146
- # library (such as bogus or mocha) by changing the `mock_with` option here.
147
- config.mock_with :rspec do |mocks|
148
- # Prevents you from mocking or stubbing a method that does not exist on
149
- # a real object. This is generally recommended, and will default to
150
- # `true` in RSpec 4.
151
- # mocks.verify_partial_doubles = true # FIXME: Not yet working
152
- end
153
-
154
- # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
155
- # have no way to turn it off -- the option exists only for backwards
156
- # compatibility in RSpec 3). It causes shared context metadata to be
157
- # inherited by the metadata hash of host groups and examples, rather than
158
- # triggering implicit auto-inclusion in groups with matching metadata.
159
- config.shared_context_metadata_behavior = :apply_to_host_groups
160
-
161
- # This allows you to limit a spec run to individual examples or groups
162
- # you care about by tagging them with `:focus` metadata. When nothing
163
- # is tagged with `:focus`, all examples get run. RSpec also provides
164
- # aliases for `it`, `describe`, and `context` that include `:focus`
165
- # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
166
- config.filter_run_when_matching :focus
167
-
168
- # Allows RSpec to persist some state between runs in order to support
169
- # the `--only-failures` and `--next-failure` CLI options. We recommend
170
- # you configure your source control system to ignore this file.
171
- config.example_status_persistence_file_path = "spec/examples.txt"
172
-
173
- # Limits the available syntax to the non-monkey patched syntax that is
174
- # recommended. For more details, see:
175
- # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
176
- # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
177
- # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
178
- config.disable_monkey_patching!
179
-
180
- # This setting enables warnings. It's recommended, but in some cases may
181
- # be too noisy due to issues in dependencies.
182
- config.warnings = false
183
-
184
- # Many RSpec users commonly either run the entire suite or an individual
185
- # file, and it's useful to allow more verbose output when running an
186
- # individual spec file.
187
- if config.files_to_run.one?
188
- # Use the documentation formatter for detailed output,
189
- # unless a formatter has already been configured
190
- # (e.g. via a command-line flag).
191
- config.default_formatter = 'doc'
192
- end
193
-
194
- # Print the N slowest examples and example groups at the
195
- # end of the spec run, to help surface which specs are running
196
- # particularly slow.
197
- config.profile_examples = 5
198
-
199
- # Run specs in random order to surface order dependencies. If you find an
200
- # order dependency and want to debug it, you can fix the order by providing
201
- # the seed, which is printed after each run.
202
- # --seed 1234
203
- # config.order = :random # FIXME: Not yet working
204
-
205
- # Seed global randomization in this process using the `--seed` CLI option.
206
- # Setting this allows you to use `--seed` to deterministically reproduce
207
- # test failures related to randomization by passing the same `--seed` value
208
- # as the one that triggered the failure.
209
- Kernel.srand config.seed
210
- end
211
-
212
- include YARD
@@ -1,168 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Tags::DefaultFactory do
4
- before { @f = YARD::Tags::DefaultFactory.new }
5
-
6
- describe "#parse_tag" do
7
- it "does not have trailing whitespace on a regular freeform tag" do
8
- expect(@f.parse_tag('api', 'private ').text).to eq "private"
9
- end
10
- end
11
-
12
- describe "#extract_types_and_name_from_text" do
13
- def parse_types(types)
14
- @f.send(:extract_types_and_name_from_text, types)
15
- end
16
-
17
- it "handles one type" do
18
- expect(parse_types('[A]')).to eq [nil, ['A'], ""]
19
- end
20
-
21
- it "handles a list of types" do
22
- expect(parse_types('[A, B, C]')).to eq [nil, ['A', 'B', 'C'], ""]
23
- end
24
-
25
- it "handles ducktypes" do
26
- expect(parse_types('[#foo]')).to eq [nil, ['#foo'], '']
27
- end
28
-
29
- %w(#foo= #<< #<=> #>> #== #=== Array<#<=>> Array<#==>).each do |meth|
30
- it "handles ducktypes with special method name #{meth}" do
31
- expect(parse_types("[#{meth}]")).to eq [nil, [meth], '']
32
- end
33
- end
34
-
35
- it "only parses #ducktypes inside brackets" do
36
- expect(parse_types("#ducktype")).to eq [nil, nil, '#ducktype']
37
- end
38
-
39
- it "returns the text before and after the type list" do
40
- expect(parse_types(' b <String> description')).to eq ['b', ['String'], 'description']
41
- expect(parse_types('b c <String> description (test)')).to eq [nil, nil, 'b c <String> description (test)']
42
- end
43
-
44
- it "does not allow types to start after a newline" do
45
- v = parse_types(" \n [X]")
46
- expect(v).to eq [nil, nil, "[X]"]
47
- end
48
-
49
- it "handles a complex list of types" do
50
- v = parse_types(' [Test, Array<String, Hash, C>, String]')
51
- expect(v).to include(["Test", "Array<String, Hash, C>", "String"])
52
- end
53
-
54
- it "handles any of the following start/end delimiting chars: (), <>, {}, []" do
55
- a = parse_types('[a,b,c]')
56
- b = parse_types('<a,b,c>')
57
- c = parse_types('(a,b,c)')
58
- d = parse_types('{a,b,c}')
59
- expect(a).to eq b
60
- expect(b).to eq c
61
- expect(c).to eq d
62
- expect(a).to include(['a', 'b', 'c'])
63
- end
64
-
65
- it "returns the text before the type list as the last element" do
66
- expect(parse_types('b[x, y, z]')).to eq ['b', ['x', 'y', 'z'], '']
67
- expect(parse_types(' ! <x>')).to eq ["!", ['x'], '']
68
- end
69
-
70
- it "returns text unparsed if there is no type list" do
71
- expect(parse_types('')).to eq [nil, nil, '']
72
- expect(parse_types('[]')).to eq [nil, nil, '[]']
73
- end
74
-
75
- it "allows A => B syntax" do
76
- v = parse_types(' [Test, Array<String, Hash{A => {B => C}}, C>, String]')
77
- expect(v).to include(["Test", "Array<String, Hash{A => {B => C}}, C>", "String"])
78
- end
79
-
80
- it "handles quoted values" do
81
- v = parse_types(' ["foo, bar", \'baz, qux\', in"them,iddle"]')
82
- expect(v).to include(["\"foo, bar\"", "'baz, qux'", 'in"them,iddle"'])
83
- end
84
- end
85
-
86
- describe "#parse_tag_with_types" do
87
- def parse_types(text)
88
- @f.send(:parse_tag_with_types, 'test', text)
89
- end
90
-
91
- it "parses given types and description" do
92
- expect(YARD::Tags::Tag).to receive(:new).with("test", "description", ["x", "y", "z"])
93
- parse_types(' [x, y, z] description')
94
- end
95
-
96
- it "parses given types only" do
97
- expect(YARD::Tags::Tag).to receive(:new).with("test", "", ["x", "y", "z"])
98
- parse_types(' [x, y, z] ')
99
- end
100
-
101
- it "allows type list to be omitted" do
102
- expect(YARD::Tags::Tag).to receive(:new).with('test', 'description', nil)
103
- parse_types(' description ')
104
- end
105
-
106
- it "raises an error if a name is specified before type list" do
107
- expect { parse_types('b<String> desc') }.to raise_error(YARD::Tags::TagFormatError, 'cannot specify a name before type list for \'@test\'')
108
- end
109
- end
110
-
111
- describe "#parse_tag_with_types_name_and_default" do
112
- def parse_types(text)
113
- @f.send(:parse_tag_with_types_name_and_default, 'test', text)
114
- end
115
-
116
- it "parses a standard type list with name before types (no default)" do
117
- expect(YARD::Tags::DefaultTag).to receive(:new).with("test", "description", ["x", "y", "z"], 'NAME', nil)
118
- parse_types('NAME [x, y, z] description')
119
- end
120
-
121
- it "parses a standard type list with name after types (no default)" do
122
- expect(YARD::Tags::DefaultTag).to receive(:new).with("test", "description", ["x", "y", "z"], 'NAME', nil)
123
- parse_types(' [x, y, z] NAME description')
124
- end
125
-
126
- it "parses a tag definition with name, typelist and default" do
127
- expect(YARD::Tags::DefaultTag).to receive(:new).with("test", "description", ["x", "y", "z"], 'NAME', ['default', 'values'])
128
- parse_types(' [x, y, z] NAME (default, values) description')
129
- end
130
-
131
- it "parses a tag definition with name, typelist and default when name is before type list" do
132
- expect(YARD::Tags::DefaultTag).to receive(:new).with("test", "description", ["x", "y", "z"], 'NAME', ['default', 'values'])
133
- parse_types(' NAME [x, y, z] (default, values) description')
134
- end
135
-
136
- it "allows typelist to be omitted" do
137
- expect(YARD::Tags::DefaultTag).to receive(:new).with("test", "description", nil, 'NAME', ['default', 'values'])
138
- parse_types(' NAME (default, values) description')
139
- end
140
- end
141
-
142
- describe "#parse_tag_with_options" do
143
- def parse_options(text)
144
- @f.parse_tag_with_options('option', text)
145
- end
146
-
147
- it "has a name before tag info" do
148
- t = parse_options("xyz key [Types] (default) description")
149
- expect(t.tag_name).to eq 'option'
150
- expect(t.name).to eq 'xyz'
151
- end
152
-
153
- it "parses the rest of the tag like DefaultTag" do
154
- t = parse_options("xyz key [Types] (default) description")
155
- expect(t.pair).to be_instance_of(Tags::DefaultTag)
156
- expect(t.pair.types).to eq ["Types"]
157
- expect(t.pair.name).to eq "key"
158
- expect(t.pair.defaults).to eq ["default"]
159
- expect(t.pair.text).to eq "description"
160
- end
161
-
162
- it "allows omitting default" do
163
- t = parse_options("xyz [Types] key")
164
- expect(t.pair).to be_instance_of(Tags::DefaultTag)
165
- expect(t.pair.name).to eq "key"
166
- end
167
- end
168
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Tags::DefaultTag do
4
- it "creates a tag with defaults" do
5
- o = YARD::Tags::DefaultTag.new('tagname', 'desc', ['types'], 'name', ['defaults'])
6
- expect(o.defaults).to eq ['defaults']
7
- expect(o.tag_name).to eq 'tagname'
8
- expect(o.name).to eq 'name'
9
- expect(o.types).to eq ['types']
10
- end
11
- end