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,203 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Templates::Engine.template(:default, :module) do
5
- before do
6
- Registry.clear
7
- YARD.parse_string <<-'eof'
8
- module B
9
- def c; end
10
- def d; end
11
- private
12
- def e; end
13
- end
14
-
15
- module BaseMod
16
- attr_reader :base_attr1
17
- attr_writer :base_attr2
18
- attr_accessor :base_attr3
19
- end
20
-
21
- # Comments
22
- module A
23
- include BaseMod
24
- attr_accessor :attr1
25
- attr_reader :attr2
26
-
27
- # @overload attr3
28
- # @return [String] a string
29
- # @overload attr3=(value)
30
- # @param [String] value sets the string
31
- # @return [void]
32
- attr_accessor :attr3
33
-
34
- attr_writer :attr4
35
-
36
- def self.a; end
37
- def a; end
38
- alias b a
39
-
40
- # @overload test_overload(a)
41
- # hello2
42
- # @param [String] a hi
43
- def test_overload(*args) end
44
-
45
- # @overload test_multi_overload(a)
46
- # @overload test_multi_overload(a, b)
47
- def test_multi_overload(*args) end
48
-
49
- # @return [void]
50
- def void_meth; end
51
-
52
- include B
53
-
54
- class Y; end
55
- class Q; end
56
- class X; end
57
- module Z; end
58
- # A long docstring for the constant. With extra text
59
- # and newlines.
60
- CONSTANT = 'value'
61
- @@cvar = 'value' # @deprecated
62
- end
63
-
64
- module TMP; include A end
65
- class TMP2; extend A end
66
- eof
67
- end
68
-
69
- it "renders html format correctly" do
70
- html_equals(Registry.at('A').format(html_options(:hide_void_return => true,
71
- :verifier => Verifier.new('object.type != :method || object.visibility == :public'))),
72
- :module001)
73
- end
74
-
75
- it "renders text format correctly" do
76
- YARD.parse_string <<-'eof'
77
- module A
78
- include D, E, F, A::B::C
79
- end
80
- eof
81
-
82
- text_equals(Registry.at('A').format(text_options), :module001)
83
- end
84
-
85
- it "renders dot format correctly" do
86
- expect(Registry.at('A').format(:format => :dot, :dependencies => true, :full => true)).to eq example_contents(:module001, 'dot')
87
- end
88
-
89
- it "renders groups correctly in html" do
90
- Registry.clear
91
- YARD.parse_string <<-'eof'
92
- module A
93
- # @group Foo
94
- attr_accessor :foo_attr
95
- def foo; end
96
- def self.bar; end
97
-
98
- # @group Bar
99
- def baz; end
100
-
101
- # @endgroup
102
-
103
- def self.baz; end
104
- end
105
- eof
106
-
107
- html_equals(Registry.at('A').format(html_options), :module002)
108
- end
109
-
110
- it "ignores overwritten/private attributes/constants from inherited list" do
111
- Registry.clear
112
- YARD.parse_string <<-'eof'
113
- module B
114
- attr_reader :foo
115
- attr_accessor :bar
116
- # @private
117
- attr_writer :baz
118
- FOO = 1
119
- end
120
- module A
121
- include B
122
- def foo; end
123
- attr_reader :bar
124
- FOO = 2
125
- end
126
- eof
127
-
128
- html_equals(Registry.at('A').
129
- format(html_options(:verifier => Verifier.new('!@private'))), :module003)
130
- end
131
-
132
- it "embeds mixins with :embed_mixins = ['Foo', 'Bar', 'Baz::A*']" do
133
- Registry.clear
134
- YARD.parse_string <<-'eof'
135
- class A
136
- # This method is in A
137
- def foo; end
138
-
139
- include Foo
140
- extend Bar
141
- include BarFooBar
142
- include Baz::XYZ
143
- include Baz::ABC
144
- end
145
-
146
- module BarFooBar
147
- def bar_foo_bar; end
148
- end
149
-
150
- module Foo
151
- def self.not_included; end
152
-
153
- # Docs for xyz
154
- def xyz; end
155
- # Docs for bar_attr
156
- attr_accessor :bar_attr
157
- end
158
-
159
- module Bar
160
- def self.not_included; end
161
-
162
- # @group Booya
163
-
164
- # Docs for baz in Booya group
165
- def baz; end
166
- end
167
-
168
- module Baz
169
- module XYZ
170
- # listed as inherited
171
- def baz_xyz; end
172
- end
173
-
174
- module ABC
175
- def baz_abc; end
176
- end
177
- end
178
- eof
179
-
180
- html_equals(Registry.at('A').format(html_options(:embed_mixins => ['Foo', 'Bar', 'Baz::A*'])), :module004)
181
- end
182
-
183
- it "renders constant groups correctly in html" do
184
- Registry.clear
185
- YARD.parse_string <<-'eof'
186
- module A
187
- # @group Foo
188
- FOO = 1
189
-
190
- # @deprecated
191
- BAR = 2
192
-
193
- # @group Bar
194
- BAZ = 3
195
-
196
- # @endgroup
197
-
198
- WORLD = 4
199
- end
200
- eof
201
- html_equals(Registry.at('A').format(html_options), :module005)
202
- end
203
- end
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- class StringSerializer < YARD::Serializers::Base
5
- attr_accessor :files, :string
6
- def initialize(files, string)
7
- @files = files
8
- @string = string
9
- end
10
-
11
- def serialize(object, data)
12
- files << object
13
- string << data
14
- end
15
- end
16
-
17
- RSpec.describe YARD::Templates::Engine.template(:default, :onefile) do
18
- before do
19
- Registry.clear
20
- if defined?(::Encoding)
21
- @eenc = Encoding.default_external
22
- Encoding.default_external = 'ascii-8bit'
23
- @ienc = Encoding.default_internal
24
- Encoding.default_internal = 'ascii-8bit'
25
- end
26
- end
27
-
28
- after do
29
- if defined?(::Encoding)
30
- Encoding.default_internal = @ienc
31
- Encoding.default_external = @eenc
32
- end
33
- end
34
-
35
- def render
36
- @files = []
37
- @output = String.new("")
38
- YARD.parse_string <<-eof
39
- class A
40
- # Foo method
41
- # @return [String]
42
- def foo; end
43
-
44
- # Bar method
45
- # @return [Numeric]
46
- def bar; end
47
- end
48
- eof
49
- readme = CodeObjects::ExtraFileObject.new('README',
50
- "# This is a code comment\n\n# Top of file\n\n\nclass C; end")
51
- Templates::Engine.generate Registry.all(:class),
52
- :serializer => StringSerializer.new(@files, @output),
53
- :onefile => true, :format => :html, :readme => readme, :files => [readme,
54
- CodeObjects::ExtraFileObject.new('LICENSE', 'This is a license!')]
55
- end
56
-
57
- it "renders html" do
58
- render
59
- expect(@files).to eq ['index.html']
60
- expect(@output).to include("This is a code comment")
61
- expect(@output).to include("This is a license!")
62
- expect(@output).to include("Class: A")
63
- expect(@output).to include("Foo method")
64
- expect(@output).to include("Bar method")
65
- end
66
- end
@@ -1,144 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Templates::Section do
5
- include YARD::Templates
6
-
7
- describe "#initialize" do
8
- it "converts first argument to splat if it is array" do
9
- s = Section.new(:name, [:foo, :bar])
10
- expect(s.name).to eq :name
11
- expect(s[0].name).to eq :foo
12
- expect(s[1].name).to eq :bar
13
- end
14
-
15
- it "allows initialization with Section objects" do
16
- s = Section.new(:name, [:foo, Section.new(:bar)])
17
- expect(s.name).to eq :name
18
- expect(s[0]).to eq Section.new(:foo)
19
- expect(s[1]).to eq Section.new(:bar)
20
- end
21
-
22
- it "makes a list of sections" do
23
- s = Section.new(:name, [:foo, [:bar]])
24
- expect(s).to eq Section.new(:name, Section.new(:foo, Section.new(:bar)))
25
- end
26
- end
27
-
28
- describe "#[]" do
29
- it "uses Array#[] if argument is integer" do
30
- expect(Section.new(:name, [:foo, :bar])[0].name).to eq :foo
31
- end
32
-
33
- it "returns new Section object if more than one argument" do
34
- expect(Section.new(:name, :foo, :bar, :baz)[1, 2]).to eq Section.new(:name, :bar, :baz)
35
- end
36
-
37
- it "returns new Section object if arg is Range" do
38
- expect(Section.new(:name, :foo, :bar, :baz)[1..2]).to eq Section.new(:name, :bar, :baz)
39
- end
40
-
41
- it "looks for section by name if arg is object" do
42
- expect(Section.new(:name, :foo, :bar, [:baz])[:bar][:baz]).to eq Section.new(:baz)
43
- end
44
- end
45
-
46
- describe "#eql?" do
47
- it "checks for equality of two equal sections" do
48
- expect(Section.new(:foo, [:a, :b])).to eql(Section.new(:foo, :a, :b))
49
- expect(Section.new(:foo, [:a, :b])).to eq Section.new(:foo, :a, :b)
50
- end
51
-
52
- it "is not equal if section names are different" do
53
- expect(Section.new(:foo, [:a, :b])).not_to eql(Section.new(:bar, :a, :b))
54
- expect(Section.new(:foo, [:a, :b])).not_to eq Section.new(:bar, :a, :b)
55
- end
56
- end
57
-
58
- describe "#==" do
59
- it "allows comparison to Symbol" do
60
- expect(Section.new(:foo, 2, 3)).to eq :foo
61
- end
62
-
63
- it "allows comparison to String" do
64
- expect(Section.new("foo", 2, 3)).to eq "foo"
65
- end
66
-
67
- it "allows comparison to Template" do
68
- t = YARD::Templates::Engine.template!(:xyzzy, '/full/path/xyzzy')
69
- expect(Section.new(t, 2, 3)).to eq t
70
- end
71
-
72
- it "allows comparison to Section" do
73
- expect(Section.new(1, [2, 3])).to eq Section.new(1, 2, 3)
74
- end
75
-
76
- it "allows comparison to Object" do
77
- expect(Section.new(1, [2, 3])).to eq 1
78
- end
79
-
80
- it "allows comparison to Array" do
81
- expect(Section.new(1, 2, [3])).to eq [1, [2, [3]]]
82
- end
83
- end
84
-
85
- describe "#to_a" do
86
- it "converts Section to regular Array list" do
87
- arr = Section.new(1, 2, [3, [4]]).to_a
88
- expect(arr.class).to eq Array
89
- expect(arr).to eq [1, [2, [3, [4]]]]
90
- end
91
- end
92
-
93
- describe "#place" do
94
- it "places objects as Sections" do
95
- expect(Section.new(1, 2, 3).place(4).before(3)).to eq [1, [2, 4, 3]]
96
- end
97
-
98
- it "places objects anywhere inside Section with before/after_any" do
99
- expect(Section.new(1, 2, [3, [4]]).place(5).after_any(4)).to eq [1, [2, [3, [4, 5]]]]
100
- expect(Section.new(1, 2, [3, [4]]).place(5).before_any(4)).to eq [1, [2, [3, [5, 4]]]]
101
- end
102
-
103
- it "allows multiple sections to be placed" do
104
- expect(Section.new(1, 2, 3).place(4, 5).after(3).to_a).to eq [1, [2, 3, 4, 5]]
105
- expect(Section.new(1, 2, 3).place(4, [5]).after(3).to_a).to eq [1, [2, 3, 4, [5]]]
106
- end
107
- end
108
-
109
- describe "#push" do
110
- it "pushes objects as Sections" do
111
- s = Section.new(:foo)
112
- s.push :bar
113
- expect(s[0]).to eq Section.new(:bar)
114
- end
115
-
116
- it "is aliased as #<<" do
117
- s = Section.new(1)
118
- s << :index
119
- expect(s[:index]).to be_a(Section)
120
- end
121
- end
122
-
123
- describe "#unshift" do
124
- it "unshifts objects as Sections" do
125
- s = Section.new(:foo)
126
- s.unshift :bar
127
- expect(s[0]).to eq Section.new(:bar)
128
- end
129
- end
130
-
131
- describe "#any" do
132
- it "finds item inside sections" do
133
- s = Section.new(:foo, Section.new(:bar, Section.new(:bar)))
134
- s.any(:bar).push(:baz)
135
- expect(s.to_a).to eq [:foo, [:bar, [:bar, :baz]]]
136
- end
137
-
138
- it "finds item in any deeply nested set of sections" do
139
- s = Section.new(:foo, Section.new(:bar, Section.new(:baz)))
140
- s.any(:baz).push(:qux)
141
- expect(s.to_a).to eq [:foo, [:bar, [:baz, [:qux]]]]
142
- end
143
- end
144
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- include YARD::Templates
4
-
5
- def only_copy?(result, example, type)
6
- return false unless defined?($COPY)
7
-
8
- if $COPY == :all || $COPY == example
9
- puts(result) unless $COPYT && $COPYT != type
10
- end
11
- $COPY ? true : false
12
- end
13
-
14
- def text_equals(result, expected_example)
15
- return if only_copy?(result, expected_example, :text)
16
- text_equals_string(result, example_contents(expected_example, :txt))
17
- end
18
-
19
- def text_equals_string(result, expected)
20
- expect(result).to eq expected
21
- end
22
-
23
- def html_equals(result, expected_example)
24
- return if only_copy?(result, expected_example, :html)
25
- html_equals_string(result, example_contents(expected_example))
26
- end
27
-
28
- def html_equals_string(result, expected)
29
- result = String.new(result)
30
- expected = String.new(expected)
31
- [expected, result].each do |value|
32
- value.gsub!(/(>)\s+|\s+(<)/, '\1\2')
33
- value.gsub!(/&#39;/, "'")
34
- value.strip!
35
- end
36
- text_equals_string(result, expected)
37
- end
38
-
39
- def example_contents(filename, ext = 'html')
40
- File.read(File.join(File.dirname(__FILE__), 'examples', "#{filename}.#{ext}"))
41
- end
42
-
43
- module YARD::Templates::Engine
44
- class << self
45
- public :find_template_paths
46
- end
47
- end
48
-
49
- class TestHtmlTemplateOptions < Templates::TemplateOptions
50
- default_attr :markup, :none
51
- default_attr :default_return, ""
52
- default_attr :format, :html
53
- default_attr :highlight, false
54
- end
55
-
56
- class TestTextTemplateOptions < Templates::TemplateOptions
57
- default_attr :markup, :none
58
- default_attr :default_return, ""
59
- default_attr :format, :text
60
- default_attr :highlight, false
61
- end
62
-
63
- def html_options(opts = {})
64
- template_options(opts, TestHtmlTemplateOptions)
65
- end
66
-
67
- def text_options(opts = {})
68
- template_options(opts, TestTextTemplateOptions)
69
- end
70
-
71
- def template_options(opts, klass)
72
- options = klass.new
73
- options.reset_defaults
74
- options.update(opts)
75
- options
76
- end