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,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}MixinHandler" do
|
5
|
-
before(:all) { parse_file :mixin_handler_001, __FILE__ }
|
6
|
-
|
7
|
-
it "handles includes from classes or modules" do
|
8
|
-
expect(Registry.at(:X).instance_mixins).to include(P(:A))
|
9
|
-
expect(Registry.at(:Y).instance_mixins).to include(P(:A))
|
10
|
-
end
|
11
|
-
|
12
|
-
it "handles includes in class << self" do
|
13
|
-
expect(Registry.at(:Y).class_mixins).to include(P(:A))
|
14
|
-
end
|
15
|
-
|
16
|
-
it "handles includes for modules that don't yet exist" do
|
17
|
-
expect(Registry.at(:X).instance_mixins).to include(P(nil, :NOTEXIST))
|
18
|
-
end
|
19
|
-
|
20
|
-
it "sets the type of non-existing modules to :module" do
|
21
|
-
o = Registry.at(:X).instance_mixins.find {|obj| obj.name == :NOTEXIST }
|
22
|
-
expect(o.type).to eq :module
|
23
|
-
end
|
24
|
-
|
25
|
-
it "handles includes with multiple parameters" do
|
26
|
-
expect(Registry.at(:X)).not_to be nil
|
27
|
-
end
|
28
|
-
|
29
|
-
it "handles complex include statements" do
|
30
|
-
expect(P(:Y).instance_mixins).to include(P('B::C'))
|
31
|
-
expect(P(:Y).instance_mixins).to include(P(:B))
|
32
|
-
end
|
33
|
-
|
34
|
-
it "treats a mixed in Constant by taking its value as the real object name" do
|
35
|
-
expect(P(:Y).instance_mixins).to include(Registry.at('B::D'))
|
36
|
-
end
|
37
|
-
|
38
|
-
it "adds includes in the correct order when include is given multiple arguments" do
|
39
|
-
expect(P(:Z).instance_mixins).to eq [P(:A), P(:B)]
|
40
|
-
end
|
41
|
-
|
42
|
-
it "avoids including self for unresolved mixins of the same name" do
|
43
|
-
expect(P("ABC::DEF::FOO").mixins).to eq [P("ABC::FOO")]
|
44
|
-
expect(P("ABC::DEF::BAR").mixins).to eq [P("ABC::BAR")]
|
45
|
-
end
|
46
|
-
|
47
|
-
it "raises undocumentable error if argument is variable" do
|
48
|
-
undoc_error "module X; include invalid; end"
|
49
|
-
expect(Registry.at('X').mixins).to eq []
|
50
|
-
end
|
51
|
-
|
52
|
-
it "parses all other arguments before erroring out on undocumentable error" do
|
53
|
-
undoc_error "module X; include invalid, Y; end"
|
54
|
-
expect(Registry.at('X').mixins).to eq [P('Y')]
|
55
|
-
end
|
56
|
-
|
57
|
-
it "adds mixins from include calls to constants" do
|
58
|
-
expect(P('FromConstant').instance_mixins).to eq [P('A')]
|
59
|
-
end
|
60
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}VisibilityHandler" do
|
5
|
-
after { Registry.clear }
|
6
|
-
|
7
|
-
def assert_module_function(namespace, name)
|
8
|
-
klass = Registry.at("#{namespace}.#{name}")
|
9
|
-
instance = Registry.at("#{namespace}##{name}")
|
10
|
-
expect(klass).not_to be nil
|
11
|
-
expect(instance).not_to be nil
|
12
|
-
expect(klass).to be_module_function
|
13
|
-
expect(instance).not_to be_module_function
|
14
|
-
expect(klass.visibility).to eq :public
|
15
|
-
expect(instance.visibility).to eq :private
|
16
|
-
end
|
17
|
-
|
18
|
-
it "is able to create a module function with parameters" do
|
19
|
-
YARD.parse_string <<-eof
|
20
|
-
module Foo
|
21
|
-
def bar; end
|
22
|
-
def baz; end
|
23
|
-
|
24
|
-
module_function :bar, :baz
|
25
|
-
end
|
26
|
-
eof
|
27
|
-
assert_module_function('Foo', 'bar')
|
28
|
-
assert_module_function('Foo', 'baz')
|
29
|
-
end
|
30
|
-
|
31
|
-
it "is able to set scope for duration of block without params" do
|
32
|
-
YARD.parse_string <<-eof
|
33
|
-
module Foo
|
34
|
-
def qux; end
|
35
|
-
|
36
|
-
module_function
|
37
|
-
|
38
|
-
def bar; end
|
39
|
-
def baz; end
|
40
|
-
end
|
41
|
-
eof
|
42
|
-
expect(Registry.at('Foo.qux')).to be nil
|
43
|
-
assert_module_function('Foo', 'bar')
|
44
|
-
assert_module_function('Foo', 'baz')
|
45
|
-
end
|
46
|
-
|
47
|
-
# @bug gh-563
|
48
|
-
it "copies tags to module function properly" do
|
49
|
-
YARD.parse_string <<-eof
|
50
|
-
module Foo
|
51
|
-
# @param [String] foo bar
|
52
|
-
# @option foo [String] bar (nil) baz
|
53
|
-
# @return [void]
|
54
|
-
def bar(foo); end
|
55
|
-
module_function :bar
|
56
|
-
end
|
57
|
-
eof
|
58
|
-
assert_module_function('Foo', 'bar')
|
59
|
-
o = Registry.at('Foo.bar')
|
60
|
-
expect(o.tag(:param).types).to eq ['String']
|
61
|
-
expect(o.tag(:param).name).to eq 'foo'
|
62
|
-
expect(o.tag(:param).text).to eq 'bar'
|
63
|
-
expect(o.tag(:option).name).to eq 'foo'
|
64
|
-
expect(o.tag(:option).pair.types).to eq ['String']
|
65
|
-
expect(o.tag(:option).pair.defaults).to eq ['nil']
|
66
|
-
expect(o.tag(:option).pair.text).to eq 'baz'
|
67
|
-
expect(o.tag(:return).types).to eq ['void']
|
68
|
-
end
|
69
|
-
|
70
|
-
it "handles all method names in parameters" do
|
71
|
-
YARD.parse_string <<-eof
|
72
|
-
module Foo
|
73
|
-
def -(t); end
|
74
|
-
def ==(other); end
|
75
|
-
def a?; end
|
76
|
-
module_function :-, '==', :a?
|
77
|
-
end
|
78
|
-
eof
|
79
|
-
assert_module_function('Foo', '-')
|
80
|
-
assert_module_function('Foo', '==')
|
81
|
-
assert_module_function('Foo', 'a?')
|
82
|
-
end
|
83
|
-
|
84
|
-
it "only accepts strings and symbols" do
|
85
|
-
YARD.parse_string <<-eof
|
86
|
-
module Foo
|
87
|
-
module_function name
|
88
|
-
module_function *argument
|
89
|
-
module_function *(method_call)
|
90
|
-
end
|
91
|
-
eof
|
92
|
-
expect(Registry.at('Foo#name')).to be nil
|
93
|
-
expect(Registry.at('Foo#argument')).to be nil
|
94
|
-
expect(Registry.at('Foo#method_call')).to be nil
|
95
|
-
end
|
96
|
-
|
97
|
-
it "handles constants passed in as symbols" do
|
98
|
-
YARD.parse_string <<-eof
|
99
|
-
module Foo
|
100
|
-
def Foo; end
|
101
|
-
module_function :Foo
|
102
|
-
end
|
103
|
-
eof
|
104
|
-
assert_module_function('Foo', 'Foo')
|
105
|
-
end
|
106
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}ModuleHandler" do
|
5
|
-
before(:all) { parse_file :module_handler_001, __FILE__ }
|
6
|
-
|
7
|
-
it "parses a module block" do
|
8
|
-
expect(Registry.at(:ModName)).not_to eq nil
|
9
|
-
expect(Registry.at("ModName::OtherModName")).not_to eq nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "attaches docstring" do
|
13
|
-
expect(Registry.at("ModName::OtherModName").docstring).to eq "Docstring"
|
14
|
-
end
|
15
|
-
|
16
|
-
it "handles any formatting" do
|
17
|
-
expect(Registry.at(:StressTest)).not_to eq nil
|
18
|
-
end
|
19
|
-
|
20
|
-
it "handles complex module names" do
|
21
|
-
expect(Registry.at("A::B")).not_to eq nil
|
22
|
-
end
|
23
|
-
|
24
|
-
it "handles modules in the form ::ModName" do
|
25
|
-
expect(Registry.at("Kernel")).not_to be nil
|
26
|
-
end
|
27
|
-
|
28
|
-
it "lists mixins in proper order" do
|
29
|
-
expect(Registry.at('D').mixins).to eq [P(:C), P(:B), P(:A)]
|
30
|
-
end
|
31
|
-
|
32
|
-
it "creates proper module when constant is in namespace" do
|
33
|
-
expect(Registry.at('Q::FOO::A')).not_to be nil
|
34
|
-
end
|
35
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
require File.dirname(__FILE__) + '/class_method_handler_shared_examples'
|
4
|
-
|
5
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PrivateClassMethodHandler" do
|
6
|
-
before { Registry.clear }
|
7
|
-
|
8
|
-
let(:visibility) { :private }
|
9
|
-
|
10
|
-
include_examples "class method visibility decorator"
|
11
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PrivateConstantHandler" do
|
5
|
-
before(:all) { parse_file :private_constant_handler_001, __FILE__ }
|
6
|
-
|
7
|
-
it "handles private_constant statement" do
|
8
|
-
expect(Registry.at('A::Foo').visibility).to eq :private
|
9
|
-
expect(Registry.at('A::B').visibility).to eq :private
|
10
|
-
expect(Registry.at('A::C').visibility).to eq :private
|
11
|
-
end
|
12
|
-
|
13
|
-
it "makes all other constants public" do
|
14
|
-
expect(Registry.at('A::D').visibility).to eq :public
|
15
|
-
end
|
16
|
-
|
17
|
-
it "fails if parameter is not String, Symbol or Constant" do
|
18
|
-
undoc_error 'class Foo; private_constant x; end'
|
19
|
-
undoc_error 'class Foo; X = 1; private_constant X.new("hi"); end'
|
20
|
-
end unless LEGACY_PARSER
|
21
|
-
|
22
|
-
it "fails if constant can't be recognized" do
|
23
|
-
undoc_error 'class Foo2; private_constant :X end'
|
24
|
-
end
|
25
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe YARD::Handlers::Processor do
|
5
|
-
before do
|
6
|
-
@proc = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
|
7
|
-
end
|
8
|
-
|
9
|
-
it "starts with public visibility" do
|
10
|
-
expect(@proc.visibility).to eq :public
|
11
|
-
end
|
12
|
-
|
13
|
-
it "starts in instance scope" do
|
14
|
-
expect(@proc.scope).to eq :instance
|
15
|
-
end
|
16
|
-
|
17
|
-
it "starts in root namespace" do
|
18
|
-
expect(@proc.namespace).to eq Registry.root
|
19
|
-
end
|
20
|
-
|
21
|
-
it "has a globals structure" do
|
22
|
-
expect(@proc.globals).to be_a(OpenStruct)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "ignores HandlerAborted exceptions (but print debug info)" do
|
26
|
-
class AbortHandlerProcessor < YARD::Handlers::Ruby::Base
|
27
|
-
process { abort! }
|
28
|
-
end
|
29
|
-
stmt = OpenStruct.new(:line => 1, :show => 'SOURCE')
|
30
|
-
allow(@proc).to receive(:find_handlers).and_return([AbortHandlerProcessor])
|
31
|
-
expect(log).to receive(:debug).with(/AbortHandlerProcessor cancelled from/)
|
32
|
-
expect(log).to receive(:debug).with("\tin file '(stdin)':1:\n\nSOURCE\n")
|
33
|
-
@proc.process([stmt])
|
34
|
-
end
|
35
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
require File.dirname(__FILE__) + '/class_method_handler_shared_examples'
|
4
|
-
|
5
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}PublicClassMethodHandler" do
|
6
|
-
before { Registry.clear }
|
7
|
-
|
8
|
-
let(:visibility) { :public }
|
9
|
-
|
10
|
-
include_examples "class method visibility decorator"
|
11
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe YARD::Handlers::Ruby::Base, '#valid_handler?' do
|
4
|
-
include YARD::Parser::Ruby
|
5
|
-
YARD::Parser::Ruby::AstNode # rubocop:disable Lint/Void
|
6
|
-
|
7
|
-
before do
|
8
|
-
allow(Handlers::Ruby::Base).to receive(:inherited)
|
9
|
-
@processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby))
|
10
|
-
end
|
11
|
-
|
12
|
-
after(:all) do
|
13
|
-
Handlers::Base.clear_subclasses
|
14
|
-
end
|
15
|
-
|
16
|
-
def valid(handler, stmt)
|
17
|
-
expect(@processor.find_handlers(stmt)).to include(handler)
|
18
|
-
end
|
19
|
-
|
20
|
-
def invalid(handler, stmt)
|
21
|
-
expect(@processor.find_handlers(stmt)).not_to include(handler)
|
22
|
-
end
|
23
|
-
|
24
|
-
it "only handles Handlers inherited from Ruby::Base class" do
|
25
|
-
class IgnoredHandler < Handlers::Base
|
26
|
-
handles :list
|
27
|
-
end
|
28
|
-
class NotIgnoredHandler < Handlers::Ruby::Base
|
29
|
-
handles :list
|
30
|
-
end
|
31
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [IgnoredHandler, NotIgnoredHandler]
|
32
|
-
expect(@processor.find_handlers(s)).to eq [NotIgnoredHandler]
|
33
|
-
end
|
34
|
-
|
35
|
-
it "handles string input (matches AstNode#source)" do
|
36
|
-
class StringHandler < Handlers::Ruby::Base
|
37
|
-
handles "x"
|
38
|
-
end
|
39
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [StringHandler]
|
40
|
-
ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
|
41
|
-
valid StringHandler, ast[0][0][0]
|
42
|
-
invalid StringHandler, ast[0][1]
|
43
|
-
end
|
44
|
-
|
45
|
-
it "handles symbol input (matches AstNode#type)" do
|
46
|
-
class SymbolHandler < Handlers::Ruby::Base
|
47
|
-
handles :myNodeType
|
48
|
-
end
|
49
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [SymbolHandler]
|
50
|
-
valid SymbolHandler, s(:myNodeType, s(1, 2, 3))
|
51
|
-
invalid SymbolHandler, s(:NOTmyNodeType, s(1, 2, 3))
|
52
|
-
end
|
53
|
-
|
54
|
-
it "handles regex input (matches AstNode#source)" do
|
55
|
-
class RegexHandler < Handlers::Ruby::Base
|
56
|
-
handles(/^if x ==/)
|
57
|
-
end
|
58
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [RegexHandler]
|
59
|
-
ast = Parser::Ruby::RubyParser.parse("if x == 2 then true end").ast
|
60
|
-
valid RegexHandler, ast
|
61
|
-
invalid RegexHandler, ast[0][1]
|
62
|
-
end
|
63
|
-
|
64
|
-
it "handles AstNode input (matches AST literally)" do
|
65
|
-
class ASTHandler < Handlers::Ruby::Base
|
66
|
-
handles s(:vcall, s(:ident, "hello_world"))
|
67
|
-
end
|
68
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [ASTHandler]
|
69
|
-
valid ASTHandler, s(:vcall, s(:ident, "hello_world"))
|
70
|
-
invalid ASTHandler, s(:vcall, s(:ident, "NOTHELLOWORLD"))
|
71
|
-
end
|
72
|
-
|
73
|
-
it "handles #method_call(:methname) on a valid AST" do
|
74
|
-
class MethCallHandler < Handlers::Ruby::Base
|
75
|
-
handles method_call(:meth)
|
76
|
-
end
|
77
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [MethCallHandler]
|
78
|
-
ast = Parser::Ruby::RubyParser.parse(<<-"eof").ast
|
79
|
-
meth # 0
|
80
|
-
meth() # 1
|
81
|
-
meth(1,2,3) # 2
|
82
|
-
meth 1,2,3 # 3
|
83
|
-
NotMeth.meth # 4
|
84
|
-
NotMeth.meth { } # 5
|
85
|
-
NotMeth.meth do end # 6
|
86
|
-
NotMeth.meth 1, 2, 3 # 7
|
87
|
-
NotMeth.meth(1, 2, 3) # 8
|
88
|
-
NotMeth # 9
|
89
|
-
eof
|
90
|
-
(0..8).each do |i|
|
91
|
-
valid MethCallHandler, ast[i]
|
92
|
-
end
|
93
|
-
invalid MethCallHandler, ast[9]
|
94
|
-
end
|
95
|
-
end if HAVE_RIPPER
|
@@ -1,84 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
include Parser::Ruby::Legacy
|
4
|
-
|
5
|
-
RSpec.describe YARD::Handlers::Ruby::Legacy::Base, "#handles and inheritance" do
|
6
|
-
before do
|
7
|
-
allow(Handlers::Ruby::Legacy::Base).to receive(:inherited)
|
8
|
-
if RUBY_VERSION > '1.8.7'
|
9
|
-
allow(Handlers::Ruby::Legacy::MixinHandler).to receive(:inherited) # fixes a Ruby1.9 issue
|
10
|
-
end
|
11
|
-
@processor = Handlers::Processor.new(OpenStruct.new(:parser_type => :ruby18))
|
12
|
-
end
|
13
|
-
|
14
|
-
after(:all) do
|
15
|
-
Handlers::Base.clear_subclasses
|
16
|
-
end
|
17
|
-
|
18
|
-
def stmt(string)
|
19
|
-
Statement.new(TokenList.new(string))
|
20
|
-
end
|
21
|
-
|
22
|
-
it "only handles Handlers inherited from Ruby::Legacy::Base class" do
|
23
|
-
class IgnoredHandler < Handlers::Base
|
24
|
-
handles "hello"
|
25
|
-
end
|
26
|
-
class NotIgnoredHandlerLegacy < Handlers::Ruby::Legacy::Base
|
27
|
-
handles "hello"
|
28
|
-
end
|
29
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [IgnoredHandler, NotIgnoredHandlerLegacy]
|
30
|
-
expect(@processor.find_handlers(stmt("hello world"))).to eq [NotIgnoredHandlerLegacy]
|
31
|
-
end
|
32
|
-
|
33
|
-
it "handles a string input" do
|
34
|
-
class TestStringHandler < Handlers::Ruby::Legacy::Base
|
35
|
-
handles "hello"
|
36
|
-
end
|
37
|
-
|
38
|
-
expect(TestStringHandler.handles?(stmt("hello world"))).to be true
|
39
|
-
expect(TestStringHandler.handles?(stmt("nothello world"))).to be false
|
40
|
-
end
|
41
|
-
|
42
|
-
it "handles regex input" do
|
43
|
-
class TestRegexHandler < Handlers::Ruby::Legacy::Base
|
44
|
-
handles(/^nothello$/)
|
45
|
-
end
|
46
|
-
|
47
|
-
expect(TestRegexHandler.handles?(stmt("nothello"))).to be true
|
48
|
-
expect(TestRegexHandler.handles?(stmt("not hello hello"))).to be false
|
49
|
-
end
|
50
|
-
|
51
|
-
it "handles token input" do
|
52
|
-
class TestTokenHandler < Handlers::Ruby::Legacy::Base
|
53
|
-
handles TkMODULE
|
54
|
-
end
|
55
|
-
|
56
|
-
expect(TestTokenHandler.handles?(stmt("module"))).to be true
|
57
|
-
expect(TestTokenHandler.handles?(stmt("if"))).to be false
|
58
|
-
end
|
59
|
-
|
60
|
-
it "parses a do/end or { } block with #parse_block" do
|
61
|
-
class MyBlockHandler < Handlers::Ruby::Legacy::Base
|
62
|
-
handles(/\AmyMethod\b/)
|
63
|
-
def process
|
64
|
-
parse_block(:owner => "test")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
class MyBlockInnerHandler < Handlers::Ruby::Legacy::Base
|
69
|
-
handles "inner"
|
70
|
-
def self.reset; @@reached = false end
|
71
|
-
def self.reached?; @@reached ||= false end
|
72
|
-
def process; @@reached = true end
|
73
|
-
end
|
74
|
-
|
75
|
-
allow(Handlers::Base).to receive(:subclasses).and_return [MyBlockHandler, MyBlockInnerHandler]
|
76
|
-
Parser::SourceParser.parser_type = :ruby18
|
77
|
-
Parser::SourceParser.parse_string "myMethod do inner end"
|
78
|
-
expect(MyBlockInnerHandler).to be_reached
|
79
|
-
MyBlockInnerHandler.reset
|
80
|
-
Parser::SourceParser.parse_string "myMethod { inner }"
|
81
|
-
expect(MyBlockInnerHandler).to be_reached
|
82
|
-
Parser::SourceParser.parser_type = :ruby
|
83
|
-
end
|
84
|
-
end
|