yard 0.9.28 → 0.9.32
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/LEGAL +29 -1
- data/docs/WhatsNew.md +2 -2
- data/lib/yard/autoload.rb +2 -1
- data/lib/yard/cli/command.rb +1 -1
- data/lib/yard/cli/yardoc.rb +1 -1
- data/lib/yard/code_objects/base.rb +4 -1
- data/lib/yard/docstring_parser.rb +1 -1
- data/lib/yard/handlers/ruby/attribute_handler.rb +1 -1
- data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +1 -1
- data/lib/yard/handlers/ruby/mixin_handler.rb +13 -6
- data/lib/yard/i18n/locale.rb +1 -1
- data/lib/yard/i18n/message.rb +2 -2
- data/lib/yard/i18n/messages.rb +1 -1
- data/lib/yard/i18n/pot_generator.rb +1 -1
- data/lib/yard/options.rb +1 -1
- data/lib/yard/parser/ruby/ruby_parser.rb +8 -2
- data/lib/yard/registry_resolver.rb +2 -1
- data/lib/yard/server/commands/base.rb +1 -1
- data/lib/yard/server/commands/static_file_helpers.rb +1 -2
- data/lib/yard/server/http_utils.rb +512 -0
- data/lib/yard/server/rack_adapter.rb +13 -5
- data/lib/yard/tags/tag.rb +2 -2
- data/lib/yard/tags/types_explainer.rb +1 -1
- data/lib/yard/templates/helpers/html_helper.rb +1 -1
- data/lib/yard/version.rb +1 -1
- data/po/ja.po +19 -19
- metadata +5 -59
- data/.dockerignore +0 -2
- data/.gitattributes +0 -4
- data/.github/FUNDING.yml +0 -3
- data/.github/ISSUE_TEMPLATE.md +0 -33
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -12
- data/.github/workflows/ci.yml +0 -30
- data/.github/workflows/gem.yml +0 -19
- data/.gitignore +0 -14
- data/.rspec +0 -2
- data/.rubocop.yml +0 -112
- data/.yardopts +0 -26
- data/.yardopts_guide +0 -19
- data/.yardopts_i18n +0 -23
- data/CHANGELOG.md +0 -836
- data/CODE_OF_CONDUCT.md +0 -15
- data/CONTRIBUTING.md +0 -140
- data/Dockerfile.samus +0 -28
- data/Gemfile +0 -34
- data/Rakefile +0 -36
- data/SECURITY.md +0 -26
- data/benchmarks/builtins_vs_eval.rb +0 -24
- data/benchmarks/concat_vs_join.rb +0 -13
- data/benchmarks/erb_vs_erubis.rb +0 -54
- data/benchmarks/format_args.rb +0 -47
- data/benchmarks/generation.rb +0 -38
- data/benchmarks/marshal_vs_dbm.rb +0 -64
- data/benchmarks/parsing.rb +0 -46
- data/benchmarks/pathname_vs_string.rb +0 -51
- data/benchmarks/rdoc_vs_yardoc.rb +0 -11
- data/benchmarks/registry_store_types.rb +0 -49
- data/benchmarks/ri_vs_yri.rb +0 -19
- data/benchmarks/ripper_parser.rb +0 -13
- data/benchmarks/splat_vs_flatten.rb +0 -13
- data/benchmarks/template_erb.rb +0 -23
- data/benchmarks/template_format.rb +0 -7
- data/benchmarks/template_profile.rb +0 -18
- data/benchmarks/yri_cache.rb +0 -20
- data/samus.json +0 -49
- data/tasks/prepare_tag.rake +0 -45
- data/tasks/update_error_map.rake +0 -53
- data/yard.gemspec +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f605a509ca15a07baaa8f5c0055f6f09c3032f41d5d26e237101df6f35d1676
|
4
|
+
data.tar.gz: 18eb589b1e25e7ad9b17775c3b94ea865861e28ab802de1b6f4302e0f1d41ac7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 258b0fcdfc5d0ac3bf360cc7943374891d0eb456346814d33febc7c93f8c23290fcd7974819907c4a5238a26d2d201a3b59e9a9b95cbfe263b51e8b3079dc7e7
|
7
|
+
data.tar.gz: 724d0aca0dc5bdb5e167934dbe57eefad9211453d9ab20b992b4d18cebc2c7eaab8c8930f0f110d5e8d1f46a428b97e14b22115618ce747b0b5b8992f99a4874
|
data/LEGAL
CHANGED
@@ -4,7 +4,7 @@ LEGAL NOTICE INFORMATION
|
|
4
4
|
All the files in this distribution are covered under either the MIT
|
5
5
|
license (see the file LICENSE) except some files mentioned below.
|
6
6
|
|
7
|
-
lib/parser/ruby/legacy/ruby_lex.rb:
|
7
|
+
lib/yard/parser/ruby/legacy/ruby_lex.rb:
|
8
8
|
|
9
9
|
This file is under the Ruby license. YARD uses a modified version of it.
|
10
10
|
|
@@ -64,3 +64,31 @@ lib/parser/ruby/legacy/ruby_lex.rb:
|
|
64
64
|
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
65
65
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
66
66
|
PURPOSE.
|
67
|
+
|
68
|
+
lib/yard/server/http_utils.rb:
|
69
|
+
|
70
|
+
This file is vendored and slightly modified from WEBrick because it was
|
71
|
+
removed from Ruby core in Ruby 3.x.
|
72
|
+
|
73
|
+
Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
|
74
|
+
|
75
|
+
Redistribution and use in source and binary forms, with or without
|
76
|
+
modification, are permitted provided that the following conditions
|
77
|
+
are met:
|
78
|
+
1. Redistributions of source code must retain the above copyright
|
79
|
+
notice, this list of conditions and the following disclaimer.
|
80
|
+
2. Redistributions in binary form must reproduce the above copyright
|
81
|
+
notice, this list of conditions and the following disclaimer in the
|
82
|
+
documentation and/or other materials provided with the distribution.
|
83
|
+
|
84
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
85
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
86
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
87
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
88
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
89
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
90
|
+
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
91
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
92
|
+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
93
|
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
94
|
+
SUCH DAMAGE.
|
data/docs/WhatsNew.md
CHANGED
@@ -92,7 +92,7 @@ methods are defined dynamically and not associated with any code.
|
|
92
92
|
#### New `@!parse` directive to parse Ruby code
|
93
93
|
|
94
94
|
A new {tag:!parse} directive was added that allows a developer to have
|
95
|
-
YARD parse code that might not necessarily be
|
95
|
+
YARD parse code that might not necessarily be parsable in its original
|
96
96
|
form. This is useful when using `instance_eval` and other dynamic
|
97
97
|
meta-programming techniques to define methods or perform functionality.
|
98
98
|
For instance, a common case of the "self.included" callback in module
|
@@ -1204,7 +1204,7 @@ that is actually being employed. Here's an example:
|
|
1204
1204
|
# @overload def to_html(html, autolink = true)
|
1205
1205
|
# This docstring describes the specific overload only.
|
1206
1206
|
# @param [String] html the HTML
|
1207
|
-
# @param [Boolean] autolink whether or not to
|
1207
|
+
# @param [Boolean] autolink whether or not to automatically link
|
1208
1208
|
# URL references
|
1209
1209
|
# @overload def to_html(html, opts = {})
|
1210
1210
|
# @param [String] html the HTML
|
data/lib/yard/autoload.rb
CHANGED
@@ -170,7 +170,6 @@ module YARD
|
|
170
170
|
|
171
171
|
module Ruby # Ruby parsing components.
|
172
172
|
module Legacy # Handles Ruby parsing in Ruby 1.8.
|
173
|
-
autoload :RipperParser, __p('parser/ruby/legacy/ruby_parser')
|
174
173
|
autoload :RubyParser, __p('parser/ruby/legacy/ruby_parser')
|
175
174
|
autoload :RubyToken, __p('parser/ruby/legacy/ruby_lex')
|
176
175
|
autoload :Statement, __p('parser/ruby/legacy/statement')
|
@@ -180,6 +179,7 @@ module YARD
|
|
180
179
|
|
181
180
|
autoload :AstNode, __p('parser/ruby/ast_node')
|
182
181
|
autoload :RubyParser, __p('parser/ruby/ruby_parser')
|
182
|
+
autoload :RipperParser, __p('parser/ruby/ruby_parser')
|
183
183
|
autoload :TokenResolver, __p('parser/ruby/token_resolver')
|
184
184
|
end
|
185
185
|
|
@@ -236,6 +236,7 @@ module YARD
|
|
236
236
|
autoload :FinishRequest, __p('server/adapter')
|
237
237
|
autoload :LibraryVersion, __p('server/library_version')
|
238
238
|
autoload :NotFoundError, __p('server/adapter')
|
239
|
+
autoload :HTTPUtils, __p('server/http_utils')
|
239
240
|
autoload :RackAdapter, __p('server/rack_adapter')
|
240
241
|
autoload :RackMiddleware, __p('server/rack_adapter')
|
241
242
|
autoload :Router, __p('server/router')
|
data/lib/yard/cli/command.rb
CHANGED
data/lib/yard/cli/yardoc.rb
CHANGED
@@ -334,7 +334,7 @@ module YARD
|
|
334
334
|
private
|
335
335
|
|
336
336
|
# Generates output for objects
|
337
|
-
# @param [Hash, nil] checksums if supplied, a list of
|
337
|
+
# @param [Hash, nil] checksums if supplied, a list of checksums for files.
|
338
338
|
# @return [void]
|
339
339
|
# @since 0.5.1
|
340
340
|
def run_generate(checksums)
|
@@ -434,7 +434,10 @@ module YARD
|
|
434
434
|
#
|
435
435
|
# @return [Symbol] the type of code object this represents
|
436
436
|
def type
|
437
|
-
self.class.name.split('::').last
|
437
|
+
obj_name = self.class.name.split('::').last
|
438
|
+
obj_name.gsub!(/Object$/, '')
|
439
|
+
obj_name.downcase!
|
440
|
+
obj_name.to_sym
|
438
441
|
end
|
439
442
|
|
440
443
|
# Represents the unique path of the object. The default implementation
|
@@ -8,7 +8,7 @@ module YARD
|
|
8
8
|
#
|
9
9
|
# == Subclassing Notes
|
10
10
|
#
|
11
|
-
# The DocstringParser can be subclassed and
|
11
|
+
# The DocstringParser can be subclassed and substituted during parsing by
|
12
12
|
# setting the {Docstring.default_parser} attribute with the name of the
|
13
13
|
# subclass. This allows developers to change the way docstrings are
|
14
14
|
# parsed, allowing for completely different docstring syntaxes.
|
@@ -52,7 +52,7 @@ class YARD::Handlers::Ruby::AttributeHandler < YARD::Handlers::Ruby::Base
|
|
52
52
|
register(o)
|
53
53
|
o.docstring = doc if o.docstring.blank?(false)
|
54
54
|
|
55
|
-
#
|
55
|
+
# Register the object explicitly
|
56
56
|
namespace.attributes[scope][name][type] = o
|
57
57
|
else
|
58
58
|
obj = namespace.children.find {|other| other.name == meth.to_sym && other.scope == scope }
|
@@ -51,7 +51,7 @@ class YARD::Handlers::Ruby::Legacy::AttributeHandler < YARD::Handlers::Ruby::Leg
|
|
51
51
|
register(o)
|
52
52
|
o.docstring = doc if o.docstring.blank?(false)
|
53
53
|
|
54
|
-
#
|
54
|
+
# Register the object explicitly
|
55
55
|
namespace.attributes[scope][name][type] = o
|
56
56
|
else
|
57
57
|
obj = namespace.children.find {|other| other.name == meth.to_sym && other.scope == scope }
|
@@ -26,22 +26,29 @@ class YARD::Handlers::Ruby::MixinHandler < YARD::Handlers::Ruby::Base
|
|
26
26
|
raise YARD::Parser::UndocumentableError unless mixin.ref?
|
27
27
|
raise YARD::Parser::UndocumentableError if mixin.first.type == :ident
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
obj = Proxy.new(namespace, obj.value, :module)
|
29
|
+
if mixin.type == :var_ref && mixin[0] == s(:kw, "self")
|
30
|
+
obj = namespace
|
32
31
|
else
|
33
|
-
obj = Proxy.new(namespace, mixin.source
|
32
|
+
case obj = Proxy.new(namespace, mixin.source)
|
33
|
+
when ConstantObject # If a constant is included, use its value as the real object
|
34
|
+
obj = Proxy.new(namespace, obj.value, :module)
|
35
|
+
else
|
36
|
+
obj = Proxy.new(namespace, mixin.source, :module)
|
37
|
+
end
|
34
38
|
end
|
35
39
|
|
36
40
|
rec = recipient(mixin)
|
37
|
-
return if rec.nil?
|
41
|
+
return if rec.nil?
|
42
|
+
|
43
|
+
ensure_loaded!(rec)
|
44
|
+
return if rec.mixins(scope).include?(obj)
|
38
45
|
|
39
46
|
shift = statement.method_name(true) == :include ? :unshift : :push
|
40
47
|
rec.mixins(scope).send(shift, obj)
|
41
48
|
end
|
42
49
|
|
43
50
|
def recipient(mixin)
|
44
|
-
if statement[0].type == :const_path_ref
|
51
|
+
if statement[0].type == :const_path_ref || statement[0].type == :top_const_ref
|
45
52
|
Proxy.new(namespace, statement[0].source)
|
46
53
|
elsif statement[0].type == :var_ref && statement[0][0] != s(:kw, "self")
|
47
54
|
statement[0][0].type == :const ?
|
data/lib/yard/i18n/locale.rb
CHANGED
@@ -57,7 +57,7 @@ module YARD
|
|
57
57
|
end
|
58
58
|
|
59
59
|
# @param [String] message the translation target message.
|
60
|
-
# @return [String] translated message. If
|
60
|
+
# @return [String] translated message. If translation isn't
|
61
61
|
# registered, the +message+ is returned.
|
62
62
|
def translate(message)
|
63
63
|
@messages[message] || message
|
data/lib/yard/i18n/message.rb
CHANGED
@@ -8,7 +8,7 @@ module YARD
|
|
8
8
|
#
|
9
9
|
# @since 0.8.1
|
10
10
|
class Message
|
11
|
-
# @return [String] the message ID of the
|
11
|
+
# @return [String] the message ID of the translation target message.
|
12
12
|
attr_reader :id
|
13
13
|
|
14
14
|
# @return [Set] the set of locations. Location is an array of
|
@@ -18,7 +18,7 @@ module YARD
|
|
18
18
|
# @return [Set] the set of comments for the messages.
|
19
19
|
attr_reader :comments
|
20
20
|
|
21
|
-
# Creates a
|
21
|
+
# Creates a translate target message for message ID +id+.
|
22
22
|
#
|
23
23
|
# @param [String] id the message ID of the translate target message.
|
24
24
|
def initialize(id)
|
data/lib/yard/i18n/messages.rb
CHANGED
@@ -28,7 +28,7 @@ module YARD
|
|
28
28
|
@messages[id]
|
29
29
|
end
|
30
30
|
|
31
|
-
# Registers a {Message}, the
|
31
|
+
# Registers a {Message}, the message ID of which is +id+. If
|
32
32
|
# corresponding +Message+ is already registered, the previously
|
33
33
|
# registered object is returned.
|
34
34
|
#
|
@@ -113,7 +113,7 @@ module YARD
|
|
113
113
|
#
|
114
114
|
# Locations of the +Message+ are used to generate the reference
|
115
115
|
# line that is started with "#: ". +relative_base_path+ passed
|
116
|
-
# when the
|
116
|
+
# when the generator is created is prepended to each path in location.
|
117
117
|
#
|
118
118
|
# Comments of the +Message+ are used to generate the
|
119
119
|
# translator-comment line that is started with "# ".
|
data/lib/yard/options.rb
CHANGED
@@ -94,7 +94,7 @@ module YARD
|
|
94
94
|
#
|
95
95
|
# @example Setting an option with Hash syntax
|
96
96
|
# options[:format] = :html # equivalent to: options.format = :html
|
97
|
-
# @param [Symbol, String] key the
|
97
|
+
# @param [Symbol, String] key the option to set
|
98
98
|
# @param [Object] value the value to set for the option
|
99
99
|
# @return [Object] the value being set
|
100
100
|
def []=(key, value) send("#{key}=", value) end
|
@@ -133,6 +133,12 @@ module YARD
|
|
133
133
|
AST_TOKENS = [:CHAR, :backref, :const, :cvar, :gvar, :heredoc_end, :ident,
|
134
134
|
:int, :float, :ivar, :label, :period, :regexp_end, :tstring_content, :backtick]
|
135
135
|
|
136
|
+
COMMENT_SKIP_NODE_TYPES = [
|
137
|
+
:comment,
|
138
|
+
:void_stmt,
|
139
|
+
:list
|
140
|
+
].freeze
|
141
|
+
|
136
142
|
MAPPINGS.each do |k, v|
|
137
143
|
if Array === v
|
138
144
|
v.each {|vv| (REV_MAPPINGS[vv] ||= []) << k }
|
@@ -144,7 +150,7 @@ module YARD
|
|
144
150
|
PARSER_EVENT_TABLE.each do |event, arity|
|
145
151
|
node_class = AstNode.node_class_for(event)
|
146
152
|
|
147
|
-
if /_new\z/ =~ event.to_s
|
153
|
+
if arity == 0 && /_new\z/ =~ event.to_s
|
148
154
|
module_eval(<<-eof, __FILE__, __LINE__ + 1)
|
149
155
|
def on_#{event}(*args)
|
150
156
|
#{node_class}.new(:list, args, :listchar => charno...charno, :listline => lineno..lineno)
|
@@ -613,7 +619,7 @@ module YARD
|
|
613
619
|
|
614
620
|
def insert_comments
|
615
621
|
root.traverse do |node|
|
616
|
-
next if
|
622
|
+
next if COMMENT_SKIP_NODE_TYPES.include?(node.type) || node.parent.type != :list
|
617
623
|
|
618
624
|
# never attach comments to if/unless mod nodes
|
619
625
|
if node.type == :if_mod || node.type == :unless_mod
|
@@ -132,7 +132,8 @@ module YARD
|
|
132
132
|
|
133
133
|
path.scan(split_on_separators_match).each do |part, sep|
|
134
134
|
cur_obj = nil
|
135
|
-
pos +=
|
135
|
+
pos += part.length
|
136
|
+
pos += sep.length
|
136
137
|
parsed_end = pos == path.length
|
137
138
|
|
138
139
|
if !last_obj || (!parsed_end && !last_obj.is_a?(CodeObjects::NamespaceObject))
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'webrick/httputils'
|
3
2
|
|
4
3
|
module YARD
|
5
4
|
module Server
|
@@ -7,7 +6,7 @@ module YARD
|
|
7
6
|
# Include this module to get access to {#static_template_file?}
|
8
7
|
# and {favicon?} helpers.
|
9
8
|
module StaticFileHelpers
|
10
|
-
include
|
9
|
+
include Server::HTTPUtils
|
11
10
|
|
12
11
|
# Serves an empty favicon.
|
13
12
|
# @raise [FinishRequest] finalizes an empty body if the path matches
|