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,2 +0,0 @@
1
- {I" Object:EF:
2
- class
@@ -1,145 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.join(File.dirname(__FILE__), "spec_helper")
3
-
4
- require 'stringio'
5
-
6
- RSpec.describe YARD::Serializers::FileSystemSerializer do
7
- before do
8
- allow(FileUtils).to receive(:mkdir_p)
9
- allow(File).to receive(:open)
10
- end
11
-
12
- describe "#basepath" do
13
- it "defaults the base path to the 'doc/'" do
14
- obj = Serializers::FileSystemSerializer.new
15
- expect(obj.basepath).to eq 'doc'
16
- end
17
- end
18
-
19
- describe "#extension" do
20
- it "defaults the file extension to .html" do
21
- obj = Serializers::FileSystemSerializer.new
22
- expect(obj.extension).to eq "html"
23
- end
24
- end
25
-
26
- describe "#serialized_path" do
27
- it "allows no extension to be used" do
28
- obj = Serializers::FileSystemSerializer.new :extension => nil
29
- yard = CodeObjects::ClassObject.new(nil, :FooBar)
30
- expect(obj.serialized_path(yard)).to eq 'FooBar'
31
- end
32
-
33
- it "serializes to top-level-namespace for root" do
34
- obj = Serializers::FileSystemSerializer.new :extension => nil
35
- expect(obj.serialized_path(Registry.root)).to eq "top-level-namespace"
36
- end
37
-
38
- it "returns serialized_path for a String" do
39
- s = Serializers::FileSystemSerializer.new(:basepath => 'foo', :extension => 'txt')
40
- expect(s.serialized_path('test.txt')).to eq 'test.txt'
41
- end
42
-
43
- it "removes special chars from path" do
44
- m = CodeObjects::MethodObject.new(nil, 'a')
45
- s = Serializers::FileSystemSerializer.new
46
-
47
- {:gsub! => 'gsub_21_i.html',
48
- :ask? => 'ask_3F_i.html',
49
- :=== => '_3D_3D_3D_i.html',
50
- :+ => '_2B_i.html',
51
- :- => '-_i.html',
52
- :[]= => '_5B_5D_3D_i.html',
53
- :<< => '_3C_3C_i.html',
54
- :>= => '_3E_3D_i.html',
55
- :` => '_60_i.html',
56
- :& => '_26_i.html',
57
- :* => '_2A_i.html',
58
- :| => '_7C_i.html',
59
- :/ => '_2F_i.html',
60
- :=~ => '_3D_7E_i.html'}.each do |meth, value|
61
- allow(m).to receive(:name).and_return(meth)
62
- expect(s.serialized_path(m)).to eq value
63
- end
64
- end
65
-
66
- it "handles ExtraFileObject's" do
67
- s = Serializers::FileSystemSerializer.new
68
- e = CodeObjects::ExtraFileObject.new('filename.txt', '')
69
- expect(s.serialized_path(e)).to eq 'file.filename.html'
70
- end
71
-
72
- it "differentiates instance and class methods from serialized path" do
73
- s = Serializers::FileSystemSerializer.new
74
- m1 = CodeObjects::MethodObject.new(nil, 'meth')
75
- m2 = CodeObjects::MethodObject.new(nil, 'meth', :class)
76
- expect(s.serialized_path(m1)).not_to eq s.serialized_path(m2)
77
- end
78
-
79
- it "serializes path from overload tag" do
80
- YARD.parse_string <<-'eof'
81
- class Foo
82
- # @overload bar
83
- def bar; end
84
- end
85
- eof
86
-
87
- serializer = Serializers::FileSystemSerializer.new
88
- object = Registry.at('Foo#bar').tag(:overload)
89
- expect(serializer.serialized_path(object)).to eq "Foo/bar_i.html"
90
- end
91
-
92
- it "maps matching case sensitive object names to different files on disk" do
93
- Registry.clear
94
- o1 = CodeObjects::ClassObject.new(:root, "AB")
95
- o2 = CodeObjects::ClassObject.new(:root, "Ab")
96
- s = Serializers::FileSystemSerializer.new
97
- expect([["AB_.html", "Ab.html"], ["AB.html", "Ab_.html"]]).to include(
98
- [s.serialized_path(o1), s.serialized_path(o2)]
99
- )
100
- end
101
-
102
- it "handles case sensitivity of nested paths for objects with matching names" do
103
- Registry.clear
104
- YARD.parse_string <<-eof
105
- class Abc; class D; end end
106
- class ABC; class D; end end
107
- eof
108
-
109
- s = Serializers::FileSystemSerializer.new
110
- expect(s.serialized_path(Registry.at('ABC::D'))).to eq "ABC/D.html"
111
- expect(s.serialized_path(Registry.at('Abc::D'))).to eq "Abc/D.html"
112
- end
113
- end
114
-
115
- describe "#serialize" do
116
- it "serializes to the correct path" do
117
- yard = CodeObjects::ClassObject.new(nil, :FooBar)
118
- meth = CodeObjects::MethodObject.new(yard, :baz, :class)
119
- meth2 = CodeObjects::MethodObject.new(yard, :baz)
120
-
121
- {'foo/FooBar/baz_c.txt' => meth,
122
- 'foo/FooBar/baz_i.txt' => meth2,
123
- 'foo/FooBar.txt' => yard}.each do |path, obj|
124
- io = StringIO.new
125
- expect(File).to receive(:open).with(path, 'wb').and_yield(io)
126
- expect(io).to receive(:write).with("data")
127
-
128
- s = Serializers::FileSystemSerializer.new(:basepath => 'foo', :extension => 'txt')
129
- s.serialize(obj, "data")
130
- end
131
- end
132
-
133
- it "guarantees the directory exists" do
134
- o1 = CodeObjects::ClassObject.new(nil, :Really)
135
- o2 = CodeObjects::ClassObject.new(o1, :Long)
136
- o3 = CodeObjects::ClassObject.new(o2, :PathName)
137
- obj = CodeObjects::MethodObject.new(o3, :foo)
138
-
139
- expect(FileUtils).to receive(:mkdir_p).once.with('doc/Really/Long/PathName')
140
-
141
- s = Serializers::FileSystemSerializer.new
142
- s.serialize(obj, "data")
143
- end
144
- end
145
- end
@@ -1,2 +0,0 @@
1
- # frozen_string_literal: true
2
- include YARD
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + "/spec_helper"
3
-
4
- instance_eval do
5
- class YARD::Serializers::YardocSerializer
6
- public :dump
7
- public :internal_dump
8
- end
9
- end
10
-
11
- RSpec.describe YARD::Serializers::YardocSerializer do
12
- before do
13
- @serializer = YARD::Serializers::YardocSerializer.new('.yardoc')
14
-
15
- Registry.clear
16
- @foo = CodeObjects::ClassObject.new(:root, :Foo)
17
- @bar = CodeObjects::MethodObject.new(@foo, :bar)
18
- end
19
-
20
- describe "#dump" do
21
- it "maintains object equality when loading a dumped object" do
22
- newfoo = @serializer.internal_dump(@foo)
23
- expect(newfoo).to equal(@foo)
24
- expect(newfoo).to eq @foo
25
- expect(@foo).to equal(newfoo)
26
- expect(@foo).to eq newfoo
27
- expect(newfoo.hash).to eq @foo.hash
28
- end
29
-
30
- it "maintains hash key equality when loading a dumped object" do
31
- newfoo = @serializer.internal_dump(@foo)
32
- expect(@foo => 1).to have_key(newfoo)
33
- expect(newfoo => 1).to have_key(@foo)
34
- end
35
- end
36
-
37
- describe "#serialize" do
38
- it "accepts a hash of codeobjects (and write to root)" do
39
- data = {:root => Registry.root}
40
- marshaldata = Marshal.dump(data)
41
- filemock = double(:file)
42
- expect(filemock).to receive(:write).with(marshaldata)
43
- expect(File).to receive(:open!).with('.yardoc/objects/root.dat', 'wb').and_yield(filemock)
44
- @serializer.serialize(data)
45
- end
46
- end
47
-
48
- describe "#serialized_path" do
49
- it "handles String path name" do
50
- path = @serializer.serialized_path('Path::To#object')
51
- expect(path).to eq('objects/Path/To/object_i.dat')
52
- end
53
-
54
- it "handles special encoding characters" do
55
- path = @serializer.serialized_path('object$')
56
- expect(path).to eq('objects/object_24.dat')
57
- end
58
- end
59
-
60
- describe "#lock_for_writing" do
61
- it "creates a lock file during writing and cleans up" do
62
- expect(File).to receive(:open!).with(@serializer.processing_path, 'w')
63
- expect(File).to receive(:exist?).with(@serializer.processing_path).exactly(2).times.and_return(true)
64
- expect(File).to receive(:unlink).with(@serializer.processing_path)
65
- @serializer.lock_for_writing do
66
- expect(@serializer.locked_for_writing?).to eq true
67
- end
68
- end
69
- end
70
-
71
- describe "#complete?" do
72
- it "returns false if complete file does not exist" do
73
- allow(File).to receive(:exist?).with(@serializer.complete_lock_path).and_return(false)
74
- allow(File).to receive(:exist?).with(@serializer.processing_path).and_return(false)
75
- expect(@serializer.complete?).to eq false
76
- end
77
-
78
- it "returns false if processing file exists" do
79
- allow(File).to receive(:exist?).with(@serializer.complete_lock_path).and_return(true)
80
- allow(File).to receive(:exist?).with(@serializer.processing_path).and_return(true)
81
- expect(@serializer.complete?).to eq false
82
- end
83
-
84
- it "returns true if complete file exists with no processing file" do
85
- allow(File).to receive(:exist?).with(@serializer.complete_lock_path).and_return(true)
86
- allow(File).to receive(:exist?).with(@serializer.processing_path).and_return(false)
87
- expect(@serializer.complete?).to eq true
88
- end
89
- end
90
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/spec_helper'
3
-
4
- RSpec.describe YARD::Server::Adapter do
5
- after(:all) { Server::Adapter.shutdown }
6
-
7
- describe "#add_library" do
8
- it "adds a library" do
9
- lib = LibraryVersion.new('yard')
10
- a = Adapter.new({})
11
- expect(a.libraries).to be_empty
12
- a.add_library(lib)
13
- expect(a.libraries['yard']).to eq [lib]
14
- end
15
- end
16
-
17
- describe "#start" do
18
- it "does not implement #start" do
19
- expect { Adapter.new({}).start }.to raise_error(NotImplementedError)
20
- end
21
- end
22
-
23
- describe ".setup" do
24
- it "adds template paths and helpers" do
25
- Adapter.setup
26
- expect(Templates::Template.extra_includes).to include(DocServerHelper)
27
- expect(Templates::Engine.template_paths).to include(YARD::ROOT + '/yard/server/templates')
28
- end
29
- end
30
-
31
- describe ".shutdown" do
32
- it "cleans up template paths and helpers" do
33
- Adapter.setup
34
- Adapter.shutdown
35
- expect(Templates::Template.extra_includes).not_to include(DocServerHelper)
36
- expect(Templates::Engine.template_paths).not_to include(YARD::ROOT + '/yard/server/templates')
37
- end
38
- end
39
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class MyProcCommand < Base
4
- def initialize(&block)
5
- self.class.send(:undef_method, :run)
6
- self.class.send(:define_method, :run, &block)
7
- end
8
- end
9
-
10
- class MyCacheCommand < Base
11
- def run; cache 'foo' end
12
- end
13
-
14
- RSpec.describe YARD::Server::Commands::Base do
15
- describe "#cache" do
16
- before do
17
- @command = MyCacheCommand.new(:adapter => mock_adapter, :caching => true)
18
- @command.request = mock_request(nil)
19
- end
20
-
21
- it "does not cache if caching == false" do
22
- expect(File).not_to receive(:open)
23
- @command.caching = false
24
- @command.run
25
- end
26
-
27
- it "requires document root to cache" do
28
- expect(File).not_to receive(:open)
29
- @command.adapter.document_root = nil
30
- @command.run
31
- end
32
-
33
- it "caches to path/to/file.html and create directories" do
34
- expect(FileUtils).to receive(:mkdir_p).with('/public/path/to')
35
- expect(File).to receive(:open).with('/public/path/to/file.html', anything)
36
- @command.request.path_info = '/path/to/file.html'
37
- @command.run
38
- end
39
- end
40
-
41
- describe "#redirect" do
42
- it "returns a valid redirection" do
43
- cmd = MyProcCommand.new { redirect '/foo' }
44
- expect(cmd.call(mock_request('/foo'))).to eq(
45
- [302, {"Content-Type" => "text/html", "Location" => "/foo"}, [""]]
46
- )
47
- end
48
- end
49
-
50
- describe "#call" do
51
- it "handles a NotFoundError and use message as body" do
52
- cmd = MyProcCommand.new { raise NotFoundError, "hello world" }
53
- s, _, b = *cmd.call(mock_request('/foo'))
54
- expect(s).to eq 404
55
- expect(b).to eq ["hello world"]
56
- end
57
-
58
- it "does not use message as body if not provided in NotFoundError" do
59
- cmd = MyProcCommand.new { raise NotFoundError }
60
- s, _, b = *cmd.call(mock_request('/foo'))
61
- expect(s).to eq 404
62
- expect(b).to eq ["Not found: /foo"]
63
- end
64
-
65
- it "handles 404 status code from #run" do
66
- cmd = MyProcCommand.new { self.status = 404 }
67
- s, _, b = *cmd.call(mock_request('/foo'))
68
- expect(s).to eq 404
69
- expect(b).to eq ["Not found: /foo"]
70
- end
71
-
72
- it "does not override body if status is 404 and body is defined" do
73
- cmd = MyProcCommand.new { self.body = "foo"; self.status = 404 }
74
- s, _, b = *cmd.call(mock_request('/bar'))
75
- expect(s).to eq 404
76
- expect(b).to eq ['foo']
77
- end
78
-
79
- it "handles body as Array" do
80
- cmd = MyProcCommand.new { self.body = ['a', 'b', 'c'] }
81
- _, _, b = *cmd.call(mock_request('/foo'))
82
- expect(b).to eq %w(a b c)
83
- end
84
-
85
- it "allows headers to be defined" do
86
- cmd = MyProcCommand.new { headers['Foo'] = 'BAR' }
87
- _, h, = *cmd.call(mock_request('/foo'))
88
- expect(h['Foo']).to eq 'BAR'
89
- end
90
- end
91
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'ostruct'
3
-
4
- RSpec.describe YARD::Server::Commands::LibraryCommand do
5
- before do
6
- allow(Templates::Engine).to receive(:render)
7
- allow(Templates::Engine).to receive(:generate)
8
- allow(YARD).to receive(:parse)
9
- allow(Registry).to receive(:load)
10
- allow(Registry).to receive(:save)
11
-
12
- @cmd = LibraryCommand.new(:adapter => mock_adapter)
13
- @request = mock_request("/foo", :xhr? => false)
14
- @library = OpenStruct.new(:source_path => '.')
15
- @cmd.library = @library
16
- allow(@cmd).to receive(:load_yardoc).and_return(nil)
17
- end
18
-
19
- def call
20
- expect { @cmd.call(@request) }.to raise_error(NotImplementedError)
21
- end
22
-
23
- describe "#call" do
24
- it "raises NotImplementedError" do
25
- call
26
- end
27
-
28
- it "sets :rdoc as the default markup in incremental mode" do
29
- @cmd.incremental = true
30
- call
31
- expect(@cmd.options[:markup]).to eq :rdoc
32
- end
33
-
34
- it "sets :rdoc as the default markup in regular mode" do
35
- call
36
- expect(@cmd.options[:markup]).to eq :rdoc
37
- end
38
- end
39
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + "/spec_helper"
3
-
4
- class MyDocServerSerializerRouter
5
- attr_accessor :request
6
- def docs_prefix; 'PREFIX' end
7
- def initialize; @request = mock_request end
8
- end
9
-
10
- class MockDocServerHelper
11
- include YARD::Templates::Helpers::BaseHelper
12
- include YARD::Templates::Helpers::HtmlHelper
13
- include YARD::Server::DocServerHelper
14
-
15
- attr_accessor :adapter
16
- attr_accessor :single_library
17
- attr_accessor :library
18
-
19
- def initialize
20
- @single_library = false
21
- @library = LibraryVersion.new('foo')
22
- @adapter = mock_adapter(:router => MyDocServerSerializerRouter.new)
23
- @serializer = YARD::Server::DocServerSerializer.new
24
- @object = YARD::Registry.root
25
- end
26
-
27
- def options; OpenStruct.new end
28
- end
29
-
30
- RSpec.describe YARD::Server::DocServerHelper do
31
- before do
32
- @helper = MockDocServerHelper.new
33
- end
34
-
35
- describe "#url_for" do
36
- it "does not link to /library/ if single_library = true" do
37
- @helper.single_library = true
38
- expect(@helper.url_for(Registry.root)).to eq "/PREFIX/toplevel"
39
- end
40
-
41
- it "returns /PREFIX/foo/version if foo has a version" do
42
- @helper.library = LibraryVersion.new('foo', 'bar')
43
- @helper.adapter.router.request.version_supplied = true
44
- expect(@helper.url_for(P('A'))).to eq '/PREFIX/foo/bar/A'
45
- end
46
-
47
- it "uses script name prefix if set" do
48
- @helper.adapter.router.request.script_name = '/mount/point'
49
- @helper.library = LibraryVersion.new('foo', 'bar')
50
- @helper.adapter.router.request.version_supplied = true
51
- expect(@helper.url_for(P('A'))).to eq '/mount/point/PREFIX/foo/bar/A'
52
- end
53
- end
54
-
55
- describe "#url_for_file" do
56
- it "properly links file objects using file/ prefix" do
57
- file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
58
- expect(@helper.url_for_file(file)).to eq '/PREFIX/foo/file/a/b/FooBar.md'
59
- end
60
-
61
- it "properly links anchor portion" do
62
- file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
63
- expect(@helper.url_for_file(file, 'anchor')).to eq '/PREFIX/foo/file/a/b/FooBar.md#anchor'
64
- end
65
-
66
- it "uses script name prefix if set" do
67
- @helper.adapter.router.request.script_name = '/mount/point'
68
- file = CodeObjects::ExtraFileObject.new('a/b/FooBar.md', '')
69
- expect(@helper.url_for_file(file)).to eq '/mount/point/PREFIX/foo/file/a/b/FooBar.md'
70
- end
71
- end
72
- end