yard 0.9.21 → 0.9.26

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 (250) 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 +42 -0
  8. data/.github/workflows/gem.yml +27 -0
  9. data/.gitignore +0 -0
  10. data/.rspec +0 -0
  11. data/.rubocop.yml +37 -24
  12. data/.travis.yml +0 -3
  13. data/.yardopts +0 -0
  14. data/.yardopts_guide +0 -0
  15. data/.yardopts_i18n +0 -0
  16. data/CHANGELOG.md +47 -4
  17. data/CONTRIBUTING.md +2 -2
  18. data/Gemfile +4 -3
  19. data/README.md +97 -102
  20. data/Rakefile +2 -0
  21. data/lib/yard/cli/diff.rb +4 -1
  22. data/lib/yard/cli/server.rb +22 -13
  23. data/lib/yard/code_objects/method_object.rb +1 -1
  24. data/lib/yard/code_objects/namespace_mapper.rb +30 -3
  25. data/lib/yard/code_objects/proxy.rb +2 -1
  26. data/lib/yard/globals.rb +1 -1
  27. data/lib/yard/handlers/c/base.rb +35 -0
  28. data/lib/yard/handlers/ruby/mixin_handler.rb +4 -1
  29. data/lib/yard/parser/ruby/legacy/irb/slex.rb +1 -1
  30. data/lib/yard/parser/ruby/ruby_parser.rb +6 -4
  31. data/lib/yard/parser/ruby/token_resolver.rb +3 -1
  32. data/lib/yard/parser/source_parser.rb +1 -1
  33. data/lib/yard/registry_resolver.rb +10 -24
  34. data/lib/yard/registry_store.rb +1 -1
  35. data/lib/yard/serializers/yardoc_serializer.rb +1 -1
  36. data/lib/yard/server/commands/base.rb +2 -2
  37. data/lib/yard/templates/helpers/html_helper.rb +10 -3
  38. data/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +1 -1
  39. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +5 -4
  40. data/lib/yard/templates/section.rb +1 -3
  41. data/lib/yard/version.rb +1 -1
  42. data/samus.json +15 -46
  43. data/tasks/update_error_map.rake +53 -0
  44. data/templates/default/fulldoc/html/css/style.css +1 -0
  45. data/templates/default/fulldoc/html/js/jquery.js +4 -2
  46. data/yard.gemspec +1 -2
  47. metadata +9 -206
  48. data/spec/cli/command_parser_spec.rb +0 -43
  49. data/spec/cli/command_spec.rb +0 -36
  50. data/spec/cli/config_spec.rb +0 -148
  51. data/spec/cli/diff_spec.rb +0 -254
  52. data/spec/cli/display_spec.rb +0 -30
  53. data/spec/cli/gems_spec.rb +0 -81
  54. data/spec/cli/graph_spec.rb +0 -18
  55. data/spec/cli/help_spec.rb +0 -22
  56. data/spec/cli/i18n_spec.rb +0 -107
  57. data/spec/cli/list_spec.rb +0 -8
  58. data/spec/cli/markup_types_spec.rb +0 -22
  59. data/spec/cli/server_spec.rb +0 -324
  60. data/spec/cli/stats_spec.rb +0 -96
  61. data/spec/cli/yard_on_yard_spec.rb +0 -38
  62. data/spec/cli/yardoc_spec.rb +0 -896
  63. data/spec/cli/yri_spec.rb +0 -101
  64. data/spec/code_objects/base_spec.rb +0 -485
  65. data/spec/code_objects/class_object_spec.rb +0 -226
  66. data/spec/code_objects/code_object_list_spec.rb +0 -36
  67. data/spec/code_objects/constants_spec.rb +0 -116
  68. data/spec/code_objects/extra_file_object_spec.rb +0 -161
  69. data/spec/code_objects/macro_object_spec.rb +0 -150
  70. data/spec/code_objects/method_object_spec.rb +0 -184
  71. data/spec/code_objects/module_object_spec.rb +0 -142
  72. data/spec/code_objects/namespace_object_spec.rb +0 -171
  73. data/spec/code_objects/proxy_spec.rb +0 -147
  74. data/spec/code_objects/spec_helper.rb +0 -3
  75. data/spec/config_spec.rb +0 -171
  76. data/spec/core_ext/array_spec.rb +0 -13
  77. data/spec/core_ext/file_spec.rb +0 -72
  78. data/spec/core_ext/hash_spec.rb +0 -14
  79. data/spec/core_ext/insertion_spec.rb +0 -37
  80. data/spec/core_ext/module_spec.rb +0 -9
  81. data/spec/core_ext/string_spec.rb +0 -42
  82. data/spec/core_ext/symbol_hash_spec.rb +0 -89
  83. data/spec/docstring_parser_spec.rb +0 -280
  84. data/spec/docstring_spec.rb +0 -373
  85. data/spec/handlers/alias_handler_spec.rb +0 -82
  86. data/spec/handlers/attribute_handler_spec.rb +0 -96
  87. data/spec/handlers/base_spec.rb +0 -216
  88. data/spec/handlers/c/alias_handler_spec.rb +0 -34
  89. data/spec/handlers/c/attribute_handler_spec.rb +0 -41
  90. data/spec/handlers/c/class_handler_spec.rb +0 -78
  91. data/spec/handlers/c/constant_handler_spec.rb +0 -71
  92. data/spec/handlers/c/init_handler_spec.rb +0 -48
  93. data/spec/handlers/c/method_handler_spec.rb +0 -327
  94. data/spec/handlers/c/mixin_handler_spec.rb +0 -44
  95. data/spec/handlers/c/module_handler_spec.rb +0 -71
  96. data/spec/handlers/c/override_comment_handler_spec.rb +0 -47
  97. data/spec/handlers/c/path_handler_spec.rb +0 -36
  98. data/spec/handlers/c/spec_helper.rb +0 -23
  99. data/spec/handlers/c/struct_handler_spec.rb +0 -16
  100. data/spec/handlers/class_condition_handler_spec.rb +0 -87
  101. data/spec/handlers/class_handler_spec.rb +0 -247
  102. data/spec/handlers/class_method_handler_shared_examples.rb +0 -133
  103. data/spec/handlers/class_variable_handler_spec.rb +0 -12
  104. data/spec/handlers/constant_handler_spec.rb +0 -112
  105. data/spec/handlers/decorator_handler_methods_spec.rb +0 -393
  106. data/spec/handlers/dsl_handler_spec.rb +0 -226
  107. data/spec/handlers/examples/alias_handler_001.rb.txt +0 -46
  108. data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -32
  109. data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -69
  110. data/spec/handlers/examples/class_handler_001.rb.txt +0 -120
  111. data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -10
  112. data/spec/handlers/examples/constant_handler_001.rb.txt +0 -35
  113. data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -156
  114. data/spec/handlers/examples/exception_handler_001.rb.txt +0 -59
  115. data/spec/handlers/examples/extend_handler_001.rb.txt +0 -19
  116. data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -10
  117. data/spec/handlers/examples/method_handler_001.rb.txt +0 -128
  118. data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -40
  119. data/spec/handlers/examples/module_handler_001.rb.txt +0 -29
  120. data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -8
  121. data/spec/handlers/examples/process_handler_001.rb.txt +0 -11
  122. data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -36
  123. data/spec/handlers/examples/yield_handler_001.rb.txt +0 -54
  124. data/spec/handlers/exception_handler_spec.rb +0 -49
  125. data/spec/handlers/extend_handler_spec.rb +0 -28
  126. data/spec/handlers/legacy_base_spec.rb +0 -128
  127. data/spec/handlers/method_condition_handler_spec.rb +0 -15
  128. data/spec/handlers/method_handler_spec.rb +0 -214
  129. data/spec/handlers/mixin_handler_spec.rb +0 -60
  130. data/spec/handlers/module_function_handler_spec.rb +0 -106
  131. data/spec/handlers/module_handler_spec.rb +0 -35
  132. data/spec/handlers/private_class_method_handler_spec.rb +0 -11
  133. data/spec/handlers/private_constant_handler_spec.rb +0 -25
  134. data/spec/handlers/processor_spec.rb +0 -35
  135. data/spec/handlers/public_class_method_handler_spec.rb +0 -11
  136. data/spec/handlers/ruby/base_spec.rb +0 -95
  137. data/spec/handlers/ruby/legacy/base_spec.rb +0 -84
  138. data/spec/handlers/spec_helper.rb +0 -33
  139. data/spec/handlers/visibility_handler_spec.rb +0 -44
  140. data/spec/handlers/yield_handler_spec.rb +0 -52
  141. data/spec/i18n/locale_spec.rb +0 -81
  142. data/spec/i18n/message_spec.rb +0 -52
  143. data/spec/i18n/messages_spec.rb +0 -67
  144. data/spec/i18n/pot_generator_spec.rb +0 -295
  145. data/spec/i18n/text_spec.rb +0 -184
  146. data/spec/logging_spec.rb +0 -44
  147. data/spec/options_spec.rb +0 -171
  148. data/spec/parser/base_spec.rb +0 -24
  149. data/spec/parser/c_parser_spec.rb +0 -236
  150. data/spec/parser/examples/array.c.txt +0 -6267
  151. data/spec/parser/examples/example1.rb.txt +0 -8
  152. data/spec/parser/examples/extrafile.c.txt +0 -8
  153. data/spec/parser/examples/file.c.txt +0 -28
  154. data/spec/parser/examples/multifile.c.txt +0 -22
  155. data/spec/parser/examples/namespace.cpp.txt +0 -68
  156. data/spec/parser/examples/override.c.txt +0 -424
  157. data/spec/parser/examples/parse_in_order_001.rb.txt +0 -2
  158. data/spec/parser/examples/parse_in_order_002.rb.txt +0 -2
  159. data/spec/parser/examples/tag_handler_001.rb.txt +0 -8
  160. data/spec/parser/ruby/ast_node_spec.rb +0 -33
  161. data/spec/parser/ruby/legacy/statement_list_spec.rb +0 -299
  162. data/spec/parser/ruby/legacy/token_list_spec.rb +0 -79
  163. data/spec/parser/ruby/ruby_parser_spec.rb +0 -508
  164. data/spec/parser/ruby/token_resolver_spec.rb +0 -165
  165. data/spec/parser/source_parser_spec.rb +0 -727
  166. data/spec/parser/tag_parsing_spec.rb +0 -17
  167. data/spec/rake/yardoc_task_spec.rb +0 -118
  168. data/spec/registry_spec.rb +0 -463
  169. data/spec/registry_store_spec.rb +0 -327
  170. data/spec/rubygems/doc_manager_spec.rb +0 -112
  171. data/spec/serializers/data/serialized_yardoc/checksums +0 -1
  172. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  173. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  174. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  175. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  176. data/spec/serializers/data/serialized_yardoc/proxy_types +0 -2
  177. data/spec/serializers/file_system_serializer_spec.rb +0 -145
  178. data/spec/serializers/spec_helper.rb +0 -2
  179. data/spec/serializers/yardoc_serializer_spec.rb +0 -78
  180. data/spec/server/adapter_spec.rb +0 -39
  181. data/spec/server/commands/base_spec.rb +0 -91
  182. data/spec/server/commands/library_command_spec.rb +0 -39
  183. data/spec/server/doc_server_helper_spec.rb +0 -72
  184. data/spec/server/doc_server_serializer_spec.rb +0 -60
  185. data/spec/server/rack_adapter_spec.rb +0 -21
  186. data/spec/server/router_spec.rb +0 -123
  187. data/spec/server/spec_helper.rb +0 -22
  188. data/spec/server/static_caching_spec.rb +0 -47
  189. data/spec/server/webrick_servlet_spec.rb +0 -20
  190. data/spec/server_spec.rb +0 -19
  191. data/spec/spec_helper.rb +0 -212
  192. data/spec/tags/default_factory_spec.rb +0 -168
  193. data/spec/tags/default_tag_spec.rb +0 -11
  194. data/spec/tags/directives_spec.rb +0 -463
  195. data/spec/tags/library_spec.rb +0 -48
  196. data/spec/tags/overload_tag_spec.rb +0 -53
  197. data/spec/tags/ref_tag_list_spec.rb +0 -53
  198. data/spec/tags/types_explainer_spec.rb +0 -203
  199. data/spec/templates/class_spec.rb +0 -45
  200. data/spec/templates/constant_spec.rb +0 -41
  201. data/spec/templates/engine_spec.rb +0 -131
  202. data/spec/templates/examples/class001.html +0 -308
  203. data/spec/templates/examples/class001.txt +0 -36
  204. data/spec/templates/examples/class002.html +0 -39
  205. data/spec/templates/examples/constant001.txt +0 -25
  206. data/spec/templates/examples/constant002.txt +0 -7
  207. data/spec/templates/examples/constant003.txt +0 -11
  208. data/spec/templates/examples/method001.html +0 -137
  209. data/spec/templates/examples/method001.txt +0 -35
  210. data/spec/templates/examples/method002.html +0 -91
  211. data/spec/templates/examples/method002.txt +0 -20
  212. data/spec/templates/examples/method003.html +0 -165
  213. data/spec/templates/examples/method003.txt +0 -45
  214. data/spec/templates/examples/method004.html +0 -48
  215. data/spec/templates/examples/method004.txt +0 -10
  216. data/spec/templates/examples/method005.html +0 -105
  217. data/spec/templates/examples/method005.txt +0 -33
  218. data/spec/templates/examples/method006.html +0 -108
  219. data/spec/templates/examples/method006.txt +0 -20
  220. data/spec/templates/examples/module001.dot +0 -33
  221. data/spec/templates/examples/module001.html +0 -833
  222. data/spec/templates/examples/module001.txt +0 -33
  223. data/spec/templates/examples/module002.html +0 -341
  224. data/spec/templates/examples/module003.html +0 -202
  225. data/spec/templates/examples/module004.html +0 -394
  226. data/spec/templates/examples/module005.html +0 -82
  227. data/spec/templates/examples/tag001.txt +0 -82
  228. data/spec/templates/helpers/base_helper_spec.rb +0 -171
  229. data/spec/templates/helpers/html_helper_spec.rb +0 -687
  230. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +0 -65
  231. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +0 -84
  232. data/spec/templates/helpers/markup_helper_spec.rb +0 -136
  233. data/spec/templates/helpers/method_helper_spec.rb +0 -107
  234. data/spec/templates/helpers/module_helper_spec.rb +0 -35
  235. data/spec/templates/helpers/shared_signature_examples.rb +0 -126
  236. data/spec/templates/helpers/text_helper_spec.rb +0 -65
  237. data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +0 -60
  238. data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +0 -46
  239. data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +0 -59
  240. data/spec/templates/markup_processor_integrations/rdoc_spec.rb +0 -39
  241. data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +0 -59
  242. data/spec/templates/markup_processor_integrations/redcloth_spec.rb +0 -48
  243. data/spec/templates/method_spec.rb +0 -118
  244. data/spec/templates/module_spec.rb +0 -203
  245. data/spec/templates/onefile_spec.rb +0 -66
  246. data/spec/templates/section_spec.rb +0 -144
  247. data/spec/templates/spec_helper.rb +0 -76
  248. data/spec/templates/tag_spec.rb +0 -52
  249. data/spec/templates/template_spec.rb +0 -410
  250. data/spec/verifier_spec.rb +0 -106
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}MixinHandler" do
5
- before(:all) { parse_file :mixin_handler_001, __FILE__ }
6
-
7
- it "handles includes from classes or modules" do
8
- expect(Registry.at(:X).instance_mixins).to include(P(:A))
9
- expect(Registry.at(:Y).instance_mixins).to include(P(:A))
10
- end
11
-
12
- it "handles includes in class << self" do
13
- expect(Registry.at(:Y).class_mixins).to include(P(:A))
14
- end
15
-
16
- it "handles includes for modules that don't yet exist" do
17
- expect(Registry.at(:X).instance_mixins).to include(P(nil, :NOTEXIST))
18
- end
19
-
20
- it "sets the type of non-existing modules to :module" do
21
- o = Registry.at(:X).instance_mixins.find {|obj| obj.name == :NOTEXIST }
22
- expect(o.type).to eq :module
23
- end
24
-
25
- it "handles includes with multiple parameters" do
26
- expect(Registry.at(:X)).not_to be nil
27
- end
28
-
29
- it "handles complex include statements" do
30
- expect(P(:Y).instance_mixins).to include(P('B::C'))
31
- expect(P(:Y).instance_mixins).to include(P(:B))
32
- end
33
-
34
- it "treats a mixed in Constant by taking its value as the real object name" do
35
- expect(P(:Y).instance_mixins).to include(Registry.at('B::D'))
36
- end
37
-
38
- it "adds includes in the correct order when include is given multiple arguments" do
39
- expect(P(:Z).instance_mixins).to eq [P(:A), P(:B)]
40
- end
41
-
42
- it "avoids including self for unresolved mixins of the same name" do
43
- expect(P("ABC::DEF::FOO").mixins).to eq [P("ABC::FOO")]
44
- expect(P("ABC::DEF::BAR").mixins).to eq [P("ABC::BAR")]
45
- end
46
-
47
- it "raises undocumentable error if argument is variable" do
48
- undoc_error "module X; include invalid; end"
49
- expect(Registry.at('X').mixins).to eq []
50
- end
51
-
52
- it "parses all other arguments before erroring out on undocumentable error" do
53
- undoc_error "module X; include invalid, Y; end"
54
- expect(Registry.at('X').mixins).to eq [P('Y')]
55
- end
56
-
57
- it "adds mixins from include calls to constants" do
58
- expect(P('FromConstant').instance_mixins).to eq [P('A')]
59
- end
60
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}VisibilityHandler" do
5
- after { Registry.clear }
6
-
7
- def assert_module_function(namespace, name)
8
- klass = Registry.at("#{namespace}.#{name}")
9
- instance = Registry.at("#{namespace}##{name}")
10
- expect(klass).not_to be nil
11
- expect(instance).not_to be nil
12
- expect(klass).to be_module_function
13
- expect(instance).not_to be_module_function
14
- expect(klass.visibility).to eq :public
15
- expect(instance.visibility).to eq :private
16
- end
17
-
18
- it "is able to create a module function with parameters" do
19
- YARD.parse_string <<-eof
20
- module Foo
21
- def bar; end
22
- def baz; end
23
-
24
- module_function :bar, :baz
25
- end
26
- eof
27
- assert_module_function('Foo', 'bar')
28
- assert_module_function('Foo', 'baz')
29
- end
30
-
31
- it "is able to set scope for duration of block without params" do
32
- YARD.parse_string <<-eof
33
- module Foo
34
- def qux; end
35
-
36
- module_function
37
-
38
- def bar; end
39
- def baz; end
40
- end
41
- eof
42
- expect(Registry.at('Foo.qux')).to be nil
43
- assert_module_function('Foo', 'bar')
44
- assert_module_function('Foo', 'baz')
45
- end
46
-
47
- # @bug gh-563
48
- it "copies tags to module function properly" do
49
- YARD.parse_string <<-eof
50
- module Foo
51
- # @param [String] foo bar
52
- # @option foo [String] bar (nil) baz
53
- # @return [void]
54
- def bar(foo); end
55
- module_function :bar
56
- end
57
- eof
58
- assert_module_function('Foo', 'bar')
59
- o = Registry.at('Foo.bar')
60
- expect(o.tag(:param).types).to eq ['String']
61
- expect(o.tag(:param).name).to eq 'foo'
62
- expect(o.tag(:param).text).to eq 'bar'
63
- expect(o.tag(:option).name).to eq 'foo'
64
- expect(o.tag(:option).pair.types).to eq ['String']
65
- expect(o.tag(:option).pair.defaults).to eq ['nil']
66
- expect(o.tag(:option).pair.text).to eq 'baz'
67
- expect(o.tag(:return).types).to eq ['void']
68
- end
69
-
70
- it "handles all method names in parameters" do
71
- YARD.parse_string <<-eof
72
- module Foo
73
- def -(t); end
74
- def ==(other); end
75
- def a?; end
76
- module_function :-, '==', :a?
77
- end
78
- eof
79
- assert_module_function('Foo', '-')
80
- assert_module_function('Foo', '==')
81
- assert_module_function('Foo', 'a?')
82
- end
83
-
84
- it "only accepts strings and symbols" do
85
- YARD.parse_string <<-eof
86
- module Foo
87
- module_function name
88
- module_function *argument
89
- module_function *(method_call)
90
- end
91
- eof
92
- expect(Registry.at('Foo#name')).to be nil
93
- expect(Registry.at('Foo#argument')).to be nil
94
- expect(Registry.at('Foo#method_call')).to be nil
95
- end
96
-
97
- it "handles constants passed in as symbols" do
98
- YARD.parse_string <<-eof
99
- module Foo
100
- def Foo; end
101
- module_function :Foo
102
- end
103
- eof
104
- assert_module_function('Foo', 'Foo')
105
- end
106
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ModuleHandler" do
5
- before(:all) { parse_file :module_handler_001, __FILE__ }
6
-
7
- it "parses a module block" do
8
- expect(Registry.at(:ModName)).not_to eq nil
9
- expect(Registry.at("ModName::OtherModName")).not_to eq nil
10
- end
11
-
12
- it "attaches docstring" do
13
- expect(Registry.at("ModName::OtherModName").docstring).to eq "Docstring"
14
- end
15
-
16
- it "handles any formatting" do
17
- expect(Registry.at(:StressTest)).not_to eq nil
18
- end
19
-
20
- it "handles complex module names" do
21
- expect(Registry.at("A::B")).not_to eq nil
22
- end
23
-
24
- it "handles modules in the form ::ModName" do
25
- expect(Registry.at("Kernel")).not_to be nil
26
- end
27
-
28
- it "lists mixins in proper order" do
29
- expect(Registry.at('D').mixins).to eq [P(:C), P(:B), P(:A)]
30
- end
31
-
32
- it "creates proper module when constant is in namespace" do
33
- expect(Registry.at('Q::FOO::A')).not_to be nil
34
- end
35
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
- require File.dirname(__FILE__) + '/class_method_handler_shared_examples'
4
-
5
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PrivateClassMethodHandler" do
6
- before { Registry.clear }
7
-
8
- let(:visibility) { :private }
9
-
10
- include_examples "class method visibility decorator"
11
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PrivateConstantHandler" do
5
- before(:all) { parse_file :private_constant_handler_001, __FILE__ }
6
-
7
- it "handles private_constant statement" do
8
- expect(Registry.at('A::Foo').visibility).to eq :private
9
- expect(Registry.at('A::B').visibility).to eq :private
10
- expect(Registry.at('A::C').visibility).to eq :private
11
- end
12
-
13
- it "makes all other constants public" do
14
- expect(Registry.at('A::D').visibility).to eq :public
15
- end
16
-
17
- it "fails if parameter is not String, Symbol or Constant" do
18
- undoc_error 'class Foo; private_constant x; end'
19
- undoc_error 'class Foo; X = 1; private_constant X.new("hi"); end'
20
- end unless LEGACY_PARSER
21
-
22
- it "fails if constant can't be recognized" do
23
- undoc_error 'class Foo2; private_constant :X end'
24
- end
25
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Handlers::Processor do
5
- before do
6
- @proc = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
7
- end
8
-
9
- it "starts with public visibility" do
10
- expect(@proc.visibility).to eq :public
11
- end
12
-
13
- it "starts in instance scope" do
14
- expect(@proc.scope).to eq :instance
15
- end
16
-
17
- it "starts in root namespace" do
18
- expect(@proc.namespace).to eq Registry.root
19
- end
20
-
21
- it "has a globals structure" do
22
- expect(@proc.globals).to be_a(OpenStruct)
23
- end
24
-
25
- it "ignores HandlerAborted exceptions (but print debug info)" do
26
- class AbortHandlerProcessor < YARD::Handlers::Ruby::Base
27
- process { abort! }
28
- end
29
- stmt = OpenStruct.new(:line => 1, :show => 'SOURCE')
30
- allow(@proc).to receive(:find_handlers).and_return([AbortHandlerProcessor])
31
- expect(log).to receive(:debug).with(/AbortHandlerProcessor cancelled from/)
32
- expect(log).to receive(:debug).with("\tin file '(stdin)':1:\n\nSOURCE\n")
33
- @proc.process([stmt])
34
- end
35
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
- require File.dirname(__FILE__) + '/class_method_handler_shared_examples'
4
-
5
- RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PublicClassMethodHandler" do
6
- before { Registry.clear }
7
-
8
- let(:visibility) { :public }
9
-
10
- include_examples "class method visibility decorator"
11
- end
@@ -1,95 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Handlers::Ruby::Base, '#valid_handler?' do
4
- include YARD::Parser::Ruby
5
- YARD::Parser::Ruby::AstNode # rubocop:disable Lint/Void
6
-
7
- before do
8
- allow(Handlers::Ruby::Base).to receive(:inherited)
9
- @processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
10
- end
11
-
12
- after(:all) do
13
- Handlers::Base.clear_subclasses
14
- end
15
-
16
- def valid(handler, stmt)
17
- expect(@processor.find_handlers(stmt)).to include(handler)
18
- end
19
-
20
- def invalid(handler, stmt)
21
- expect(@processor.find_handlers(stmt)).not_to include(handler)
22
- end
23
-
24
- it "only handles Handlers inherited from Ruby::Base class" do
25
- class IgnoredHandler < Handlers::Base
26
- handles :list
27
- end
28
- class NotIgnoredHandler < Handlers::Ruby::Base
29
- handles :list
30
- end
31
- allow(Handlers::Base).to receive(:subclasses).and_return [IgnoredHandler, NotIgnoredHandler]
32
- expect(@processor.find_handlers(s)).to eq [NotIgnoredHandler]
33
- end
34
-
35
- it "handles string input (matches AstNode#source)" do
36
- class StringHandler < Handlers::Ruby::Base
37
- handles "x"
38
- end
39
- allow(Handlers::Base).to receive(:subclasses).and_return [StringHandler]
40
- ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
41
- valid StringHandler, ast[0][0][0]
42
- invalid StringHandler, ast[0][1]
43
- end
44
-
45
- it "handles symbol input (matches AstNode#type)" do
46
- class SymbolHandler < Handlers::Ruby::Base
47
- handles :myNodeType
48
- end
49
- allow(Handlers::Base).to receive(:subclasses).and_return [SymbolHandler]
50
- valid SymbolHandler, s(:myNodeType, s(1, 2, 3))
51
- invalid SymbolHandler, s(:NOTmyNodeType, s(1, 2, 3))
52
- end
53
-
54
- it "handles regex input (matches AstNode#source)" do
55
- class RegexHandler < Handlers::Ruby::Base
56
- handles(/^if x ==/)
57
- end
58
- allow(Handlers::Base).to receive(:subclasses).and_return [RegexHandler]
59
- ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
60
- valid RegexHandler, ast
61
- invalid RegexHandler, ast[0][1]
62
- end
63
-
64
- it "handles AstNode input (matches AST literally)" do
65
- class ASTHandler < Handlers::Ruby::Base
66
- handles s(:vcall, s(:ident, "hello_world"))
67
- end
68
- allow(Handlers::Base).to receive(:subclasses).and_return [ASTHandler]
69
- valid ASTHandler, s(:vcall, s(:ident, "hello_world"))
70
- invalid ASTHandler, s(:vcall, s(:ident, "NOTHELLOWORLD"))
71
- end
72
-
73
- it "handles #method_call(:methname) on a valid AST" do
74
- class MethCallHandler < Handlers::Ruby::Base
75
- handles method_call(:meth)
76
- end
77
- allow(Handlers::Base).to receive(:subclasses).and_return [MethCallHandler]
78
- ast = Parser::Ruby::RubyParser.parse(<<-"eof").ast
79
- meth # 0
80
- meth() # 1
81
- meth(1,2,3) # 2
82
- meth 1,2,3 # 3
83
- NotMeth.meth # 4
84
- NotMeth.meth { } # 5
85
- NotMeth.meth do end # 6
86
- NotMeth.meth 1, 2, 3 # 7
87
- NotMeth.meth(1, 2, 3) # 8
88
- NotMeth # 9
89
- eof
90
- (0..8).each do |i|
91
- valid MethCallHandler, ast[i]
92
- end
93
- invalid MethCallHandler, ast[9]
94
- end
95
- end if HAVE_RIPPER
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- include Parser::Ruby::Legacy
4
-
5
- RSpec.describe YARD::Handlers::Ruby::Legacy::Base, "#handles and inheritance" do
6
- before do
7
- allow(Handlers::Ruby::Legacy::Base).to receive(:inherited)
8
- if RUBY_VERSION > '1.8.7'
9
- allow(Handlers::Ruby::Legacy::MixinHandler).to receive(:inherited) # fixes a Ruby1.9 issue
10
- end
11
- @processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby18))
12
- end
13
-
14
- after(:all) do
15
- Handlers::Base.clear_subclasses
16
- end
17
-
18
- def stmt(string)
19
- Statement.new(TokenList.new(string))
20
- end
21
-
22
- it "only handles Handlers inherited from Ruby::Legacy::Base class" do
23
- class IgnoredHandler < Handlers::Base
24
- handles "hello"
25
- end
26
- class NotIgnoredHandlerLegacy < Handlers::Ruby::Legacy::Base
27
- handles "hello"
28
- end
29
- allow(Handlers::Base).to receive(:subclasses).and_return [IgnoredHandler, NotIgnoredHandlerLegacy]
30
- expect(@processor.find_handlers(stmt("hello world"))).to eq [NotIgnoredHandlerLegacy]
31
- end
32
-
33
- it "handles a string input" do
34
- class TestStringHandler < Handlers::Ruby::Legacy::Base
35
- handles "hello"
36
- end
37
-
38
- expect(TestStringHandler.handles?(stmt("hello world"))).to be true
39
- expect(TestStringHandler.handles?(stmt("nothello world"))).to be false
40
- end
41
-
42
- it "handles regex input" do
43
- class TestRegexHandler < Handlers::Ruby::Legacy::Base
44
- handles(/^nothello$/)
45
- end
46
-
47
- expect(TestRegexHandler.handles?(stmt("nothello"))).to be true
48
- expect(TestRegexHandler.handles?(stmt("not hello hello"))).to be false
49
- end
50
-
51
- it "handles token input" do
52
- class TestTokenHandler < Handlers::Ruby::Legacy::Base
53
- handles TkMODULE
54
- end
55
-
56
- expect(TestTokenHandler.handles?(stmt("module"))).to be true
57
- expect(TestTokenHandler.handles?(stmt("if"))).to be false
58
- end
59
-
60
- it "parses a do/end or { } block with #parse_block" do
61
- class MyBlockHandler < Handlers::Ruby::Legacy::Base
62
- handles(/\AmyMethod\b/)
63
- def process
64
- parse_block(:owner => "test")
65
- end
66
- end
67
-
68
- class MyBlockInnerHandler < Handlers::Ruby::Legacy::Base
69
- handles "inner"
70
- def self.reset; @@reached = false end
71
- def self.reached?; @@reached ||= false end
72
- def process; @@reached = true end
73
- end
74
-
75
- allow(Handlers::Base).to receive(:subclasses).and_return [MyBlockHandler, MyBlockInnerHandler]
76
- Parser::SourceParser.parser_type = :ruby18
77
- Parser::SourceParser.parse_string "myMethod do inner end"
78
- expect(MyBlockInnerHandler).to be_reached
79
- MyBlockInnerHandler.reset
80
- Parser::SourceParser.parse_string "myMethod { inner }"
81
- expect(MyBlockInnerHandler).to be_reached
82
- Parser::SourceParser.parser_type = :ruby
83
- end
84
- end