yard 0.9.24 → 0.9.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
include Handlers
|
5
|
-
|
6
|
-
def undoc_error(code)
|
7
|
-
expect { StubbedSourceParser.parse_string(code) }.to raise_error(Parser::UndocumentableError)
|
8
|
-
end
|
9
|
-
|
10
|
-
def with_parser(parser_type)
|
11
|
-
tmp = StubbedSourceParser.parser_type
|
12
|
-
StubbedSourceParser.parser_type = parser_type
|
13
|
-
yield
|
14
|
-
StubbedSourceParser.parser_type = tmp
|
15
|
-
end
|
16
|
-
|
17
|
-
class StubbedProcessor < Processor
|
18
|
-
def process(statements)
|
19
|
-
statements.each_with_index do |stmt, _index|
|
20
|
-
find_handlers(stmt).each do |handler|
|
21
|
-
handler.new(self, stmt).process
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class StubbedSourceParser < Parser::SourceParser
|
28
|
-
StubbedSourceParser.parser_type = :ruby
|
29
|
-
def post_process
|
30
|
-
post = StubbedProcessor.new(self)
|
31
|
-
post.process(@parser.enumerator)
|
32
|
-
end
|
33
|
-
end
|
@@ -1,44 +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
|
-
before(:all) { parse_file :visibility_handler_001, __FILE__ }
|
6
|
-
|
7
|
-
it "is able to set visibility to public" do
|
8
|
-
expect(Registry.at("Testing#pub").visibility).to eq :public
|
9
|
-
expect(Registry.at("Testing#pub2").visibility).to eq :public
|
10
|
-
end
|
11
|
-
|
12
|
-
it "is able to set visibility to private" do
|
13
|
-
expect(Registry.at("Testing#priv").visibility).to eq :private
|
14
|
-
end
|
15
|
-
|
16
|
-
it "is able to set visibility to protected" do
|
17
|
-
expect(Registry.at("Testing#prot").visibility).to eq :protected
|
18
|
-
end
|
19
|
-
|
20
|
-
it "supports parameters and only set visibility on those methods" do
|
21
|
-
expect(Registry.at('Testing#notpriv').visibility).to eq :protected
|
22
|
-
expect(Registry.at('Testing#notpriv2').visibility).to eq :protected
|
23
|
-
expect(Registry.at('Testing#notpriv?').visibility).to eq :protected
|
24
|
-
end
|
25
|
-
|
26
|
-
it "only accepts strings and symbols" do
|
27
|
-
expect(Registry.at('Testing#name')).to be nil
|
28
|
-
expect(Registry.at('Testing#argument')).to be nil
|
29
|
-
expect(Registry.at('Testing#method_call')).to be nil
|
30
|
-
end
|
31
|
-
|
32
|
-
it "handles constants passed in as symbols" do
|
33
|
-
expect(Registry.at('Testing#Foo').visibility).to eq :private
|
34
|
-
end
|
35
|
-
|
36
|
-
it "does not register classes with visibility" do
|
37
|
-
expect(Registry.at('Testing::Bar').visibility).to eq :public
|
38
|
-
expect(Registry.at('Testing::Baz').visibility).to eq :public
|
39
|
-
end
|
40
|
-
|
41
|
-
it "can decorate a method definition" do
|
42
|
-
expect(Registry.at('Testing#decpriv').visibility).to eq :private
|
43
|
-
end unless LEGACY_PARSER
|
44
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
RSpec.describe "YARD::Handlers::Ruby::#{LEGACY_PARSER ? "Legacy::" : ""}YieldHandler" do
|
5
|
-
before(:all) { parse_file :yield_handler_001, __FILE__ }
|
6
|
-
|
7
|
-
it "only parses yield blocks in methods" do
|
8
|
-
expect(P(:Testing).tag(:yield)).to be nil
|
9
|
-
expect(P(:Testing).tag(:yieldparam)).to be nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "handles an empty yield statement" do
|
13
|
-
expect(P('Testing#mymethod').tag(:yield)).to be nil
|
14
|
-
expect(P('Testing#mymethod').tag(:yieldparam)).to be nil
|
15
|
-
end
|
16
|
-
|
17
|
-
it "does not document a yield statement in a method with either @yield or @yieldparam" do
|
18
|
-
expect(P('Testing#mymethod2').tag(:yield).types).to eq ['a', 'b']
|
19
|
-
expect(P('Testing#mymethod2').tag(:yield).text).to eq "Blah"
|
20
|
-
expect(P('Testing#mymethod2').tags(:yieldparam).size).to eq 2
|
21
|
-
|
22
|
-
expect(P('Testing#mymethod3').tag(:yield).types).to eq ['a', 'b']
|
23
|
-
expect(P('Testing#mymethod3').tags(:yieldparam).size).to eq 0
|
24
|
-
|
25
|
-
expect(P('Testing#mymethod4').tag(:yieldparam).name).to eq '_self'
|
26
|
-
expect(P('Testing#mymethod4').tag(:yieldparam).text).to eq 'BLAH'
|
27
|
-
end
|
28
|
-
|
29
|
-
it "handles any arbitrary yield statement" do
|
30
|
-
expect(P('Testing#mymethod5').tag(:yield).types).to eq [':a', 'b', '_self', 'File.read(\'file\', \'w\')', 'CONSTANT']
|
31
|
-
end
|
32
|
-
|
33
|
-
it "handles parentheses" do
|
34
|
-
expect(P('Testing#mymethod6').tag(:yield).types).to eq ['b', 'a']
|
35
|
-
end
|
36
|
-
|
37
|
-
it "only documents the first yield statement in a method (limitation of yield handler)" do
|
38
|
-
expect(P('Testing#mymethod7').tag(:yield).types).to eq ['a']
|
39
|
-
end
|
40
|
-
|
41
|
-
it "handles `self` keyword and list object type as yieldparam for _self" do
|
42
|
-
expect(P('Testing#mymethod8').tag(:yield).types).to eq ['_self']
|
43
|
-
expect(P('Testing#mymethod8').tag(:yieldparam).types).to eq ['Testing']
|
44
|
-
expect(P('Testing#mymethod8').tag(:yieldparam).text).to eq "the object that the method was called on"
|
45
|
-
end
|
46
|
-
|
47
|
-
it "handles `super` keyword and document it under _super" do
|
48
|
-
expect(P('Testing#mymethod9').tag(:yield).types).to eq ['_super']
|
49
|
-
expect(P('Testing#mymethod9').tag(:yieldparam).types).to be nil
|
50
|
-
expect(P('Testing#mymethod9').tag(:yieldparam).text).to eq "the result of the method from the superclass"
|
51
|
-
end
|
52
|
-
end
|
data/spec/i18n/locale_spec.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe YARD::I18n::Locale do
|
4
|
-
def locale(name)
|
5
|
-
YARD::I18n::Locale.new(name)
|
6
|
-
end
|
7
|
-
|
8
|
-
before do
|
9
|
-
@locale = locale("fr")
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "#name" do
|
13
|
-
it "returns name" do
|
14
|
-
expect(locale("fr").name).to eq "fr"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#load" do
|
19
|
-
it "returns false for nonexistent PO" do
|
20
|
-
expect(File).to receive(:exist?).with('foo/fr.po').and_return(false)
|
21
|
-
expect(@locale.load('foo')).to be false
|
22
|
-
end
|
23
|
-
|
24
|
-
have_gettext_gem = true
|
25
|
-
if RUBY_VERSION < "1.9"
|
26
|
-
begin
|
27
|
-
require "gettext/tools/poparser"
|
28
|
-
rescue LoadError
|
29
|
-
have_gettext_gem = false
|
30
|
-
end
|
31
|
-
else
|
32
|
-
begin
|
33
|
-
require "gettext/po_parser"
|
34
|
-
rescue LoadError
|
35
|
-
begin
|
36
|
-
require "gettext/tools/poparser"
|
37
|
-
rescue LoadError
|
38
|
-
have_gettext_gem = false
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it "returns true for existent PO", :if => have_gettext_gem do
|
44
|
-
data = <<-eop
|
45
|
-
msgid ""
|
46
|
-
msgstr ""
|
47
|
-
"Language: fr\n"
|
48
|
-
"MIME-Version: 1.0\n"
|
49
|
-
"Content-Type: text/plain; charset=UTF-8\n"
|
50
|
-
"Content-Transfer-Encoding: 8bit\n"
|
51
|
-
|
52
|
-
msgid "Hello"
|
53
|
-
msgstr "Bonjour"
|
54
|
-
eop
|
55
|
-
parser = GetText::POParser.new
|
56
|
-
expect(File).to receive(:exist?).with('foo/fr.po').and_return(true)
|
57
|
-
expect(GetText::POParser).to receive(:new).and_return(parser)
|
58
|
-
expect(parser).to receive(:parse_file) do |file, hash|
|
59
|
-
expect(file).to eq 'foo/fr.po'
|
60
|
-
parser.parse(String.new(data), hash)
|
61
|
-
end
|
62
|
-
expect(@locale.load('foo')).to be true
|
63
|
-
expect(@locale.translate('Hello')).to eq "Bonjour"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe "#translate" do
|
68
|
-
before do
|
69
|
-
messages = @locale.instance_variable_get(:@messages)
|
70
|
-
messages["Hello"] = "Bonjour"
|
71
|
-
end
|
72
|
-
|
73
|
-
it "returns translated string for existent string" do
|
74
|
-
expect(@locale.translate("Hello")) == "Bonjour"
|
75
|
-
end
|
76
|
-
|
77
|
-
it "returns original string for nonexistent string" do
|
78
|
-
expect(@locale.translate("nonexistent")) == "nonexistent"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
data/spec/i18n/message_spec.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe YARD::I18n::Message do
|
4
|
-
def message(id)
|
5
|
-
YARD::I18n::Message.new(id)
|
6
|
-
end
|
7
|
-
|
8
|
-
before do
|
9
|
-
@message = message("Hello World!")
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "#id" do
|
13
|
-
it "returns ID" do
|
14
|
-
expect(message("Hello World!").id).to eq "Hello World!"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#add_location" do
|
19
|
-
it "adds some locations" do
|
20
|
-
@message.add_location("hello.rb", 10)
|
21
|
-
@message.add_location("message.rb", 5)
|
22
|
-
expect(@message.locations).to eq Set.new([["hello.rb", 10], ["message.rb", 5]])
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "#add_comment" do
|
27
|
-
it "adds some comments" do
|
28
|
-
@message.add_comment("YARD.title")
|
29
|
-
@message.add_comment("Hello#message")
|
30
|
-
expect(@message.comments).to eq Set.new(["YARD.title", "Hello#message"])
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe "#==" do
|
35
|
-
it "returns true for same value messages" do
|
36
|
-
locations = [["hello.rb", 10], ["message.rb", 5]]
|
37
|
-
comments = ["YARD.title", "Hello#message"]
|
38
|
-
|
39
|
-
other_message = message(@message.id)
|
40
|
-
locations.each do |path, line|
|
41
|
-
@message.add_location(path, line)
|
42
|
-
other_message.add_location(path, line)
|
43
|
-
end
|
44
|
-
comments.each do |comment|
|
45
|
-
@message.add_comment(comment)
|
46
|
-
other_message.add_comment(comment)
|
47
|
-
end
|
48
|
-
|
49
|
-
expect(@message).to eq other_message
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
data/spec/i18n/messages_spec.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe YARD::I18n::Messages do
|
4
|
-
def message(id)
|
5
|
-
YARD::I18n::Message.new(id)
|
6
|
-
end
|
7
|
-
|
8
|
-
def messages
|
9
|
-
YARD::I18n::Messages.new
|
10
|
-
end
|
11
|
-
|
12
|
-
before do
|
13
|
-
@messages = messages
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "#each" do
|
17
|
-
it "enumerates messages" do
|
18
|
-
@messages.register("Hello World!")
|
19
|
-
@messages.register("Title")
|
20
|
-
enumerated_messages = []
|
21
|
-
@messages.each do |message|
|
22
|
-
enumerated_messages << message
|
23
|
-
end
|
24
|
-
enumerated_messages = enumerated_messages.sort_by(&:id)
|
25
|
-
expect(enumerated_messages).to eq [message("Hello World!"), message("Title")]
|
26
|
-
end
|
27
|
-
|
28
|
-
it "does not yield any message if there are none" do
|
29
|
-
enumerated_messages = []
|
30
|
-
@messages.each do |message|
|
31
|
-
enumerated_messages << message
|
32
|
-
end
|
33
|
-
expect(enumerated_messages).to eq []
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "#[]" do
|
38
|
-
it "returns registered message" do
|
39
|
-
@messages.register("Hello World!")
|
40
|
-
expect(@messages["Hello World!"]).to eq message("Hello World!")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "returns nil for nonexistent message ID" do
|
44
|
-
expect(@messages["Hello World!"]).to eq nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "#register" do
|
49
|
-
it "returns registered message" do
|
50
|
-
expect(@messages.register("Hello World!")).to eq message("Hello World!")
|
51
|
-
end
|
52
|
-
|
53
|
-
it "returns existent message" do
|
54
|
-
message = @messages.register("Hello World!")
|
55
|
-
expect(@messages.register("Hello World!").object_id).to eq message.object_id
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe "#==" do
|
60
|
-
it "returns true for same value messages" do
|
61
|
-
@messages.register("Hello World!")
|
62
|
-
other_messages = messages
|
63
|
-
other_messages.register("Hello World!")
|
64
|
-
expect(@messages).to eq other_messages
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,295 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe YARD::I18n::PotGenerator do
|
4
|
-
def create_messages(messages)
|
5
|
-
yard_messages = YARD::I18n::Messages.new
|
6
|
-
add_messages(yard_messages, messages)
|
7
|
-
yard_messages
|
8
|
-
end
|
9
|
-
|
10
|
-
def add_messages(yard_messages, messages)
|
11
|
-
messages.each do |id, properties|
|
12
|
-
yard_message = yard_messages.register(id)
|
13
|
-
(properties[:locations] || []).each do |path, line|
|
14
|
-
yard_message.add_location(path, line)
|
15
|
-
end
|
16
|
-
(properties[:comments] || []).each do |comment|
|
17
|
-
yard_message.add_comment(comment)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
before do
|
23
|
-
@generator = YARD::I18n::PotGenerator.new("..")
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "Generate" do
|
27
|
-
it "generates the default header" do
|
28
|
-
current_time = Time.parse("2011-11-20 22:17+0900")
|
29
|
-
allow(@generator).to receive(:current_time).and_return(current_time)
|
30
|
-
pot_creation_date = current_time.strftime("%Y-%m-%d %H:%M%z")
|
31
|
-
expect(@generator.generate).to eq <<-eoh
|
32
|
-
# SOME DESCRIPTIVE TITLE.
|
33
|
-
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
34
|
-
# This file is distributed under the same license as the PACKAGE package.
|
35
|
-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
36
|
-
#
|
37
|
-
#, fuzzy
|
38
|
-
msgid ""
|
39
|
-
msgstr ""
|
40
|
-
"Project-Id-Version: PACKAGE VERSION\\n"
|
41
|
-
"Report-Msgid-Bugs-To: \\n"
|
42
|
-
"POT-Creation-Date: #{pot_creation_date}\\n"
|
43
|
-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
|
44
|
-
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
|
45
|
-
"Language-Team: LANGUAGE <LL@li.org>\\n"
|
46
|
-
"Language: \\n"
|
47
|
-
"MIME-Version: 1.0\\n"
|
48
|
-
"Content-Type: text/plain; charset=UTF-8\\n"
|
49
|
-
"Content-Transfer-Encoding: 8bit\\n"
|
50
|
-
|
51
|
-
eoh
|
52
|
-
end
|
53
|
-
|
54
|
-
it "generates messages in location order" do
|
55
|
-
allow(@generator).to receive(:header).and_return("HEADER\n\n")
|
56
|
-
messages = {
|
57
|
-
"tag|see|Parser::SourceParser.parse" => {
|
58
|
-
:locations => [["yard.rb", 14]],
|
59
|
-
:comments => ["@see"]
|
60
|
-
},
|
61
|
-
"Parses a path or set of paths" => {
|
62
|
-
:locations => [["yard.rb", 12], ["yard/parser/source_parser.rb", 83]],
|
63
|
-
:comments => ["YARD.parse", "YARD::Parser::SourceParser.parse"]
|
64
|
-
}
|
65
|
-
}
|
66
|
-
add_messages(@generator.messages, messages)
|
67
|
-
expect(@generator.generate).to eq <<-'eoh'
|
68
|
-
HEADER
|
69
|
-
|
70
|
-
# YARD.parse
|
71
|
-
# YARD::Parser::SourceParser.parse
|
72
|
-
#: ../yard.rb:12
|
73
|
-
#: ../yard/parser/source_parser.rb:83
|
74
|
-
msgid "Parses a path or set of paths"
|
75
|
-
msgstr ""
|
76
|
-
|
77
|
-
# @see
|
78
|
-
#: ../yard.rb:14
|
79
|
-
msgid "tag|see|Parser::SourceParser.parse"
|
80
|
-
msgstr ""
|
81
|
-
|
82
|
-
eoh
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe "Escape" do
|
87
|
-
def generate_message_pot(message_id)
|
88
|
-
pot = String.new("")
|
89
|
-
message = YARD::I18n::Message.new(message_id)
|
90
|
-
@generator.send(:generate_message, pot, message)
|
91
|
-
pot
|
92
|
-
end
|
93
|
-
|
94
|
-
it "escapes <\\>" do
|
95
|
-
expect(generate_message_pot("hello \\ world")).to eq <<-'eop'
|
96
|
-
msgid "hello \\ world"
|
97
|
-
msgstr ""
|
98
|
-
|
99
|
-
eop
|
100
|
-
end
|
101
|
-
|
102
|
-
it "escapes <\">" do
|
103
|
-
expect(generate_message_pot("hello \" world")).to eq <<-'eop'
|
104
|
-
msgid "hello \" world"
|
105
|
-
msgstr ""
|
106
|
-
|
107
|
-
eop
|
108
|
-
end
|
109
|
-
|
110
|
-
it "escapes <\\n>" do
|
111
|
-
expect(generate_message_pot("hello \n world")).to eq <<-'eop'
|
112
|
-
msgid "hello \n"
|
113
|
-
" world"
|
114
|
-
msgstr ""
|
115
|
-
|
116
|
-
eop
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
describe "Object" do
|
121
|
-
before do
|
122
|
-
Registry.clear
|
123
|
-
@yard = YARD::CodeObjects::ModuleObject.new(:root, :YARD)
|
124
|
-
end
|
125
|
-
|
126
|
-
it "extracts at docstring" do
|
127
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
128
|
-
o.docstring = "An alias to {Parser::SourceParser}'s parsing method"
|
129
|
-
end
|
130
|
-
@generator.parse_objects([object])
|
131
|
-
expect(@generator.messages).to eq create_messages(
|
132
|
-
"An alias to {Parser::SourceParser}'s parsing method" => {
|
133
|
-
:locations => [],
|
134
|
-
:comments => ["YARD.parse"]
|
135
|
-
}
|
136
|
-
)
|
137
|
-
end
|
138
|
-
|
139
|
-
it "extracts at location" do
|
140
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
141
|
-
o.docstring = "An alias to {Parser::SourceParser}'s parsing method"
|
142
|
-
o.files = [["yard.rb", 12]]
|
143
|
-
end
|
144
|
-
@generator.parse_objects([object])
|
145
|
-
expect(@generator.messages).to eq create_messages(
|
146
|
-
"An alias to {Parser::SourceParser}'s parsing method" => {
|
147
|
-
:locations => [["yard.rb", 13]],
|
148
|
-
:comments => ["YARD.parse"]
|
149
|
-
}
|
150
|
-
)
|
151
|
-
end
|
152
|
-
|
153
|
-
it "extracts at tag name" do
|
154
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
155
|
-
o.docstring = "@see Parser::SourceParser.parse"
|
156
|
-
o.files = [["yard.rb", 12]]
|
157
|
-
end
|
158
|
-
@generator.parse_objects([object])
|
159
|
-
expect(@generator.messages).to eq create_messages(
|
160
|
-
"tag|see|Parser::SourceParser.parse" => {
|
161
|
-
:locations => [["yard.rb", 12]],
|
162
|
-
:comments => ["@see"]
|
163
|
-
}
|
164
|
-
)
|
165
|
-
end
|
166
|
-
|
167
|
-
it "extracts at tag text" do
|
168
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
169
|
-
o.docstring = <<-eod
|
170
|
-
@example Parse a glob of files
|
171
|
-
YARD.parse('lib/**/*.rb')
|
172
|
-
eod
|
173
|
-
o.files = [["yard.rb", 12]]
|
174
|
-
end
|
175
|
-
@generator.parse_objects([object])
|
176
|
-
expect(@generator.messages).to eq create_messages(
|
177
|
-
"tag|example|Parse a glob of files" => {
|
178
|
-
:locations => [["yard.rb", 12]],
|
179
|
-
:comments => ["@example"]
|
180
|
-
},
|
181
|
-
"YARD.parse('lib/**/*.rb')" => {
|
182
|
-
:locations => [["yard.rb", 12]],
|
183
|
-
:comments => ["@example Parse a glob of files"]
|
184
|
-
}
|
185
|
-
)
|
186
|
-
end
|
187
|
-
|
188
|
-
it "extracts at tag types" do
|
189
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
190
|
-
o.docstring = <<-eod
|
191
|
-
@param [String, Array<String>] paths a path, glob, or list of paths to
|
192
|
-
parse
|
193
|
-
eod
|
194
|
-
o.files = [["yard.rb", 12]]
|
195
|
-
end
|
196
|
-
@generator.parse_objects([object])
|
197
|
-
expect(@generator.messages).to eq create_messages(
|
198
|
-
"tag|param|paths" => {
|
199
|
-
:locations => [["yard.rb", 12]],
|
200
|
-
:comments => ["@param [String, Array<String>]"]
|
201
|
-
},
|
202
|
-
"a path, glob, or list of paths to\nparse" => {
|
203
|
-
:locations => [["yard.rb", 12]],
|
204
|
-
:comments => ["@param [String, Array<String>] paths"]
|
205
|
-
}
|
206
|
-
)
|
207
|
-
end
|
208
|
-
|
209
|
-
it "extracts at overload tag recursively" do
|
210
|
-
object = YARD::CodeObjects::MethodObject.new(@yard, :parse, :module) do |o|
|
211
|
-
o.docstring = <<-eod
|
212
|
-
@overload foo(i)
|
213
|
-
docstring foo(i)
|
214
|
-
@param [Integer] i integer parameter
|
215
|
-
eod
|
216
|
-
end
|
217
|
-
|
218
|
-
@generator.parse_objects([object])
|
219
|
-
expect(@generator.messages).to eq create_messages(
|
220
|
-
"tag|overload|foo" => {
|
221
|
-
:locations => [],
|
222
|
-
:comments => ["@overload"]
|
223
|
-
},
|
224
|
-
"docstring foo(i)" => {
|
225
|
-
:locations => [],
|
226
|
-
:comments => ["YARD.parse"]
|
227
|
-
},
|
228
|
-
"tag|param|i" => {
|
229
|
-
:locations => [],
|
230
|
-
:comments => ["@param [Integer]"]
|
231
|
-
},
|
232
|
-
"integer parameter" => {
|
233
|
-
:locations => [],
|
234
|
-
:comments => ["@param [Integer] i"]
|
235
|
-
}
|
236
|
-
)
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
describe "File" do
|
241
|
-
it "extracts at attribute" do
|
242
|
-
path = "GettingStarted.md"
|
243
|
-
text = <<-eor
|
244
|
-
# @title Getting Started Guide
|
245
|
-
|
246
|
-
# Getting Started with YARD
|
247
|
-
eor
|
248
|
-
allow(File).to receive(:open).with(path).and_yield(StringIO.new(text))
|
249
|
-
allow(File).to receive(:read).with(path).and_return(text)
|
250
|
-
file = YARD::CodeObjects::ExtraFileObject.new(path)
|
251
|
-
@generator.parse_files([file])
|
252
|
-
expect(@generator.messages).to eq create_messages(
|
253
|
-
"Getting Started Guide" => {
|
254
|
-
:locations => [[path, 1]],
|
255
|
-
:comments => ["title"]
|
256
|
-
},
|
257
|
-
"# Getting Started with YARD" => {
|
258
|
-
:locations => [[path, 3]],
|
259
|
-
:comments => []
|
260
|
-
}
|
261
|
-
)
|
262
|
-
end
|
263
|
-
|
264
|
-
it "extracts at paragraphs" do
|
265
|
-
path = "README.md"
|
266
|
-
paragraph1 = <<-eop.strip
|
267
|
-
Note that class methods must not be referred to with the "::" namespace
|
268
|
-
separator. Only modules, classes and constants should use "::".
|
269
|
-
eop
|
270
|
-
paragraph2 = <<-eop.strip
|
271
|
-
You can also do lookups on any installed gems. Just make sure to build the
|
272
|
-
.yardoc databases for installed gems with:
|
273
|
-
eop
|
274
|
-
text = <<-eot
|
275
|
-
#{paragraph1}
|
276
|
-
|
277
|
-
#{paragraph2}
|
278
|
-
eot
|
279
|
-
allow(File).to receive(:open).with(path).and_yield(StringIO.new(text))
|
280
|
-
allow(File).to receive(:read).with(path).and_return(text)
|
281
|
-
file = YARD::CodeObjects::ExtraFileObject.new(path)
|
282
|
-
@generator.parse_files([file])
|
283
|
-
expect(@generator.messages).to eq create_messages(
|
284
|
-
paragraph1 => {
|
285
|
-
:locations => [[path, 1]],
|
286
|
-
:comments => []
|
287
|
-
},
|
288
|
-
paragraph2 => {
|
289
|
-
:locations => [[path, 4]],
|
290
|
-
:comments => []
|
291
|
-
}
|
292
|
-
)
|
293
|
-
end
|
294
|
-
end
|
295
|
-
end
|