yard 0.9.23 → 0.9.27

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

Potentially problematic release.


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

Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +0 -0
  3. data/.gitattributes +4 -0
  4. data/.github/FUNDING.yml +3 -0
  5. data/.github/ISSUE_TEMPLATE.md +6 -6
  6. data/.github/PULL_REQUEST_TEMPLATE.md +5 -5
  7. data/.github/workflows/ci.yml +30 -0
  8. data/.github/workflows/gem.yml +19 -0
  9. data/.gitignore +0 -0
  10. data/.rspec +0 -0
  11. data/.rubocop.yml +37 -24
  12. data/.yardopts +0 -0
  13. data/.yardopts_guide +0 -0
  14. data/.yardopts_i18n +0 -0
  15. data/CHANGELOG.md +50 -4
  16. data/CONTRIBUTING.md +2 -2
  17. data/Gemfile +5 -3
  18. data/README.md +97 -102
  19. data/Rakefile +2 -3
  20. data/lib/yard/cli/diff.rb +4 -1
  21. data/lib/yard/cli/server.rb +22 -13
  22. data/lib/yard/cli/stats.rb +2 -0
  23. data/lib/yard/cli/yardoc.rb +2 -1
  24. data/lib/yard/code_objects/method_object.rb +1 -1
  25. data/lib/yard/code_objects/namespace_mapper.rb +30 -3
  26. data/lib/yard/code_objects/proxy.rb +2 -1
  27. data/lib/yard/globals.rb +1 -1
  28. data/lib/yard/handlers/c/base.rb +35 -0
  29. data/lib/yard/handlers/ruby/method_handler.rb +1 -1
  30. data/lib/yard/handlers/ruby/mixin_handler.rb +7 -2
  31. data/lib/yard/handlers/ruby/module_function_handler.rb +15 -3
  32. data/lib/yard/parser/ruby/ast_node.rb +2 -2
  33. data/lib/yard/parser/ruby/ruby_parser.rb +7 -5
  34. data/lib/yard/parser/ruby/token_resolver.rb +3 -1
  35. data/lib/yard/parser/source_parser.rb +1 -1
  36. data/lib/yard/registry_resolver.rb +10 -24
  37. data/lib/yard/registry_store.rb +1 -1
  38. data/lib/yard/serializers/yardoc_serializer.rb +1 -1
  39. data/lib/yard/server/commands/base.rb +2 -2
  40. data/lib/yard/server/commands/library_command.rb +1 -1
  41. data/lib/yard/tags/directives.rb +10 -1
  42. data/lib/yard/templates/helpers/html_helper.rb +15 -5
  43. data/lib/yard/templates/helpers/markup/rdoc_markup.rb +5 -4
  44. data/lib/yard/templates/helpers/markup_helper.rb +2 -1
  45. data/lib/yard/templates/section.rb +1 -3
  46. data/lib/yard/version.rb +1 -1
  47. data/lib/yard.rb +3 -0
  48. data/samus.json +15 -46
  49. data/tasks/prepare_tag.rake +45 -0
  50. data/tasks/update_error_map.rake +53 -0
  51. data/templates/default/fulldoc/html/css/style.css +1 -0
  52. data/yard.gemspec +3 -2
  53. metadata +23 -207
  54. data/.travis.yml +0 -52
  55. data/spec/cli/command_parser_spec.rb +0 -43
  56. data/spec/cli/command_spec.rb +0 -36
  57. data/spec/cli/config_spec.rb +0 -148
  58. data/spec/cli/diff_spec.rb +0 -254
  59. data/spec/cli/display_spec.rb +0 -30
  60. data/spec/cli/gems_spec.rb +0 -81
  61. data/spec/cli/graph_spec.rb +0 -18
  62. data/spec/cli/help_spec.rb +0 -22
  63. data/spec/cli/i18n_spec.rb +0 -107
  64. data/spec/cli/list_spec.rb +0 -8
  65. data/spec/cli/markup_types_spec.rb +0 -22
  66. data/spec/cli/server_spec.rb +0 -324
  67. data/spec/cli/stats_spec.rb +0 -96
  68. data/spec/cli/yard_on_yard_spec.rb +0 -38
  69. data/spec/cli/yardoc_spec.rb +0 -896
  70. data/spec/cli/yri_spec.rb +0 -101
  71. data/spec/code_objects/base_spec.rb +0 -485
  72. data/spec/code_objects/class_object_spec.rb +0 -226
  73. data/spec/code_objects/code_object_list_spec.rb +0 -36
  74. data/spec/code_objects/constants_spec.rb +0 -116
  75. data/spec/code_objects/extra_file_object_spec.rb +0 -161
  76. data/spec/code_objects/macro_object_spec.rb +0 -150
  77. data/spec/code_objects/method_object_spec.rb +0 -184
  78. data/spec/code_objects/module_object_spec.rb +0 -142
  79. data/spec/code_objects/namespace_object_spec.rb +0 -171
  80. data/spec/code_objects/proxy_spec.rb +0 -147
  81. data/spec/code_objects/spec_helper.rb +0 -3
  82. data/spec/config_spec.rb +0 -171
  83. data/spec/core_ext/array_spec.rb +0 -13
  84. data/spec/core_ext/file_spec.rb +0 -72
  85. data/spec/core_ext/hash_spec.rb +0 -14
  86. data/spec/core_ext/insertion_spec.rb +0 -37
  87. data/spec/core_ext/module_spec.rb +0 -9
  88. data/spec/core_ext/string_spec.rb +0 -42
  89. data/spec/core_ext/symbol_hash_spec.rb +0 -89
  90. data/spec/docstring_parser_spec.rb +0 -280
  91. data/spec/docstring_spec.rb +0 -373
  92. data/spec/handlers/alias_handler_spec.rb +0 -82
  93. data/spec/handlers/attribute_handler_spec.rb +0 -96
  94. data/spec/handlers/base_spec.rb +0 -216
  95. data/spec/handlers/c/alias_handler_spec.rb +0 -34
  96. data/spec/handlers/c/attribute_handler_spec.rb +0 -41
  97. data/spec/handlers/c/class_handler_spec.rb +0 -78
  98. data/spec/handlers/c/constant_handler_spec.rb +0 -71
  99. data/spec/handlers/c/init_handler_spec.rb +0 -48
  100. data/spec/handlers/c/method_handler_spec.rb +0 -327
  101. data/spec/handlers/c/mixin_handler_spec.rb +0 -44
  102. data/spec/handlers/c/module_handler_spec.rb +0 -71
  103. data/spec/handlers/c/override_comment_handler_spec.rb +0 -47
  104. data/spec/handlers/c/path_handler_spec.rb +0 -36
  105. data/spec/handlers/c/spec_helper.rb +0 -23
  106. data/spec/handlers/c/struct_handler_spec.rb +0 -16
  107. data/spec/handlers/class_condition_handler_spec.rb +0 -87
  108. data/spec/handlers/class_handler_spec.rb +0 -247
  109. data/spec/handlers/class_method_handler_shared_examples.rb +0 -133
  110. data/spec/handlers/class_variable_handler_spec.rb +0 -12
  111. data/spec/handlers/constant_handler_spec.rb +0 -112
  112. data/spec/handlers/decorator_handler_methods_spec.rb +0 -393
  113. data/spec/handlers/dsl_handler_spec.rb +0 -226
  114. data/spec/handlers/examples/alias_handler_001.rb.txt +0 -46
  115. data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -32
  116. data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -69
  117. data/spec/handlers/examples/class_handler_001.rb.txt +0 -120
  118. data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -10
  119. data/spec/handlers/examples/constant_handler_001.rb.txt +0 -35
  120. data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -156
  121. data/spec/handlers/examples/exception_handler_001.rb.txt +0 -59
  122. data/spec/handlers/examples/extend_handler_001.rb.txt +0 -19
  123. data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -10
  124. data/spec/handlers/examples/method_handler_001.rb.txt +0 -128
  125. data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -40
  126. data/spec/handlers/examples/module_handler_001.rb.txt +0 -29
  127. data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -8
  128. data/spec/handlers/examples/process_handler_001.rb.txt +0 -11
  129. data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -36
  130. data/spec/handlers/examples/yield_handler_001.rb.txt +0 -54
  131. data/spec/handlers/exception_handler_spec.rb +0 -49
  132. data/spec/handlers/extend_handler_spec.rb +0 -28
  133. data/spec/handlers/legacy_base_spec.rb +0 -128
  134. data/spec/handlers/method_condition_handler_spec.rb +0 -15
  135. data/spec/handlers/method_handler_spec.rb +0 -214
  136. data/spec/handlers/mixin_handler_spec.rb +0 -60
  137. data/spec/handlers/module_function_handler_spec.rb +0 -106
  138. data/spec/handlers/module_handler_spec.rb +0 -35
  139. data/spec/handlers/private_class_method_handler_spec.rb +0 -11
  140. data/spec/handlers/private_constant_handler_spec.rb +0 -25
  141. data/spec/handlers/processor_spec.rb +0 -35
  142. data/spec/handlers/public_class_method_handler_spec.rb +0 -11
  143. data/spec/handlers/ruby/base_spec.rb +0 -95
  144. data/spec/handlers/ruby/legacy/base_spec.rb +0 -84
  145. data/spec/handlers/spec_helper.rb +0 -33
  146. data/spec/handlers/visibility_handler_spec.rb +0 -44
  147. data/spec/handlers/yield_handler_spec.rb +0 -52
  148. data/spec/i18n/locale_spec.rb +0 -81
  149. data/spec/i18n/message_spec.rb +0 -52
  150. data/spec/i18n/messages_spec.rb +0 -67
  151. data/spec/i18n/pot_generator_spec.rb +0 -295
  152. data/spec/i18n/text_spec.rb +0 -184
  153. data/spec/logging_spec.rb +0 -44
  154. data/spec/options_spec.rb +0 -171
  155. data/spec/parser/base_spec.rb +0 -24
  156. data/spec/parser/c_parser_spec.rb +0 -236
  157. data/spec/parser/examples/array.c.txt +0 -6267
  158. data/spec/parser/examples/example1.rb.txt +0 -8
  159. data/spec/parser/examples/extrafile.c.txt +0 -8
  160. data/spec/parser/examples/file.c.txt +0 -28
  161. data/spec/parser/examples/multifile.c.txt +0 -22
  162. data/spec/parser/examples/namespace.cpp.txt +0 -68
  163. data/spec/parser/examples/override.c.txt +0 -424
  164. data/spec/parser/examples/parse_in_order_001.rb.txt +0 -2
  165. data/spec/parser/examples/parse_in_order_002.rb.txt +0 -2
  166. data/spec/parser/examples/tag_handler_001.rb.txt +0 -8
  167. data/spec/parser/ruby/ast_node_spec.rb +0 -33
  168. data/spec/parser/ruby/legacy/statement_list_spec.rb +0 -299
  169. data/spec/parser/ruby/legacy/token_list_spec.rb +0 -79
  170. data/spec/parser/ruby/ruby_parser_spec.rb +0 -508
  171. data/spec/parser/ruby/token_resolver_spec.rb +0 -165
  172. data/spec/parser/source_parser_spec.rb +0 -727
  173. data/spec/parser/tag_parsing_spec.rb +0 -17
  174. data/spec/rake/yardoc_task_spec.rb +0 -118
  175. data/spec/registry_spec.rb +0 -463
  176. data/spec/registry_store_spec.rb +0 -327
  177. data/spec/rubygems/doc_manager_spec.rb +0 -112
  178. data/spec/serializers/data/serialized_yardoc/checksums +0 -1
  179. data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  180. data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  181. data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  182. data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  183. data/spec/serializers/data/serialized_yardoc/proxy_types +0 -2
  184. data/spec/serializers/file_system_serializer_spec.rb +0 -145
  185. data/spec/serializers/spec_helper.rb +0 -2
  186. data/spec/serializers/yardoc_serializer_spec.rb +0 -78
  187. data/spec/server/adapter_spec.rb +0 -39
  188. data/spec/server/commands/base_spec.rb +0 -91
  189. data/spec/server/commands/library_command_spec.rb +0 -39
  190. data/spec/server/doc_server_helper_spec.rb +0 -72
  191. data/spec/server/doc_server_serializer_spec.rb +0 -60
  192. data/spec/server/rack_adapter_spec.rb +0 -21
  193. data/spec/server/router_spec.rb +0 -123
  194. data/spec/server/spec_helper.rb +0 -22
  195. data/spec/server/static_caching_spec.rb +0 -47
  196. data/spec/server/webrick_servlet_spec.rb +0 -20
  197. data/spec/server_spec.rb +0 -19
  198. data/spec/spec_helper.rb +0 -212
  199. data/spec/tags/default_factory_spec.rb +0 -168
  200. data/spec/tags/default_tag_spec.rb +0 -11
  201. data/spec/tags/directives_spec.rb +0 -463
  202. data/spec/tags/library_spec.rb +0 -48
  203. data/spec/tags/overload_tag_spec.rb +0 -53
  204. data/spec/tags/ref_tag_list_spec.rb +0 -53
  205. data/spec/tags/types_explainer_spec.rb +0 -203
  206. data/spec/templates/class_spec.rb +0 -45
  207. data/spec/templates/constant_spec.rb +0 -41
  208. data/spec/templates/engine_spec.rb +0 -131
  209. data/spec/templates/examples/class001.html +0 -308
  210. data/spec/templates/examples/class001.txt +0 -36
  211. data/spec/templates/examples/class002.html +0 -39
  212. data/spec/templates/examples/constant001.txt +0 -25
  213. data/spec/templates/examples/constant002.txt +0 -7
  214. data/spec/templates/examples/constant003.txt +0 -11
  215. data/spec/templates/examples/method001.html +0 -137
  216. data/spec/templates/examples/method001.txt +0 -35
  217. data/spec/templates/examples/method002.html +0 -91
  218. data/spec/templates/examples/method002.txt +0 -20
  219. data/spec/templates/examples/method003.html +0 -165
  220. data/spec/templates/examples/method003.txt +0 -45
  221. data/spec/templates/examples/method004.html +0 -48
  222. data/spec/templates/examples/method004.txt +0 -10
  223. data/spec/templates/examples/method005.html +0 -105
  224. data/spec/templates/examples/method005.txt +0 -33
  225. data/spec/templates/examples/method006.html +0 -108
  226. data/spec/templates/examples/method006.txt +0 -20
  227. data/spec/templates/examples/module001.dot +0 -33
  228. data/spec/templates/examples/module001.html +0 -833
  229. data/spec/templates/examples/module001.txt +0 -33
  230. data/spec/templates/examples/module002.html +0 -341
  231. data/spec/templates/examples/module003.html +0 -202
  232. data/spec/templates/examples/module004.html +0 -394
  233. data/spec/templates/examples/module005.html +0 -82
  234. data/spec/templates/examples/tag001.txt +0 -82
  235. data/spec/templates/helpers/base_helper_spec.rb +0 -171
  236. data/spec/templates/helpers/html_helper_spec.rb +0 -687
  237. data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +0 -65
  238. data/spec/templates/helpers/markup/rdoc_markup_spec.rb +0 -84
  239. data/spec/templates/helpers/markup_helper_spec.rb +0 -136
  240. data/spec/templates/helpers/method_helper_spec.rb +0 -107
  241. data/spec/templates/helpers/module_helper_spec.rb +0 -35
  242. data/spec/templates/helpers/shared_signature_examples.rb +0 -126
  243. data/spec/templates/helpers/text_helper_spec.rb +0 -65
  244. data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +0 -60
  245. data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +0 -46
  246. data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +0 -59
  247. data/spec/templates/markup_processor_integrations/rdoc_spec.rb +0 -39
  248. data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +0 -59
  249. data/spec/templates/markup_processor_integrations/redcloth_spec.rb +0 -48
  250. data/spec/templates/method_spec.rb +0 -118
  251. data/spec/templates/module_spec.rb +0 -203
  252. data/spec/templates/onefile_spec.rb +0 -66
  253. data/spec/templates/section_spec.rb +0 -144
  254. data/spec/templates/spec_helper.rb +0 -76
  255. data/spec/templates/tag_spec.rb +0 -52
  256. data/spec/templates/template_spec.rb +0 -410
  257. data/spec/verifier_spec.rb +0 -106
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Parser::Base do
4
- describe "#initialize" do
5
- class MyParser < Parser::Base; def initialize(a, b) end end
6
-
7
- it "takes 2 arguments" do
8
- expect { YARD::Parser::Base.new }.to raise_error(ArgumentError,
9
- /wrong (number|#) of arguments|given 0, expected 2/)
10
- end
11
-
12
- it "raises NotImplementedError on #initialize" do
13
- expect { YARD::Parser::Base.new('a', 'b') }.to raise_error(NotImplementedError)
14
- end
15
-
16
- it "raises NotImplementedError on #parse" do
17
- expect { MyParser.new('a', 'b').parse }.to raise_error(NotImplementedError)
18
- end
19
-
20
- it "raises NotImplementedError on #tokenize" do
21
- expect { MyParser.new('a', 'b').tokenize }.to raise_error(NotImplementedError)
22
- end
23
- end
24
- end
@@ -1,236 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe YARD::Parser::C::CParser do
4
- describe "#parse" do
5
- def parse(contents)
6
- Registry.clear
7
- YARD.parse_string(contents, :c)
8
- end
9
-
10
- describe "Array class" do
11
- before(:all) do
12
- file = File.join(File.dirname(__FILE__), 'examples', 'array.c.txt')
13
- parse(File.read(file))
14
- end
15
-
16
- it "parses Array class" do
17
- obj = YARD::Registry.at('Array')
18
- expect(obj).not_to be nil
19
- expect(obj.docstring).not_to be_blank
20
- end
21
-
22
- it "parses method" do
23
- obj = YARD::Registry.at('Array#initialize')
24
- expect(obj.docstring).not_to be_blank
25
- expect(obj.tags(:overload).size).to be > 1
26
- end
27
-
28
- it "parses new_ary return type" do
29
- obj = YARD::Registry.at('Array#map')
30
- expect(obj.tags(:overload).count do |overload|
31
- overload.tag(:return) && overload.tag(:return).types == ['Enumerator']
32
- end).to eq 2
33
- expect(obj.tags(:overload).count do |overload|
34
- overload.tag(:return) && overload.tag(:return).types == ['Array']
35
- end).to eq 2
36
- end
37
- end
38
-
39
- describe "C++ namespace" do
40
- before(:all) do
41
- file = File.join(File.dirname(__FILE__), 'examples', 'namespace.cpp.txt')
42
- parse(File.read(file))
43
- end
44
-
45
- it "parses Rect class" do
46
- obj = YARD::Registry.at('Rect')
47
- expect(obj).not_to be nil
48
- expect(obj.docstring).not_to be_blank
49
- end
50
-
51
- it "parses method inside of namespace" do
52
- obj = YARD::Registry.at('Rect#inspect')
53
- expect(obj.docstring).not_to be_blank
54
- end
55
-
56
- it "parses method after namespace" do
57
- obj = YARD::Registry.at('Rect#hello_world')
58
- expect(obj.docstring).not_to be_blank
59
- end
60
- end
61
-
62
- describe "Source located in extra files" do
63
- before(:all) do
64
- @multifile = File.join(File.dirname(__FILE__), 'examples', 'multifile.c.txt')
65
- @extrafile = File.join(File.dirname(__FILE__), 'examples', 'extrafile.c.txt')
66
- @contents = File.read(@multifile)
67
- end
68
-
69
- it "looks for methods in extra files (if 'in' comment is found)" do
70
- extra_contents = File.read(@extrafile)
71
- expect(File).to receive(:read).with('extra.c').and_return(extra_contents)
72
- parse(@contents)
73
- expect(Registry.at('Multifile#extra').docstring).to eq 'foo'
74
- end
75
-
76
- it "stops searching for extra source file gracefully if file is not found" do
77
- expect(File).to receive(:read).with('extra.c').and_raise(Errno::ENOENT)
78
- expect(log).to receive(:warn).with("Missing source file `extra.c' when parsing Multifile#extra")
79
- parse(@contents)
80
- expect(Registry.at('Multifile#extra').docstring).to eq ''
81
- end
82
-
83
- it "differentiates between a struct and a pointer to a struct retval" do
84
- parse(@contents)
85
- expect(Registry.at('Multifile#hello_mars').docstring).to eq 'Hello Mars'
86
- end
87
- end
88
-
89
- describe "Foo class" do
90
- it "does not include comments in docstring source" do
91
- parse <<-eof
92
- /*
93
- * Hello world
94
- */
95
- VALUE foo(VALUE x) {
96
- int value = x;
97
- }
98
-
99
- void Init_Foo() {
100
- rb_define_method(rb_cFoo, "foo", foo, 1);
101
- }
102
- eof
103
- expect(Registry.at('Foo#foo').source.gsub(/\s\s+/, ' ')).to eq(
104
- "VALUE foo(VALUE x) { int value = x;\n}"
105
- )
106
- end
107
- end
108
-
109
- describe "Constant" do
110
- it "does not truncate docstring" do
111
- parse <<-eof
112
- #define MSK_DEADBEEF 0xdeadbeef
113
- void
114
- Init_Mask(void)
115
- {
116
- rb_cMask = rb_define_class("Mask", rb_cObject);
117
- /* 0xdeadbeef: This constant is frequently used to indicate a
118
- * software crash or deadlock in embedded systems. */
119
- rb_define_const(rb_cMask, "DEADBEEF", INT2FIX(MSK_DEADBEEF));
120
- }
121
- eof
122
- constant = Registry.at('Mask::DEADBEEF')
123
- expect(constant.value).to eq '0xdeadbeef'
124
- expect(constant.docstring).to eq "This constant is frequently used to indicate a\nsoftware crash or deadlock in embedded systems."
125
- end
126
- end
127
-
128
- describe "Macros" do
129
- it "handles param## inside of macros" do
130
- thr = Thread.new do
131
- parse <<-eof
132
- void
133
- Init_gobject_gparamspecs(void)
134
- {
135
- VALUE cParamSpec = GTYPE2CLASS(G_TYPE_PARAM);
136
- VALUE c;
137
-
138
- #define DEF_NUMERIC_PSPEC_METHODS(c, typename) \
139
- G_STMT_START {\
140
- rbg_define_method(c, "initialize", typename##_initialize, 7); \
141
- rbg_define_method(c, "minimum", typename##_minimum, 0); \
142
- rbg_define_method(c, "maximum", typename##_maximum, 0); \
143
- rbg_define_method(c, "range", typename##_range, 0); \
144
- } G_STMT_END
145
-
146
- #if 0
147
- rbg_define_method(c, "default_value", typename##_default_value, 0); \
148
- rb_define_alias(c, "default", "default_value"); \
149
-
150
- #endif
151
-
152
- c = G_DEF_CLASS(G_TYPE_PARAM_CHAR, "Char", cParamSpec);
153
- DEF_NUMERIC_PSPEC_METHODS(c, char);
154
- eof
155
- end
156
- thr.join(5)
157
- if thr.alive?
158
- thr.kill
159
- raise "Did not parse in time"
160
- end
161
- end
162
- end
163
-
164
- describe "C macros in declaration" do
165
- it "handles C macros in method declaration" do
166
- Registry.clear
167
- parse <<-eof
168
- // docstring
169
- FOOBAR VALUE func() { }
170
-
171
- void
172
- Init_mod(void)
173
- {
174
- rb_define_method(rb_cFoo, "func", func, 0); \
175
- }
176
- eof
177
-
178
- expect(Registry.at('Foo#func').docstring).to eq "docstring"
179
- end
180
- end
181
-
182
- describe "File singleton methods" do
183
- before(:all) do
184
- file = File.join(File.dirname(__FILE__), 'examples', 'file.c.txt')
185
- parse(File.read(file))
186
- end
187
-
188
- it "parses methods from define_filetest_function" do
189
- obj = YARD::Registry.at('File.exist?')
190
- expect(obj).not_to be nil
191
- expect(obj.docstring).not_to be_blank
192
- end
193
- end
194
- end
195
-
196
- describe "Override comments" do
197
- before(:all) do
198
- Registry.clear
199
- override_file = File.join(File.dirname(__FILE__), 'examples', 'override.c.txt')
200
- @override_parser = YARD.parse_string(File.read(override_file), :c)
201
- end
202
-
203
- it "parses GMP::Z class" do
204
- z = YARD::Registry.at('GMP::Z')
205
- expect(z).not_to be nil
206
- expect(z.docstring).not_to be_blank
207
- end
208
-
209
- it "parses GMP::Z methods w/ bodies" do
210
- add = YARD::Registry.at('GMP::Z#+')
211
- expect(add.docstring).not_to be_blank
212
- expect(add.source).not_to be nil
213
- expect(add.source).not_to be_empty
214
-
215
- add_self = YARD::Registry.at('GMP::Z#+')
216
- expect(add_self.docstring).not_to be_blank
217
- expect(add_self.source).not_to be nil
218
- expect(add_self.source).not_to be_empty
219
-
220
- sqrtrem = YARD::Registry.at('GMP::Z#+')
221
- expect(sqrtrem.docstring).not_to be_blank
222
- expect(sqrtrem.source).not_to be nil
223
- expect(sqrtrem.source).not_to be_empty
224
- end
225
-
226
- it "parses GMP::Z methods w/o bodies" do
227
- neg = YARD::Registry.at('GMP::Z#neg')
228
- expect(neg.docstring).not_to be_blank
229
- expect(neg.source).to be nil
230
-
231
- neg_self = YARD::Registry.at('GMP::Z#neg')
232
- expect(neg_self.docstring).not_to be_blank
233
- expect(neg_self.source).to be nil
234
- end
235
- end
236
- end