yard 0.9.24 → 0.9.25

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 (223) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +37 -24
  3. data/CHANGELOG.md +18 -3
  4. data/README.md +96 -101
  5. data/Rakefile +2 -0
  6. data/lib/yard/cli/diff.rb +4 -1
  7. data/lib/yard/cli/server.rb +22 -13
  8. data/lib/yard/code_objects/proxy.rb +2 -1
  9. data/lib/yard/globals.rb +1 -1
  10. data/lib/yard/handlers/c/base.rb +164 -129
  11. data/lib/yard/parser/ruby/ruby_parser.rb +6 -4
  12. data/lib/yard/registry_store.rb +1 -1
  13. data/lib/yard/templates/helpers/html_helper.rb +10 -3
  14. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +5 -4
  15. data/lib/yard/version.rb +1 -1
  16. data/tasks/update_error_map.rake +53 -0
  17. data/yard.gemspec +1 -1
  18. metadata +3 -207
  19. data/spec/cli/command_parser_spec.rb +0 -43
  20. data/spec/cli/command_spec.rb +0 -36
  21. data/spec/cli/config_spec.rb +0 -148
  22. data/spec/cli/diff_spec.rb +0 -254
  23. data/spec/cli/display_spec.rb +0 -30
  24. data/spec/cli/gems_spec.rb +0 -81
  25. data/spec/cli/graph_spec.rb +0 -18
  26. data/spec/cli/help_spec.rb +0 -22
  27. data/spec/cli/i18n_spec.rb +0 -107
  28. data/spec/cli/list_spec.rb +0 -8
  29. data/spec/cli/markup_types_spec.rb +0 -22
  30. data/spec/cli/server_spec.rb +0 -324
  31. data/spec/cli/stats_spec.rb +0 -96
  32. data/spec/cli/yard_on_yard_spec.rb +0 -38
  33. data/spec/cli/yardoc_spec.rb +0 -896
  34. data/spec/cli/yri_spec.rb +0 -101
  35. data/spec/code_objects/base_spec.rb +0 -485
  36. data/spec/code_objects/class_object_spec.rb +0 -226
  37. data/spec/code_objects/code_object_list_spec.rb +0 -36
  38. data/spec/code_objects/constants_spec.rb +0 -116
  39. data/spec/code_objects/extra_file_object_spec.rb +0 -161
  40. data/spec/code_objects/macro_object_spec.rb +0 -150
  41. data/spec/code_objects/method_object_spec.rb +0 -184
  42. data/spec/code_objects/module_object_spec.rb +0 -142
  43. data/spec/code_objects/namespace_mapper_spec.rb +0 -32
  44. data/spec/code_objects/namespace_object_spec.rb +0 -171
  45. data/spec/code_objects/proxy_spec.rb +0 -147
  46. data/spec/code_objects/spec_helper.rb +0 -3
  47. data/spec/config_spec.rb +0 -171
  48. data/spec/core_ext/array_spec.rb +0 -13
  49. data/spec/core_ext/file_spec.rb +0 -72
  50. data/spec/core_ext/hash_spec.rb +0 -14
  51. data/spec/core_ext/insertion_spec.rb +0 -37
  52. data/spec/core_ext/module_spec.rb +0 -9
  53. data/spec/core_ext/string_spec.rb +0 -42
  54. data/spec/core_ext/symbol_hash_spec.rb +0 -89
  55. data/spec/docstring_parser_spec.rb +0 -280
  56. data/spec/docstring_spec.rb +0 -373
  57. data/spec/handlers/alias_handler_spec.rb +0 -82
  58. data/spec/handlers/attribute_handler_spec.rb +0 -96
  59. data/spec/handlers/base_spec.rb +0 -216
  60. data/spec/handlers/c/alias_handler_spec.rb +0 -34
  61. data/spec/handlers/c/attribute_handler_spec.rb +0 -41
  62. data/spec/handlers/c/class_handler_spec.rb +0 -78
  63. data/spec/handlers/c/constant_handler_spec.rb +0 -71
  64. data/spec/handlers/c/init_handler_spec.rb +0 -48
  65. data/spec/handlers/c/method_handler_spec.rb +0 -327
  66. data/spec/handlers/c/mixin_handler_spec.rb +0 -44
  67. data/spec/handlers/c/module_handler_spec.rb +0 -71
  68. data/spec/handlers/c/override_comment_handler_spec.rb +0 -47
  69. data/spec/handlers/c/path_handler_spec.rb +0 -36
  70. data/spec/handlers/c/spec_helper.rb +0 -23
  71. data/spec/handlers/c/struct_handler_spec.rb +0 -16
  72. data/spec/handlers/class_condition_handler_spec.rb +0 -87
  73. data/spec/handlers/class_handler_spec.rb +0 -247
  74. data/spec/handlers/class_method_handler_shared_examples.rb +0 -133
  75. data/spec/handlers/class_variable_handler_spec.rb +0 -12
  76. data/spec/handlers/constant_handler_spec.rb +0 -112
  77. data/spec/handlers/decorator_handler_methods_spec.rb +0 -393
  78. data/spec/handlers/dsl_handler_spec.rb +0 -226
  79. data/spec/handlers/examples/alias_handler_001.rb.txt +0 -46
  80. data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -32
  81. data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -69
  82. data/spec/handlers/examples/class_handler_001.rb.txt +0 -120
  83. data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -10
  84. data/spec/handlers/examples/constant_handler_001.rb.txt +0 -35
  85. data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -156
  86. data/spec/handlers/examples/exception_handler_001.rb.txt +0 -59
  87. data/spec/handlers/examples/extend_handler_001.rb.txt +0 -19
  88. data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -10
  89. data/spec/handlers/examples/method_handler_001.rb.txt +0 -128
  90. data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -40
  91. data/spec/handlers/examples/module_handler_001.rb.txt +0 -29
  92. data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -8
  93. data/spec/handlers/examples/process_handler_001.rb.txt +0 -11
  94. data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -36
  95. data/spec/handlers/examples/yield_handler_001.rb.txt +0 -54
  96. data/spec/handlers/exception_handler_spec.rb +0 -49
  97. data/spec/handlers/extend_handler_spec.rb +0 -28
  98. data/spec/handlers/legacy_base_spec.rb +0 -128
  99. data/spec/handlers/method_condition_handler_spec.rb +0 -15
  100. data/spec/handlers/method_handler_spec.rb +0 -214
  101. data/spec/handlers/mixin_handler_spec.rb +0 -60
  102. data/spec/handlers/module_function_handler_spec.rb +0 -106
  103. data/spec/handlers/module_handler_spec.rb +0 -35
  104. data/spec/handlers/private_class_method_handler_spec.rb +0 -11
  105. data/spec/handlers/private_constant_handler_spec.rb +0 -25
  106. data/spec/handlers/processor_spec.rb +0 -35
  107. data/spec/handlers/public_class_method_handler_spec.rb +0 -11
  108. data/spec/handlers/ruby/base_spec.rb +0 -95
  109. data/spec/handlers/ruby/legacy/base_spec.rb +0 -84
  110. data/spec/handlers/spec_helper.rb +0 -33
  111. data/spec/handlers/visibility_handler_spec.rb +0 -44
  112. data/spec/handlers/yield_handler_spec.rb +0 -52
  113. data/spec/i18n/locale_spec.rb +0 -81
  114. data/spec/i18n/message_spec.rb +0 -52
  115. data/spec/i18n/messages_spec.rb +0 -67
  116. data/spec/i18n/pot_generator_spec.rb +0 -295
  117. data/spec/i18n/text_spec.rb +0 -184
  118. data/spec/logging_spec.rb +0 -44
  119. data/spec/options_spec.rb +0 -171
  120. data/spec/parser/base_spec.rb +0 -24
  121. data/spec/parser/c_parser_spec.rb +0 -236
  122. data/spec/parser/examples/array.c.txt +0 -6267
  123. data/spec/parser/examples/example1.rb.txt +0 -8
  124. data/spec/parser/examples/extrafile.c.txt +0 -8
  125. data/spec/parser/examples/file.c.txt +0 -28
  126. data/spec/parser/examples/multifile.c.txt +0 -22
  127. data/spec/parser/examples/namespace.cpp.txt +0 -68
  128. data/spec/parser/examples/override.c.txt +0 -424
  129. data/spec/parser/examples/parse_in_order_001.rb.txt +0 -2
  130. data/spec/parser/examples/parse_in_order_002.rb.txt +0 -2
  131. data/spec/parser/examples/tag_handler_001.rb.txt +0 -8
  132. data/spec/parser/ruby/ast_node_spec.rb +0 -33
  133. data/spec/parser/ruby/legacy/statement_list_spec.rb +0 -299
  134. data/spec/parser/ruby/legacy/token_list_spec.rb +0 -79
  135. data/spec/parser/ruby/ruby_parser_spec.rb +0 -520
  136. data/spec/parser/ruby/token_resolver_spec.rb +0 -165
  137. data/spec/parser/source_parser_spec.rb +0 -727
  138. data/spec/parser/tag_parsing_spec.rb +0 -17
  139. data/spec/rake/yardoc_task_spec.rb +0 -118
  140. data/spec/registry_resolver_spec.rb +0 -15
  141. data/spec/registry_spec.rb +0 -463
  142. data/spec/registry_store_spec.rb +0 -327
  143. data/spec/rubygems/doc_manager_spec.rb +0 -112
  144. data/spec/serializers/data/serialized_yardoc/checksums +0 -1
  145. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  146. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  147. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  148. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  149. data/spec/serializers/data/serialized_yardoc/proxy_types +0 -2
  150. data/spec/serializers/file_system_serializer_spec.rb +0 -145
  151. data/spec/serializers/spec_helper.rb +0 -2
  152. data/spec/serializers/yardoc_serializer_spec.rb +0 -90
  153. data/spec/server/adapter_spec.rb +0 -39
  154. data/spec/server/commands/base_spec.rb +0 -91
  155. data/spec/server/commands/library_command_spec.rb +0 -39
  156. data/spec/server/doc_server_helper_spec.rb +0 -72
  157. data/spec/server/doc_server_serializer_spec.rb +0 -60
  158. data/spec/server/rack_adapter_spec.rb +0 -21
  159. data/spec/server/router_spec.rb +0 -123
  160. data/spec/server/spec_helper.rb +0 -22
  161. data/spec/server/static_caching_spec.rb +0 -47
  162. data/spec/server/webrick_servlet_spec.rb +0 -20
  163. data/spec/server_spec.rb +0 -19
  164. data/spec/spec_helper.rb +0 -212
  165. data/spec/tags/default_factory_spec.rb +0 -168
  166. data/spec/tags/default_tag_spec.rb +0 -11
  167. data/spec/tags/directives_spec.rb +0 -463
  168. data/spec/tags/library_spec.rb +0 -48
  169. data/spec/tags/overload_tag_spec.rb +0 -53
  170. data/spec/tags/ref_tag_list_spec.rb +0 -53
  171. data/spec/tags/types_explainer_spec.rb +0 -203
  172. data/spec/templates/class_spec.rb +0 -45
  173. data/spec/templates/constant_spec.rb +0 -41
  174. data/spec/templates/engine_spec.rb +0 -131
  175. data/spec/templates/examples/class001.html +0 -308
  176. data/spec/templates/examples/class001.txt +0 -36
  177. data/spec/templates/examples/class002.html +0 -39
  178. data/spec/templates/examples/constant001.txt +0 -25
  179. data/spec/templates/examples/constant002.txt +0 -7
  180. data/spec/templates/examples/constant003.txt +0 -11
  181. data/spec/templates/examples/method001.html +0 -137
  182. data/spec/templates/examples/method001.txt +0 -35
  183. data/spec/templates/examples/method002.html +0 -91
  184. data/spec/templates/examples/method002.txt +0 -20
  185. data/spec/templates/examples/method003.html +0 -165
  186. data/spec/templates/examples/method003.txt +0 -45
  187. data/spec/templates/examples/method004.html +0 -48
  188. data/spec/templates/examples/method004.txt +0 -10
  189. data/spec/templates/examples/method005.html +0 -105
  190. data/spec/templates/examples/method005.txt +0 -33
  191. data/spec/templates/examples/method006.html +0 -108
  192. data/spec/templates/examples/method006.txt +0 -20
  193. data/spec/templates/examples/module001.dot +0 -33
  194. data/spec/templates/examples/module001.html +0 -833
  195. data/spec/templates/examples/module001.txt +0 -33
  196. data/spec/templates/examples/module002.html +0 -341
  197. data/spec/templates/examples/module003.html +0 -202
  198. data/spec/templates/examples/module004.html +0 -394
  199. data/spec/templates/examples/module005.html +0 -82
  200. data/spec/templates/examples/tag001.txt +0 -82
  201. data/spec/templates/helpers/base_helper_spec.rb +0 -171
  202. data/spec/templates/helpers/html_helper_spec.rb +0 -666
  203. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +0 -65
  204. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +0 -84
  205. data/spec/templates/helpers/markup_helper_spec.rb +0 -136
  206. data/spec/templates/helpers/method_helper_spec.rb +0 -107
  207. data/spec/templates/helpers/module_helper_spec.rb +0 -35
  208. data/spec/templates/helpers/shared_signature_examples.rb +0 -126
  209. data/spec/templates/helpers/text_helper_spec.rb +0 -65
  210. data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +0 -60
  211. data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +0 -50
  212. data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +0 -48
  213. data/spec/templates/markup_processor_integrations/rdoc_spec.rb +0 -39
  214. data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +0 -64
  215. data/spec/templates/markup_processor_integrations/redcloth_spec.rb +0 -64
  216. data/spec/templates/method_spec.rb +0 -118
  217. data/spec/templates/module_spec.rb +0 -203
  218. data/spec/templates/onefile_spec.rb +0 -66
  219. data/spec/templates/section_spec.rb +0 -144
  220. data/spec/templates/spec_helper.rb +0 -76
  221. data/spec/templates/tag_spec.rb +0 -52
  222. data/spec/templates/template_spec.rb +0 -410
  223. 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