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.
- checksums.yaml +4 -4
- data/.rubocop.yml +37 -24
- data/CHANGELOG.md +18 -3
- data/README.md +96 -101
- data/Rakefile +2 -0
- data/lib/yard/cli/diff.rb +4 -1
- data/lib/yard/cli/server.rb +22 -13
- data/lib/yard/code_objects/proxy.rb +2 -1
- data/lib/yard/globals.rb +1 -1
- data/lib/yard/handlers/c/base.rb +164 -129
- data/lib/yard/parser/ruby/ruby_parser.rb +6 -4
- data/lib/yard/registry_store.rb +1 -1
- data/lib/yard/templates/helpers/html_helper.rb +10 -3
- data/lib/yard/templates/helpers/markup/rdoc_markup.rb +5 -4
- data/lib/yard/version.rb +1 -1
- data/tasks/update_error_map.rake +53 -0
- data/yard.gemspec +1 -1
- metadata +3 -207
- data/spec/cli/command_parser_spec.rb +0 -43
- data/spec/cli/command_spec.rb +0 -36
- data/spec/cli/config_spec.rb +0 -148
- data/spec/cli/diff_spec.rb +0 -254
- data/spec/cli/display_spec.rb +0 -30
- data/spec/cli/gems_spec.rb +0 -81
- data/spec/cli/graph_spec.rb +0 -18
- data/spec/cli/help_spec.rb +0 -22
- data/spec/cli/i18n_spec.rb +0 -107
- data/spec/cli/list_spec.rb +0 -8
- data/spec/cli/markup_types_spec.rb +0 -22
- data/spec/cli/server_spec.rb +0 -324
- data/spec/cli/stats_spec.rb +0 -96
- data/spec/cli/yard_on_yard_spec.rb +0 -38
- data/spec/cli/yardoc_spec.rb +0 -896
- data/spec/cli/yri_spec.rb +0 -101
- data/spec/code_objects/base_spec.rb +0 -485
- data/spec/code_objects/class_object_spec.rb +0 -226
- data/spec/code_objects/code_object_list_spec.rb +0 -36
- data/spec/code_objects/constants_spec.rb +0 -116
- data/spec/code_objects/extra_file_object_spec.rb +0 -161
- data/spec/code_objects/macro_object_spec.rb +0 -150
- data/spec/code_objects/method_object_spec.rb +0 -184
- data/spec/code_objects/module_object_spec.rb +0 -142
- data/spec/code_objects/namespace_mapper_spec.rb +0 -32
- data/spec/code_objects/namespace_object_spec.rb +0 -171
- data/spec/code_objects/proxy_spec.rb +0 -147
- data/spec/code_objects/spec_helper.rb +0 -3
- data/spec/config_spec.rb +0 -171
- data/spec/core_ext/array_spec.rb +0 -13
- data/spec/core_ext/file_spec.rb +0 -72
- data/spec/core_ext/hash_spec.rb +0 -14
- data/spec/core_ext/insertion_spec.rb +0 -37
- data/spec/core_ext/module_spec.rb +0 -9
- data/spec/core_ext/string_spec.rb +0 -42
- data/spec/core_ext/symbol_hash_spec.rb +0 -89
- data/spec/docstring_parser_spec.rb +0 -280
- data/spec/docstring_spec.rb +0 -373
- data/spec/handlers/alias_handler_spec.rb +0 -82
- data/spec/handlers/attribute_handler_spec.rb +0 -96
- data/spec/handlers/base_spec.rb +0 -216
- data/spec/handlers/c/alias_handler_spec.rb +0 -34
- data/spec/handlers/c/attribute_handler_spec.rb +0 -41
- data/spec/handlers/c/class_handler_spec.rb +0 -78
- data/spec/handlers/c/constant_handler_spec.rb +0 -71
- data/spec/handlers/c/init_handler_spec.rb +0 -48
- data/spec/handlers/c/method_handler_spec.rb +0 -327
- data/spec/handlers/c/mixin_handler_spec.rb +0 -44
- data/spec/handlers/c/module_handler_spec.rb +0 -71
- data/spec/handlers/c/override_comment_handler_spec.rb +0 -47
- data/spec/handlers/c/path_handler_spec.rb +0 -36
- data/spec/handlers/c/spec_helper.rb +0 -23
- data/spec/handlers/c/struct_handler_spec.rb +0 -16
- data/spec/handlers/class_condition_handler_spec.rb +0 -87
- data/spec/handlers/class_handler_spec.rb +0 -247
- data/spec/handlers/class_method_handler_shared_examples.rb +0 -133
- data/spec/handlers/class_variable_handler_spec.rb +0 -12
- data/spec/handlers/constant_handler_spec.rb +0 -112
- data/spec/handlers/decorator_handler_methods_spec.rb +0 -393
- data/spec/handlers/dsl_handler_spec.rb +0 -226
- data/spec/handlers/examples/alias_handler_001.rb.txt +0 -46
- data/spec/handlers/examples/attribute_handler_001.rb.txt +0 -32
- data/spec/handlers/examples/class_condition_handler_001.rb.txt +0 -69
- data/spec/handlers/examples/class_handler_001.rb.txt +0 -120
- data/spec/handlers/examples/class_variable_handler_001.rb.txt +0 -10
- data/spec/handlers/examples/constant_handler_001.rb.txt +0 -35
- data/spec/handlers/examples/dsl_handler_001.rb.txt +0 -156
- data/spec/handlers/examples/exception_handler_001.rb.txt +0 -59
- data/spec/handlers/examples/extend_handler_001.rb.txt +0 -19
- data/spec/handlers/examples/method_condition_handler_001.rb.txt +0 -10
- data/spec/handlers/examples/method_handler_001.rb.txt +0 -128
- data/spec/handlers/examples/mixin_handler_001.rb.txt +0 -40
- data/spec/handlers/examples/module_handler_001.rb.txt +0 -29
- data/spec/handlers/examples/private_constant_handler_001.rb.txt +0 -8
- data/spec/handlers/examples/process_handler_001.rb.txt +0 -11
- data/spec/handlers/examples/visibility_handler_001.rb.txt +0 -36
- data/spec/handlers/examples/yield_handler_001.rb.txt +0 -54
- data/spec/handlers/exception_handler_spec.rb +0 -49
- data/spec/handlers/extend_handler_spec.rb +0 -28
- data/spec/handlers/legacy_base_spec.rb +0 -128
- data/spec/handlers/method_condition_handler_spec.rb +0 -15
- data/spec/handlers/method_handler_spec.rb +0 -214
- data/spec/handlers/mixin_handler_spec.rb +0 -60
- data/spec/handlers/module_function_handler_spec.rb +0 -106
- data/spec/handlers/module_handler_spec.rb +0 -35
- data/spec/handlers/private_class_method_handler_spec.rb +0 -11
- data/spec/handlers/private_constant_handler_spec.rb +0 -25
- data/spec/handlers/processor_spec.rb +0 -35
- data/spec/handlers/public_class_method_handler_spec.rb +0 -11
- data/spec/handlers/ruby/base_spec.rb +0 -95
- data/spec/handlers/ruby/legacy/base_spec.rb +0 -84
- data/spec/handlers/spec_helper.rb +0 -33
- data/spec/handlers/visibility_handler_spec.rb +0 -44
- data/spec/handlers/yield_handler_spec.rb +0 -52
- data/spec/i18n/locale_spec.rb +0 -81
- data/spec/i18n/message_spec.rb +0 -52
- data/spec/i18n/messages_spec.rb +0 -67
- data/spec/i18n/pot_generator_spec.rb +0 -295
- data/spec/i18n/text_spec.rb +0 -184
- data/spec/logging_spec.rb +0 -44
- data/spec/options_spec.rb +0 -171
- data/spec/parser/base_spec.rb +0 -24
- data/spec/parser/c_parser_spec.rb +0 -236
- data/spec/parser/examples/array.c.txt +0 -6267
- data/spec/parser/examples/example1.rb.txt +0 -8
- data/spec/parser/examples/extrafile.c.txt +0 -8
- data/spec/parser/examples/file.c.txt +0 -28
- data/spec/parser/examples/multifile.c.txt +0 -22
- data/spec/parser/examples/namespace.cpp.txt +0 -68
- data/spec/parser/examples/override.c.txt +0 -424
- data/spec/parser/examples/parse_in_order_001.rb.txt +0 -2
- data/spec/parser/examples/parse_in_order_002.rb.txt +0 -2
- data/spec/parser/examples/tag_handler_001.rb.txt +0 -8
- data/spec/parser/ruby/ast_node_spec.rb +0 -33
- data/spec/parser/ruby/legacy/statement_list_spec.rb +0 -299
- data/spec/parser/ruby/legacy/token_list_spec.rb +0 -79
- data/spec/parser/ruby/ruby_parser_spec.rb +0 -520
- data/spec/parser/ruby/token_resolver_spec.rb +0 -165
- data/spec/parser/source_parser_spec.rb +0 -727
- data/spec/parser/tag_parsing_spec.rb +0 -17
- data/spec/rake/yardoc_task_spec.rb +0 -118
- data/spec/registry_resolver_spec.rb +0 -15
- data/spec/registry_spec.rb +0 -463
- data/spec/registry_store_spec.rb +0 -327
- data/spec/rubygems/doc_manager_spec.rb +0 -112
- data/spec/serializers/data/serialized_yardoc/checksums +0 -1
- data/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
- data/spec/serializers/data/serialized_yardoc/proxy_types +0 -2
- data/spec/serializers/file_system_serializer_spec.rb +0 -145
- data/spec/serializers/spec_helper.rb +0 -2
- data/spec/serializers/yardoc_serializer_spec.rb +0 -90
- data/spec/server/adapter_spec.rb +0 -39
- data/spec/server/commands/base_spec.rb +0 -91
- data/spec/server/commands/library_command_spec.rb +0 -39
- data/spec/server/doc_server_helper_spec.rb +0 -72
- data/spec/server/doc_server_serializer_spec.rb +0 -60
- data/spec/server/rack_adapter_spec.rb +0 -21
- data/spec/server/router_spec.rb +0 -123
- data/spec/server/spec_helper.rb +0 -22
- data/spec/server/static_caching_spec.rb +0 -47
- data/spec/server/webrick_servlet_spec.rb +0 -20
- data/spec/server_spec.rb +0 -19
- data/spec/spec_helper.rb +0 -212
- data/spec/tags/default_factory_spec.rb +0 -168
- data/spec/tags/default_tag_spec.rb +0 -11
- data/spec/tags/directives_spec.rb +0 -463
- data/spec/tags/library_spec.rb +0 -48
- data/spec/tags/overload_tag_spec.rb +0 -53
- data/spec/tags/ref_tag_list_spec.rb +0 -53
- data/spec/tags/types_explainer_spec.rb +0 -203
- data/spec/templates/class_spec.rb +0 -45
- data/spec/templates/constant_spec.rb +0 -41
- data/spec/templates/engine_spec.rb +0 -131
- data/spec/templates/examples/class001.html +0 -308
- data/spec/templates/examples/class001.txt +0 -36
- data/spec/templates/examples/class002.html +0 -39
- data/spec/templates/examples/constant001.txt +0 -25
- data/spec/templates/examples/constant002.txt +0 -7
- data/spec/templates/examples/constant003.txt +0 -11
- data/spec/templates/examples/method001.html +0 -137
- data/spec/templates/examples/method001.txt +0 -35
- data/spec/templates/examples/method002.html +0 -91
- data/spec/templates/examples/method002.txt +0 -20
- data/spec/templates/examples/method003.html +0 -165
- data/spec/templates/examples/method003.txt +0 -45
- data/spec/templates/examples/method004.html +0 -48
- data/spec/templates/examples/method004.txt +0 -10
- data/spec/templates/examples/method005.html +0 -105
- data/spec/templates/examples/method005.txt +0 -33
- data/spec/templates/examples/method006.html +0 -108
- data/spec/templates/examples/method006.txt +0 -20
- data/spec/templates/examples/module001.dot +0 -33
- data/spec/templates/examples/module001.html +0 -833
- data/spec/templates/examples/module001.txt +0 -33
- data/spec/templates/examples/module002.html +0 -341
- data/spec/templates/examples/module003.html +0 -202
- data/spec/templates/examples/module004.html +0 -394
- data/spec/templates/examples/module005.html +0 -82
- data/spec/templates/examples/tag001.txt +0 -82
- data/spec/templates/helpers/base_helper_spec.rb +0 -171
- data/spec/templates/helpers/html_helper_spec.rb +0 -666
- data/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +0 -65
- data/spec/templates/helpers/markup/rdoc_markup_spec.rb +0 -84
- data/spec/templates/helpers/markup_helper_spec.rb +0 -136
- data/spec/templates/helpers/method_helper_spec.rb +0 -107
- data/spec/templates/helpers/module_helper_spec.rb +0 -35
- data/spec/templates/helpers/shared_signature_examples.rb +0 -126
- data/spec/templates/helpers/text_helper_spec.rb +0 -65
- data/spec/templates/markup_processor_integrations/asciidoctor_spec.rb +0 -60
- data/spec/templates/markup_processor_integrations/integration_spec_helper.rb +0 -50
- data/spec/templates/markup_processor_integrations/rdoc_markdown_spec.rb +0 -48
- data/spec/templates/markup_processor_integrations/rdoc_spec.rb +0 -39
- data/spec/templates/markup_processor_integrations/redcarpet_spec.rb +0 -64
- data/spec/templates/markup_processor_integrations/redcloth_spec.rb +0 -64
- data/spec/templates/method_spec.rb +0 -118
- data/spec/templates/module_spec.rb +0 -203
- data/spec/templates/onefile_spec.rb +0 -66
- data/spec/templates/section_spec.rb +0 -144
- data/spec/templates/spec_helper.rb +0 -76
- data/spec/templates/tag_spec.rb +0 -52
- data/spec/templates/template_spec.rb +0 -410
- data/spec/verifier_spec.rb +0 -106
@@ -1,226 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
require 'ostruct'
|
4
|
-
|
5
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}DSLHandler" do
|
6
|
-
before(:all) { parse_file :dsl_handler_001, __FILE__ }
|
7
|
-
|
8
|
-
it "creates a readable attribute when @!attribute r is found" do
|
9
|
-
obj = Registry.at('Foo#attr1')
|
10
|
-
expect(obj).not_to be nil
|
11
|
-
expect(obj).to be_reader
|
12
|
-
expect(obj.tag(:return).types).to eq ['Numeric']
|
13
|
-
expect(Registry.at('Foo#attr1=')).to be nil
|
14
|
-
end
|
15
|
-
|
16
|
-
it "creates a writable attribute when @!attribute w is found" do
|
17
|
-
obj = Registry.at('Foo#attr2=')
|
18
|
-
expect(obj).not_to be nil
|
19
|
-
expect(obj).to be_writer
|
20
|
-
expect(Registry.at('Foo#attr2')).to be nil
|
21
|
-
end
|
22
|
-
|
23
|
-
it "defaults to readwrite @!attribute" do
|
24
|
-
obj = Registry.at('Foo#attr3')
|
25
|
-
expect(obj).not_to be nil
|
26
|
-
expect(obj).to be_reader
|
27
|
-
obj = Registry.at('Foo#attr3=')
|
28
|
-
expect(obj).not_to be nil
|
29
|
-
expect(obj).to be_writer
|
30
|
-
end
|
31
|
-
|
32
|
-
it "allows @!attribute to define alternate method name" do
|
33
|
-
expect(Registry.at('Foo#attr4')).to be nil
|
34
|
-
expect(Registry.at('Foo#custom')).not_to be nil
|
35
|
-
end
|
36
|
-
|
37
|
-
it "defaults to creating an instance method for any DSL method with special tags" do
|
38
|
-
obj = Registry.at('Foo#implicit0')
|
39
|
-
expect(obj).not_to be nil
|
40
|
-
expect(obj.docstring).to eq "IMPLICIT METHOD!"
|
41
|
-
expect(obj.tag(:return).types).to eq ['String']
|
42
|
-
end
|
43
|
-
|
44
|
-
it "recognizes implicit docstring when it has scope tag" do
|
45
|
-
obj = Registry.at("Foo.implicit1")
|
46
|
-
expect(obj).not_to be nil
|
47
|
-
expect(obj.scope).to eq :class
|
48
|
-
end
|
49
|
-
|
50
|
-
it "recognizes implicit docstring when it has visibility tag" do
|
51
|
-
obj = Registry.at("Foo#implicit2")
|
52
|
-
expect(obj).not_to be nil
|
53
|
-
expect(obj.visibility).to eq :protected
|
54
|
-
end
|
55
|
-
|
56
|
-
it "does not recognize implicit docstring with any other normal tag" do
|
57
|
-
obj = Registry.at('Foo#implicit_invalid3')
|
58
|
-
expect(obj).to be nil
|
59
|
-
end
|
60
|
-
|
61
|
-
it "sets the method name when using @!method" do
|
62
|
-
obj = Registry.at('Foo.xyz')
|
63
|
-
expect(obj).not_to be nil
|
64
|
-
expect(obj.signature).to eq 'def xyz(a, b, c)'
|
65
|
-
expect(obj.parameters).to eq [['a', nil], ['b', nil], ['c', nil]]
|
66
|
-
expect(obj.source).to eq 'foo_bar'
|
67
|
-
expect(obj.docstring).to eq 'The foo method'
|
68
|
-
end
|
69
|
-
|
70
|
-
it "recognizes methods with no attached source" do
|
71
|
-
obj = Registry.at('Foo#no_src')
|
72
|
-
expect(obj).not_to be nil
|
73
|
-
expect(obj.signature).to eq 'def no_src'
|
74
|
-
expect(obj.source).to eq ''
|
75
|
-
end
|
76
|
-
|
77
|
-
it "allows setting of @!scope" do
|
78
|
-
expect(Registry.at('Foo.xyz').scope).to eq :class
|
79
|
-
end
|
80
|
-
|
81
|
-
it "creates module function if @!scope is module" do
|
82
|
-
mod_c = Registry.at('Foo.modfunc1')
|
83
|
-
mod_i = Registry.at('Foo#modfunc1')
|
84
|
-
expect(mod_c.scope).to eq :class
|
85
|
-
expect(mod_i.visibility).to eq :private
|
86
|
-
end
|
87
|
-
|
88
|
-
it "allows setting of @!visibility" do
|
89
|
-
expect(Registry.at('Foo.xyz').visibility).to eq :protected
|
90
|
-
end
|
91
|
-
|
92
|
-
it "ignores DSL methods without tags" do
|
93
|
-
expect(Registry.at('Foo#implicit_invalid')).to be nil
|
94
|
-
end
|
95
|
-
|
96
|
-
it "accepts a DSL method without tags if it has hash_flag (##)" do
|
97
|
-
expect(Registry.at('Foo#implicit_valid')).not_to be nil
|
98
|
-
expect(Registry.at('Foo#implicit_invalid2')).to be nil
|
99
|
-
end
|
100
|
-
|
101
|
-
it "allows creation of macros" do
|
102
|
-
macro = CodeObjects::MacroObject.find('property')
|
103
|
-
expect(macro).not_to be nil
|
104
|
-
expect(macro).not_to be_attached
|
105
|
-
expect(macro.method_object).to be nil
|
106
|
-
end
|
107
|
-
|
108
|
-
it "handles macros with no parameters to expand" do
|
109
|
-
expect(Registry.at('Foo#none')).not_to be nil
|
110
|
-
expect(Registry.at('Baz#none').signature).to eq 'def none(foo, bar)'
|
111
|
-
end
|
112
|
-
|
113
|
-
it "expands $N on method definitions" do
|
114
|
-
expect(Registry.at('Foo#regular_meth').docstring).to eq 'a b c'
|
115
|
-
end
|
116
|
-
|
117
|
-
it "applies new macro docstrings on new objects" do
|
118
|
-
obj = Registry.at('Foo#name')
|
119
|
-
expect(obj).not_to be nil
|
120
|
-
expect(obj.source).to eq 'property :name, String, :a, :b, :c'
|
121
|
-
expect(obj.signature).to eq 'def name(a, b, c)'
|
122
|
-
expect(obj.docstring).to eq 'A property that is awesome.'
|
123
|
-
expect(obj.tag(:param).name).to eq 'a'
|
124
|
-
expect(obj.tag(:param).text).to eq 'first parameter'
|
125
|
-
expect(obj.tag(:return).types).to eq ['String']
|
126
|
-
expect(obj.tag(:return).text).to eq 'the property name'
|
127
|
-
end
|
128
|
-
|
129
|
-
it "allows reuse of named macros" do
|
130
|
-
obj = Registry.at('Foo#age')
|
131
|
-
expect(obj).not_to be nil
|
132
|
-
expect(obj.source).to eq 'property :age, Fixnum, :value'
|
133
|
-
expect(obj.signature).to eq 'def age(value)'
|
134
|
-
expect(obj.docstring).to eq 'A property that is awesome.'
|
135
|
-
expect(obj.tag(:param).name).to eq 'value'
|
136
|
-
expect(obj.tag(:param).text).to eq 'first parameter'
|
137
|
-
expect(obj.tag(:return).types).to eq ['Fixnum']
|
138
|
-
expect(obj.tag(:return).text).to eq 'the property age'
|
139
|
-
end
|
140
|
-
|
141
|
-
it "knows about method information on DSL with macro expansion" do
|
142
|
-
expect(Registry.at('Foo#right_name')).not_to be nil
|
143
|
-
expect(Registry.at('Foo#right_name').source).to eq 'implicit_with_different_method_name :wrong, :right'
|
144
|
-
expect(Registry.at('Foo#wrong_name')).to be nil
|
145
|
-
end
|
146
|
-
|
147
|
-
it "uses attached macros" do
|
148
|
-
macro = CodeObjects::MacroObject.find('parser')
|
149
|
-
expect(macro.macro_data).to eq "@!method $1(opts = {})\n@return NOTHING!"
|
150
|
-
expect(macro).not_to be nil
|
151
|
-
expect(macro).to be_attached
|
152
|
-
expect(macro.method_object).to eq P('Foo.parser')
|
153
|
-
obj = Registry.at('Foo#c_parser')
|
154
|
-
expect(obj).not_to be nil
|
155
|
-
expect(obj.docstring).to eq ""
|
156
|
-
expect(obj.signature).to eq "def c_parser(opts = {})"
|
157
|
-
expect(obj.docstring.tag(:return).text).to eq "NOTHING!"
|
158
|
-
end
|
159
|
-
|
160
|
-
it "appends docstring on DSL method to attached macro" do
|
161
|
-
obj = Registry.at('Foo#d_parser')
|
162
|
-
expect(obj).not_to be nil
|
163
|
-
expect(obj.docstring).to eq "Another docstring"
|
164
|
-
expect(obj.signature).to eq "def d_parser(opts = {})"
|
165
|
-
expect(obj.docstring.tag(:return).text).to eq "NOTHING!"
|
166
|
-
end
|
167
|
-
|
168
|
-
it "only uses attached macros on methods defined in inherited hierarchy" do
|
169
|
-
expect(Registry.at('Bar#x_parser')).to be nil
|
170
|
-
expect(Registry.at('Baz#y_parser')).not_to be nil
|
171
|
-
end
|
172
|
-
|
173
|
-
it "looks through mixins for attached macros" do
|
174
|
-
meth = Registry.at('Baz#mixin_method')
|
175
|
-
expect(meth).not_to be nil
|
176
|
-
expect(meth.docstring).to eq 'DSL method mixin_method'
|
177
|
-
end
|
178
|
-
|
179
|
-
it "handles top-level DSL methods" do
|
180
|
-
obj = Registry.at('#my_other_method')
|
181
|
-
expect(obj).not_to be nil
|
182
|
-
expect(obj.docstring).to eq "Docstring for method"
|
183
|
-
end
|
184
|
-
|
185
|
-
it "handles Constant.foo syntax" do
|
186
|
-
obj = Registry.at('#beep')
|
187
|
-
expect(obj).not_to be nil
|
188
|
-
expect(obj.signature).to eq 'def beep(a, b, c)'
|
189
|
-
end
|
190
|
-
|
191
|
-
it "expands attached macros in first DSL method" do
|
192
|
-
expect(Registry.at('DSLMethods#foo').docstring).to eq "Returns String for foo"
|
193
|
-
expect(Registry.at('DSLMethods#bar').docstring).to eq "Returns Integer for bar"
|
194
|
-
end
|
195
|
-
|
196
|
-
it "does not detect implicit macros with invalid method names" do
|
197
|
-
undoc_error <<-eof
|
198
|
-
##
|
199
|
-
# IMPLICIT METHOD THAT SHOULD
|
200
|
-
# NOT BE DETECTED
|
201
|
-
dsl_method '/foo/bar'
|
202
|
-
eof
|
203
|
-
end
|
204
|
-
|
205
|
-
it "warns on unparseable DSL statements" do
|
206
|
-
undoc_error "private(*foo(bar))"
|
207
|
-
end if HAVE_RIPPER
|
208
|
-
|
209
|
-
# @note Currently unsupported behavior. Overriding a macro on an alias will
|
210
|
-
# not work until macro lookups can be done by caller_method directly.
|
211
|
-
# @todo optimize MacroObject lookup to work by caller name, not macro name.
|
212
|
-
it "cannot attach a macro on alias of attached macro" do
|
213
|
-
expect(Registry.at('AliasTest#main_foo1')).not_to be nil
|
214
|
-
expect(Registry.at('AliasTest#alt_foo1')).to be nil
|
215
|
-
end if HAVE_RIPPER
|
216
|
-
|
217
|
-
it "searches attached macro's aliases for caller method match" do
|
218
|
-
expect(Registry.at('AliasTest#main_foo2')).not_to be nil
|
219
|
-
expect(Registry.at('AliasTest#alt_foo2')).to be nil
|
220
|
-
end if HAVE_RIPPER
|
221
|
-
|
222
|
-
it "does not create method object if directive data detected in expanded macro" do
|
223
|
-
expect(Registry.at('DirectiveMethods#Bar')).to be nil
|
224
|
-
expect(Registry.at('DirectiveMethods').mixins).to include P(:Bar)
|
225
|
-
end
|
226
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module A
|
2
|
-
def a; end
|
3
|
-
alias_method :b, :a
|
4
|
-
alias_method :"cstrmeth", :"a"
|
5
|
-
|
6
|
-
# Handle keyword syntax too
|
7
|
-
alias :c :a
|
8
|
-
alias :"cstrkey" :a
|
9
|
-
alias d? a
|
10
|
-
alias [] a
|
11
|
-
alias []= a
|
12
|
-
alias -@ a
|
13
|
-
alias % a
|
14
|
-
alias * a
|
15
|
-
alias for a
|
16
|
-
alias ConstantName a
|
17
|
-
|
18
|
-
# Handle quoted symbols
|
19
|
-
alias :'foo' :'a'
|
20
|
-
end
|
21
|
-
|
22
|
-
class C
|
23
|
-
def x; end
|
24
|
-
end
|
25
|
-
|
26
|
-
class B < C
|
27
|
-
alias_method(:q, :x)
|
28
|
-
alias_method :r?, :x
|
29
|
-
alias_method :s, :to_s
|
30
|
-
alias_method :t, :inspect if 500 == 3 * CONSTANT
|
31
|
-
alias_method :<<, :a
|
32
|
-
alias_method :for, :a
|
33
|
-
alias do x
|
34
|
-
alias x2 do
|
35
|
-
end
|
36
|
-
|
37
|
-
class D
|
38
|
-
# Foo bar
|
39
|
-
def a; "FOO" end
|
40
|
-
|
41
|
-
# @return [String]
|
42
|
-
alias b a
|
43
|
-
|
44
|
-
# @return [Numeric]
|
45
|
-
def a; 0 end
|
46
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module A
|
2
|
-
attr_writer :x
|
3
|
-
end
|
4
|
-
|
5
|
-
class B
|
6
|
-
class << self
|
7
|
-
attr_accessor :z
|
8
|
-
end
|
9
|
-
|
10
|
-
attr :a, true
|
11
|
-
attr :a2, false
|
12
|
-
attr :a3
|
13
|
-
# Docstring
|
14
|
-
attr_reader :b, :c, :d
|
15
|
-
attr_writer :e
|
16
|
-
attr_accessor 'f'
|
17
|
-
|
18
|
-
attr_accessor :z
|
19
|
-
end
|
20
|
-
|
21
|
-
class C
|
22
|
-
def foo; end
|
23
|
-
attr_writer :foo
|
24
|
-
|
25
|
-
def bar=(value); end
|
26
|
-
attr_reader :bar
|
27
|
-
end
|
28
|
-
|
29
|
-
class D
|
30
|
-
protected
|
31
|
-
attr_reader :parser
|
32
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
class A
|
2
|
-
if some_condition
|
3
|
-
def a; end
|
4
|
-
elsif 1 == 1
|
5
|
-
def b; end
|
6
|
-
else
|
7
|
-
def c; end
|
8
|
-
end
|
9
|
-
|
10
|
-
def d; end if 50 * 2 == 101
|
11
|
-
|
12
|
-
unless false
|
13
|
-
def e; end
|
14
|
-
else
|
15
|
-
def enot; end
|
16
|
-
end
|
17
|
-
|
18
|
-
def g; end unless 5 * 2 == 101
|
19
|
-
|
20
|
-
def h
|
21
|
-
if 1
|
22
|
-
def hnot; end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
if defined? A
|
27
|
-
def j; end
|
28
|
-
else
|
29
|
-
def jnot; end
|
30
|
-
end
|
31
|
-
|
32
|
-
if defined? RUBY_VERSION
|
33
|
-
def k; end
|
34
|
-
else
|
35
|
-
def knot; end
|
36
|
-
end
|
37
|
-
|
38
|
-
if 0
|
39
|
-
def nnot; end
|
40
|
-
else
|
41
|
-
def n; end
|
42
|
-
end
|
43
|
-
|
44
|
-
if 256
|
45
|
-
def o; end
|
46
|
-
else
|
47
|
-
def onot; end
|
48
|
-
end
|
49
|
-
|
50
|
-
if true
|
51
|
-
def p; end
|
52
|
-
else
|
53
|
-
def pnot; end
|
54
|
-
end
|
55
|
-
|
56
|
-
if false
|
57
|
-
def qnot; end
|
58
|
-
else
|
59
|
-
def q; end
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
|
64
|
-
if a == 1
|
65
|
-
def m; end
|
66
|
-
else
|
67
|
-
def mnot; end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,120 +0,0 @@
|
|
1
|
-
# Docstring
|
2
|
-
class A
|
3
|
-
module B; end
|
4
|
-
private
|
5
|
-
class B::C < String;
|
6
|
-
def method1; end
|
7
|
-
def method2; end
|
8
|
-
end
|
9
|
-
class X<B::C
|
10
|
-
end
|
11
|
-
class<<self
|
12
|
-
def classmethod1; end
|
13
|
-
end
|
14
|
-
|
15
|
-
class << A::B::C; def Hello; end end
|
16
|
-
end
|
17
|
-
|
18
|
-
module B
|
19
|
-
class A < A
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
class RT < XX::RT; end
|
24
|
-
|
25
|
-
class Test1 < R "something"
|
26
|
-
end
|
27
|
-
|
28
|
-
class Test2 < R(/something/)
|
29
|
-
end
|
30
|
-
|
31
|
-
class Test3 < Struct.new(:foo, :bar)
|
32
|
-
end
|
33
|
-
|
34
|
-
class Test4 < OStruct.new
|
35
|
-
end
|
36
|
-
|
37
|
-
class Test5 < DelegateClass(Array)
|
38
|
-
end
|
39
|
-
|
40
|
-
class Test6 < NotDelegateClass(Array)
|
41
|
-
end
|
42
|
-
|
43
|
-
class ::MyRootClass
|
44
|
-
end
|
45
|
-
|
46
|
-
module Holder
|
47
|
-
module SomeMod
|
48
|
-
class Importer
|
49
|
-
def parse; end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
module Holder
|
55
|
-
class Importer < Holder::SomeMod::Importer
|
56
|
-
def a; end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
class String; end
|
61
|
-
CONST = String
|
62
|
-
class << CONST
|
63
|
-
def classmethod; end
|
64
|
-
end
|
65
|
-
|
66
|
-
module Q
|
67
|
-
class Logger < ::Logger; end
|
68
|
-
class Foo < ::Logger; end
|
69
|
-
end
|
70
|
-
|
71
|
-
class << Symbol
|
72
|
-
alias toString to_s
|
73
|
-
end
|
74
|
-
|
75
|
-
# Docstring
|
76
|
-
class Zebra
|
77
|
-
end
|
78
|
-
|
79
|
-
# Docstring 2
|
80
|
-
|
81
|
-
class Zebra
|
82
|
-
end
|
83
|
-
|
84
|
-
class Zebra
|
85
|
-
end
|
86
|
-
|
87
|
-
# A simple struct
|
88
|
-
class RegularStruct < Struct; end
|
89
|
-
class RegularStruct2 < ::Struct; end
|
90
|
-
|
91
|
-
class Point < Struct.new(:x, :y, :z)
|
92
|
-
end
|
93
|
-
|
94
|
-
class AnotherPoint < Struct.new('XPoint', :a, :b, :c, :description)
|
95
|
-
end
|
96
|
-
|
97
|
-
# @attr [IO] input the input stream
|
98
|
-
# @attr mode the mode to read
|
99
|
-
# @attr [Proc, #call] someproc the proc to run
|
100
|
-
class DoccedStruct < Struct.new(:input, :mode, :someproc)
|
101
|
-
end
|
102
|
-
|
103
|
-
# @attr [String] first the first entry
|
104
|
-
# @attr_reader [Fixnum] second this only has a reader
|
105
|
-
# @attr_writer [Array] third this only has a writer
|
106
|
-
# @attr_reader [#read] fourth returns a proc that reads
|
107
|
-
# @attr_writer [IO] fourth sets the proc that writes stuff
|
108
|
-
class SemiDoccedStruct < Struct.new(:first, :second, :third, :fourth)
|
109
|
-
end
|
110
|
-
|
111
|
-
# @attr [String] first the first entry
|
112
|
-
# @attr_reader [Fixnum] second this only has a reader
|
113
|
-
# @attr_writer [Array] third this only has a writer
|
114
|
-
# @attr_reader [#read] fourth returns a proc that reads
|
115
|
-
# @attr_writer [IO] fourth sets the proc that writes stuff
|
116
|
-
class NotAStruct; end
|
117
|
-
|
118
|
-
class Outer1
|
119
|
-
class Inner1 < self; end
|
120
|
-
end
|