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.

Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/LEGAL +29 -1
  3. data/docs/WhatsNew.md +2 -2
  4. data/lib/yard/autoload.rb +2 -1
  5. data/lib/yard/cli/command.rb +1 -1
  6. data/lib/yard/cli/yardoc.rb +1 -1
  7. data/lib/yard/code_objects/base.rb +4 -1
  8. data/lib/yard/docstring_parser.rb +1 -1
  9. data/lib/yard/handlers/ruby/attribute_handler.rb +1 -1
  10. data/lib/yard/handlers/ruby/legacy/attribute_handler.rb +1 -1
  11. data/lib/yard/handlers/ruby/mixin_handler.rb +13 -6
  12. data/lib/yard/i18n/locale.rb +1 -1
  13. data/lib/yard/i18n/message.rb +2 -2
  14. data/lib/yard/i18n/messages.rb +1 -1
  15. data/lib/yard/i18n/pot_generator.rb +1 -1
  16. data/lib/yard/options.rb +1 -1
  17. data/lib/yard/parser/ruby/ruby_parser.rb +8 -2
  18. data/lib/yard/registry_resolver.rb +2 -1
  19. data/lib/yard/server/commands/base.rb +1 -1
  20. data/lib/yard/server/commands/static_file_helpers.rb +1 -2
  21. data/lib/yard/server/http_utils.rb +512 -0
  22. data/lib/yard/server/rack_adapter.rb +13 -5
  23. data/lib/yard/tags/tag.rb +2 -2
  24. data/lib/yard/tags/types_explainer.rb +1 -1
  25. data/lib/yard/templates/helpers/html_helper.rb +1 -1
  26. data/lib/yard/version.rb +1 -1
  27. data/po/ja.po +19 -19
  28. metadata +5 -59
  29. data/.dockerignore +0 -2
  30. data/.gitattributes +0 -4
  31. data/.github/FUNDING.yml +0 -3
  32. data/.github/ISSUE_TEMPLATE.md +0 -33
  33. data/.github/PULL_REQUEST_TEMPLATE.md +0 -12
  34. data/.github/workflows/ci.yml +0 -30
  35. data/.github/workflows/gem.yml +0 -19
  36. data/.gitignore +0 -14
  37. data/.rspec +0 -2
  38. data/.rubocop.yml +0 -112
  39. data/.yardopts +0 -26
  40. data/.yardopts_guide +0 -19
  41. data/.yardopts_i18n +0 -23
  42. data/CHANGELOG.md +0 -836
  43. data/CODE_OF_CONDUCT.md +0 -15
  44. data/CONTRIBUTING.md +0 -140
  45. data/Dockerfile.samus +0 -28
  46. data/Gemfile +0 -34
  47. data/Rakefile +0 -36
  48. data/SECURITY.md +0 -26
  49. data/benchmarks/builtins_vs_eval.rb +0 -24
  50. data/benchmarks/concat_vs_join.rb +0 -13
  51. data/benchmarks/erb_vs_erubis.rb +0 -54
  52. data/benchmarks/format_args.rb +0 -47
  53. data/benchmarks/generation.rb +0 -38
  54. data/benchmarks/marshal_vs_dbm.rb +0 -64
  55. data/benchmarks/parsing.rb +0 -46
  56. data/benchmarks/pathname_vs_string.rb +0 -51
  57. data/benchmarks/rdoc_vs_yardoc.rb +0 -11
  58. data/benchmarks/registry_store_types.rb +0 -49
  59. data/benchmarks/ri_vs_yri.rb +0 -19
  60. data/benchmarks/ripper_parser.rb +0 -13
  61. data/benchmarks/splat_vs_flatten.rb +0 -13
  62. data/benchmarks/template_erb.rb +0 -23
  63. data/benchmarks/template_format.rb +0 -7
  64. data/benchmarks/template_profile.rb +0 -18
  65. data/benchmarks/yri_cache.rb +0 -20
  66. data/samus.json +0 -49
  67. data/tasks/prepare_tag.rake +0 -45
  68. data/tasks/update_error_map.rake +0 -53
  69. data/yard.gemspec +0 -25
data/CODE_OF_CONDUCT.md DELETED
@@ -1,15 +0,0 @@
1
- This document provides community guidelines for a safe, respectful, productive,
2
- and collaborative place for any person who is willing to contribute to the YARD
3
- project. It applies to all “collaborative space”, which is defined as community
4
- communications channels (such as mailing lists, submitted patches, commit
5
- comments, etc.).
6
-
7
- * Participants will be tolerant of opposing views.
8
-
9
- * Participants must ensure that their language and actions are free of personal
10
- attacks and disparaging personal remarks.
11
-
12
- * When interpreting the words and actions of others, participants should always
13
- assume good intentions.
14
-
15
- * Behaviour which can be reasonably considered harassment will not be tolerated.
data/CONTRIBUTING.md DELETED
@@ -1,140 +0,0 @@
1
- # Contributing Guide
2
-
3
- ## Help YARD Help You!
4
-
5
- **YARD thrives off of the contributions of its users**. This project will gladly
6
- review pull requests and issues. This document outlines how to maximize
7
- the chance of a reported issue being resolved or pull request being accepted.
8
-
9
- ## Code of Conduct
10
-
11
- **All reported issues, pull requests, communication, and code related to YARD**
12
- **must follow the [Code of Conduct][code] or they will be moderated immediately**.
13
- Please take time to familiarize yourself with the Code of Conduct before
14
- you get started. Fundamentally, **you are expected to behave with respect** to all
15
- other users.
16
-
17
- ## Filing a Bug Report
18
-
19
- **You can submit bug reports on our [GitHub issue tracker][issues]**.
20
-
21
- If you believe you have found a bug, please include a few things in your report:
22
-
23
- 1. **A minimal reproduction of the issue**. Providing a huge blob of code is
24
- better than nothing, but providing the shortest possible set of instructions
25
- is even better. Take out any instructions or code that, when removed, have
26
- no effect on the problematic behavior. The easier your bug is to triage and
27
- diagnose, the higher up in the priority list it will go. We can do this stuff,
28
- but limited time means this may not happen immediately. Make your bug report
29
- extremely accessible and you will almost guarantee a quick fix.
30
-
31
- 2. **Your environment and relevant versions**. Please include your Ruby,
32
- YARD, and system versions (including OS) when reporting a bug. This
33
- makes it easier to diagnose problems. If the issue or stack trace
34
- includes another library, consider also listing any dependencies
35
- that may be affecting the issue. This is where a minimal reproduction
36
- case helps a lot.
37
-
38
- 3. **Your expected result**. Tell us what you think should happen. This
39
- helps us to understand the context of your problem. Many complex features
40
- can contain ambiguous usage, and your use case may differ from the
41
- intended one. If we know your expectations, we can more easily determine
42
- if the behavior is intentional or not.
43
-
44
- Finally, please **DO NOT** submit a report that states a feature simply
45
- _"does not work"_ without any additional information in the report. Consider
46
- the issue from the maintainer's perspective: in order to fix your bug, we
47
- need to drill down to the broken line of code, and in order to do this,
48
- we must be able to reproduce the issue on our end to find that line of
49
- code. The easier we can do this, the quicker your bug gets fixed. Help
50
- us help you by providing as much information as you possibly can. We may
51
- not have the tools or environment to properly diagnose your issue, so
52
- your help may be required to debug the issue.
53
-
54
- Also **consider opening a pull request** to fix the issue yourself if you can.
55
- This will likely speed up the fix time significantly. See below for
56
- information on how to do this.
57
-
58
- ## Asking a Question
59
-
60
- **Questions are accepted on [GitHub issues][issues], but consider signing up**
61
- **for the [YARD mailing list][ml]** and asking it there so that we can organize
62
- issues appropriately. You can also hop onto IRC (irc.freenode.net / #yard)
63
- for quick questions.
64
-
65
- ## Asking for a Feature
66
-
67
- **YARD does not currently accept feature requests filed as GitHub issues**. If
68
- you are looking to have a feature implemented into YARD, consider doing this
69
- yourself and [submitting a pull request][pr] (PR) with your work. If the work
70
- required is involved, consider starting a discussion on the [mailing list][ml]
71
- or opening an issue to ask a question; we will be happy to have a conversation
72
- and let you know if the feature would be considered. They usually are, but
73
- it might be prudent to ask first!
74
-
75
- Please do not fret if your feature request gets closed immediately. We do this
76
- to keep our issue tracker clean. **Closing an issue does not mean it would not**
77
- **be accepted as a pull request**. If the feature would not be accepted as a
78
- PR, this will be communicated in the closed issue.
79
-
80
- ## Making a Change via Pull Request
81
-
82
- **You can also submit pull requests on our [GitHub issue tracker][issues]**.
83
-
84
- If you've been working on a patch or feature that you want in YARD, here are
85
- some tips to ensure the quickest turnaround time on getting it merged in:
86
-
87
- 1. **Keep your changes small**. If your feature is large, consider splitting
88
- it up into smaller portions and submit pull requests for each component
89
- individually. Feel free to describe this in your first PR or on the
90
- mailing list, but note that it will be much easier to review changes
91
- if they affect smaller portions of code at a time.
92
-
93
- 2. **Keep commits brief and clean**: YARD uses Git and tries to maintain a
94
- clean repository. Please ensure that you use [commit conventions][commit]
95
- to make things nice and neat both in the description and commit history.
96
- Specifically, consider squashing commits if you have partial or complete
97
- reverts of code. Each commit should provide an atomic change that moves
98
- the project forwards, not back. Any changes that only fix other parts of
99
- your PR should be hidden from the commit history.
100
-
101
- 3. **Follow our coding conventions**. YARD uses typical Ruby source formatting,
102
- though it occasionally has minor differences with other projects you may
103
- have seen. Please look through a few files (at least the file you are
104
- editing) to ensure that you are consistent in the formatting your PR is
105
- using.
106
-
107
- 4. **Make sure you have tests**. Not all changes require tests, but if your
108
- changes involve code, you should consider adding at least one new test
109
- case for your change (and ideally a couple of tests). This will add
110
- confidence when reviewing and will make accepting the change much easier.
111
-
112
- 5. **Make sure ALL the tests pass**. YARD has a fairly large suite of tests.
113
- Please make sure you can run all of the tests (`bundle exec rake`) prior
114
- to submitting your PR. Please also remember that YARD supports a number
115
- of environments, including OS X, Linux, Windows, and a number of older
116
- Ruby versions (1.8+), so if you can test under these environments, that
117
- helps (but is not required). At the very least, be aware of this fact
118
- when submitting code.
119
-
120
- If your change is large, consider starting a discussion on the [mailing list][ml]
121
- or opening an issue to ask a question; we will be happy to have a conversation
122
- and let you know if the feature would be considered. They usually are, but
123
- it might be prudent to ask first!
124
-
125
- ## Maintainers
126
-
127
- **Interested in helping to maintain YARD? Email [lsegal@soen.ca][mail]** for more
128
- information. Offering to be a project maintainer is an important contribution
129
- to open source software, and your work will be highly valued in the community.
130
- If you have been a contributor, consider being a member of the core team to
131
- help handle day-to-day operations, such as releases, bug fixes, and triage.
132
- You can do some of this as a non-maintainer too, but if you like this project,
133
- we can always use more hands on deck!
134
-
135
- [code]: https://github.com/lsegal/yard/blob/main/CODE_OF_CONDUCT.md
136
- [issues]: http://github.com/lsegal/yard/issues
137
- [commit]: http://chris.beams.io/posts/git-commit/
138
- [pr]: https://help.github.com/articles/using-pull-requests/
139
- [ml]: https://groups.google.com/forum/#!forum/yardoc
140
- [mail]: mailto:lsegal@soen.ca
data/Dockerfile.samus DELETED
@@ -1,28 +0,0 @@
1
- FROM lsegal/samus:latest as samus
2
-
3
- FROM ruby:2
4
- ARG VERSION
5
- ENV VERSION=${VERSION}
6
- WORKDIR /github/lsegal/yard
7
- ENTRYPOINT samus publish release-v${VERSION}.tar.gz
8
-
9
- # Prepare credential config
10
- RUN mkdir -p ~/.ssh
11
- RUN echo "Host *" > ~/.ssh/config
12
- RUN echo " StrictHostKeyChecking no" >> ~/.ssh/config
13
- RUN chmod 400 ~/.ssh/config
14
- COPY ./.samusprep/.samus /root/.samus
15
- COPY ./.samusprep/.gitconfig /root/.gitconfig
16
-
17
- # Setup Samus
18
- ENV PATH=$PATH:/samus/bin
19
- COPY --from=samus /samus /samus
20
-
21
- # Install gems
22
- ENV BUNDLE_PATH=/var/gems
23
- COPY Gemfile /github/lsegal/yard
24
- RUN bundle
25
-
26
- # Run build
27
- COPY . /github/lsegal/yard
28
- RUN samus build --skip-restore ${VERSION}
data/Gemfile DELETED
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
- source 'https://rubygems.org'
3
-
4
- group :development do
5
- gem 'rspec', '>= 3.11.0'
6
- gem 'rake'
7
- gem 'rdoc'
8
- gem 'json'
9
- gem 'simplecov'
10
- gem 'samus', '~> 3.0.9', :require => false
11
- gem 'coveralls_reborn', :require => false
12
- gem 'webrick'
13
- end
14
-
15
- group :asciidoc do
16
- gem 'asciidoctor'
17
- end
18
-
19
- group :markdown do
20
- gem 'redcarpet'
21
- gem 'commonmarker'
22
- end
23
-
24
- group :textile do
25
- gem 'RedCloth'
26
- end
27
-
28
- group :server do
29
- gem 'rack'
30
- end
31
-
32
- group :i18n do
33
- gem 'gettext'
34
- end
data/Rakefile DELETED
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
- require File.dirname(__FILE__) + '/lib/yard'
3
- require File.dirname(__FILE__) + '/lib/yard/rubygems/specification'
4
- require 'rbconfig'
5
-
6
- YARD::VERSION.replace(ENV['YARD_VERSION']) if ENV['YARD_VERSION']
7
-
8
- Dir['tasks/**/*.rake'].each { |task_file| load task_file }
9
-
10
- desc "Builds the gem"
11
- task :gem do
12
- sh "gem build yard.gemspec"
13
- end
14
-
15
- desc "Installs the gem"
16
- task :install => :gem do
17
- sh "gem install yard-#{YARD::VERSION}.gem --no-document"
18
- end
19
-
20
- begin
21
- require 'rspec/core/rake_task'
22
- RSpec::Core::RakeTask.new(:spec)
23
- rescue LoadError
24
- nil # noop
25
- end
26
-
27
- desc "Generate documentation for Yard, and fail if there are any warnings"
28
- task :test_doc do
29
- sh "ruby bin/yard --fail-on-warning #{"--no-progress" if ENV["CI"]}"
30
- end
31
-
32
- task :default => [:spec, :test_doc]
33
-
34
- YARD::Rake::YardocTask.new do |t|
35
- t.options += ['--title', "YARD #{YARD::VERSION} Documentation"]
36
- end
data/SECURITY.md DELETED
@@ -1,26 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported Versions
4
-
5
- The following versions are supported with security patches for
6
- any reported vulnerabilities in YARD or dependent software.
7
-
8
- | Version | Supported |
9
- | ------- | ------------------ |
10
- | 0.9.x | :white_check_mark: |
11
- | < 0.9 | :x: |
12
-
13
- ## Reporting a Vulnerability
14
-
15
- If you've discovered a vulnerability in YARD source code, please email
16
- lsegal@soen.ca with as much information as possible. You should typically
17
- receive a response within 24-48 hours, though depending on scheduling
18
- it may take up to a week to respond. If you do not get a response on
19
- your initial email within a few days, please re-send your email or
20
- reach out on other channels (such as yardoc@googlegroups.com) to
21
- try to get a hold of a maintainer. Please do not include sensitive
22
- material if you are reaching out through secondary channels unless
23
- you first receive confirmation that it is okay.
24
-
25
- Thank you for your help and cooperation in making YARD a stable and
26
- safe piece of software.
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'benchmark'
3
- require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
4
-
5
- TIMES = (ARGV[0] || 10_000).to_i
6
-
7
- def bench_builtins(name)
8
- YARD::CodeObjects::BUILTIN_EXCEPTIONS_HASH.key? name
9
- end
10
-
11
- def bench_eval(name)
12
- eval(name).is_a?(Class)
13
- rescue
14
- false
15
- end
16
-
17
- Benchmark.bmbm do |b|
18
- b.report("builtins PASS") { TIMES.times { YARD::CodeObjects::BUILTIN_EXCEPTIONS.each {|y| bench_builtins(y) } } }
19
- b.report("eval PASS") { TIMES.times { YARD::CodeObjects::BUILTIN_EXCEPTIONS.each {|y| bench_eval(y) } } }
20
- b.report("builtins FAIL") { TIMES.times { YARD::CodeObjects::BUILTIN_MODULES.each {|y| bench_builtins(y) } } }
21
- b.report("eval FAIL") { TIMES.times { YARD::CodeObjects::BUILTIN_MODULES.each {|y| bench_eval(y) } } }
22
- b.report("builtins ANY") { TIMES.times { YARD::CodeObjects::BUILTIN_CLASSES.each {|y| bench_builtins(y) } } }
23
- b.report("eval ANY") { TIMES.times { YARD::CodeObjects::BUILTIN_CLASSES.each {|y| bench_eval(y) } } }
24
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
- require "benchmark"
3
-
4
- STR1 = "Hello"
5
- JOIN = "::"
6
- STR2 = "World"
7
-
8
- TESTS = 100_000
9
- Benchmark.bmbm do |results|
10
- results.report("concat") { TESTS.times { "".concat(STR1).concat(JOIN).concat(STR2) } }
11
- results.report("add ") { TESTS.times { STR1 + JOIN + STR2 } }
12
- results.report("join ") { TESTS.times { [STR1, STR2].join(JOIN) } }
13
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rubygems'
3
- require 'erubis'
4
- require 'erubis/tiny'
5
- require 'erb'
6
- require "benchmark"
7
- require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
8
-
9
- def rungen
10
- YARD::Registry.load_yardoc(File.join(File.dirname(__FILE__), '..', '.yardoc'))
11
- YARD::Registry.at("YARD::CodeObjects::Base").format(:format => :html)
12
- end
13
-
14
- Benchmark.bmbm do |x|
15
- x.report("erubis") do
16
- eval <<-eof
17
- module YARD; module Templates; module Template
18
- def erb_with(str, x) Erubis::Eruby.new(str) end
19
- end end end
20
- eof
21
-
22
- rungen
23
- end
24
-
25
- x.report("fast-erubis") do
26
- eval <<-eof
27
- module YARD; module Templates; module Template
28
- def erb_with(str, x) Erubis::FastEruby.new(str) end
29
- end end end
30
- eof
31
-
32
- rungen
33
- end
34
-
35
- x.report("tiny-erubis") do
36
- eval <<-eof
37
- module YARD; module Templates; module Template
38
- def erb_with(str, x) Erubis::TinyEruby.new(str) end
39
- end end end
40
- eof
41
-
42
- rungen
43
- end
44
-
45
- x.report("erb") do
46
- eval <<-eof
47
- module YARD; module Templates; module Template
48
- def erb_with(str, x) ERB.new(str) end
49
- end end end
50
- eof
51
-
52
- rungen
53
- end
54
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
- require "benchmark"
3
- require 'lib/yard'
4
-
5
- def format_args_regex(object)
6
- if object.signature
7
- object.signature[/#{Regexp.quote object.name.to_s}\s*(.*)/, 1]
8
- else
9
- ""
10
- end
11
- end
12
-
13
- def format_args_parameters(object)
14
- if !object.parameters.empty?
15
- args = object.parameters.map {|n, v| v ? "#{n} = #{v}" : n.to_s }.join(", ")
16
- "(#{args})"
17
- else
18
- ""
19
- end
20
- end
21
-
22
- YARD::Registry.load
23
- $object = YARD::Registry.at('YARD::Generators::Base#G')
24
-
25
- log.puts "regex: " + format_args_regex($object)
26
- log.puts "params: " + format_args_parameters($object)
27
- log.puts
28
-
29
- TIMES = 100_000
30
- Benchmark.bmbm do |x|
31
- x.report("regex") { TIMES.times { format_args_regex($object) } }
32
- x.report("parameters") { TIMES.times { format_args_parameters($object) } }
33
- end
34
-
35
- =begin LAST RUN Jun 23 2008
36
- regex: (generator, opts = {})
37
- params: (generator, opts = {})
38
-
39
- Rehearsal ----------------------------------------------
40
- regex 1.270000 0.020000 1.290000 ( 1.294558)
41
- parameters 0.690000 0.000000 0.690000 ( 0.693324)
42
- ------------------------------------- total: 1.980000sec
43
-
44
- user system total real
45
- regex 1.260000 0.010000 1.270000 ( 1.268214)
46
- parameters 0.670000 0.000000 0.670000 ( 0.679114)
47
- =end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
- require "benchmark"
3
- require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
4
-
5
- unless YARD::CodeObjects::Proxy.private_instance_methods.include?('to_obj')
6
- raise "This benchmark is dependent on YARD::CodeObjects::Proxy#to_obj"
7
- end
8
-
9
- def rungen
10
- YARD::Registry.clear
11
- YARD::CLI::Yardoc.run('--quiet', '--use-cache')
12
- end
13
-
14
- def redef(lock = false)
15
- eval <<-eof
16
- class YARD::CodeObjects::Proxy;
17
- def to_obj
18
- @obj #{lock ? '||' : ''}= YARD::Registry.resolve(@namespace, @name)
19
- end
20
- end
21
- eof
22
- end
23
-
24
- Benchmark.bmbm do |x|
25
- x.report("gen-w/o-locking") { redef; rungen }
26
- x.report("gen-with-locking") { redef(true); rungen }
27
- end
28
-
29
- =begin Results from 2008-06-07
30
- Rehearsal ----------------------------------------------------
31
- gen-w/o-locking 9.650000 0.450000 10.100000 ( 10.150556)
32
- gen-with-locking 7.790000 0.400000 8.190000 ( 8.373811)
33
- ------------------------------------------ total: 18.290000sec
34
-
35
- user system total real
36
- gen-w/o-locking 9.820000 0.430000 10.250000 ( 10.293283)
37
- gen-with-locking 7.820000 0.380000 8.200000 ( 8.243326)
38
- =end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'benchmark'
3
- require 'dbm'
4
-
5
- MARSHAL_FILE = "marshal_test.db"
6
- DBM_FILE = "dbm_test"
7
- WRITE_TIMES = 1
8
- READ_TIMES = 100
9
- NUM_INDICES = 10_000
10
- INDICES = ['33', '857', '5022', '8555']
11
-
12
- def generate_index
13
- '0' * (rand * 4096).floor
14
- end
15
-
16
- def write_dbm
17
- File.unlink(DBM_FILE + ".db") if File.exist?(DBM_FILE + ".db")
18
- handle = DBM.new(DBM_FILE)
19
- NUM_INDICES.times {|t| handle[t.to_s] = Marshal.dump(generate_index) }
20
- handle.close
21
- end
22
-
23
- def read_dbm
24
- db = DBM.open(DBM_FILE)
25
- INDICES.each {|index| Marshal.load(db[index]) }
26
- db.close
27
- end
28
-
29
- def write_marshal
30
- File.unlink(MARSHAL_FILE) if File.exist?(MARSHAL_FILE)
31
- handle = {}
32
- NUM_INDICES.times {|t| handle[t.to_s] = generate_index }
33
- File.open(MARSHAL_FILE, "wb") {|f| f.write(Marshal.dump(handle)) }
34
- end
35
-
36
- def read_marshal
37
- db = Marshal.load(File.read(MARSHAL_FILE))
38
- INDICES.each {|index| db[index] }
39
- end
40
-
41
- Benchmark.bmbm do |x|
42
- x.report("marshal-write") { WRITE_TIMES.times { write_marshal } }
43
- x.report("dbm-write") { WRITE_TIMES.times { write_dbm } }
44
- x.report("marshal-read ") { READ_TIMES.times { read_marshal } }
45
- x.report("dbm-read ") { READ_TIMES.times { read_dbm } }
46
- end
47
-
48
- File.unlink(MARSHAL_FILE)
49
- File.unlink(DBM_FILE + ".db")
50
-
51
- __END__
52
-
53
- Rehearsal -------------------------------------------------
54
- marshal-write 0.090000 0.070000 0.160000 ( 0.465820)
55
- dbm-write 0.560000 0.570000 1.130000 ( 3.045556)
56
- marshal-read 4.640000 3.180000 7.820000 ( 7.821978)
57
- dbm-read 0.020000 0.020000 0.040000 ( 0.070920)
58
- ---------------------------------------- total: 9.150000sec
59
-
60
- user system total real
61
- marshal-write 0.080000 0.050000 0.130000 ( 0.436561)
62
- dbm-write 0.560000 0.550000 1.110000 ( 2.030530)
63
- marshal-read 4.670000 3.180000 7.850000 ( 7.842232)
64
- dbm-read 0.010000 0.020000 0.030000 ( 0.053928)
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
- require "benchmark"
3
- require 'yard'
4
- require 'logger'
5
-
6
- PATH_ORDER = [
7
- 'lib/yard/autoload.rb',
8
- 'lib/yard/code_objects/base.rb',
9
- 'lib/yard/code_objects/namespace_object.rb',
10
- 'lib/yard/handlers/base.rb',
11
- 'lib/yard/generators/helpers/*.rb',
12
- 'lib/yard/generators/base.rb',
13
- 'lib/yard/generators/method_listing_generator.rb',
14
- 'lib/yard/serializers/base.rb',
15
- 'lib/**/*.rb'
16
- ]
17
-
18
- Benchmark.bmbm do |x|
19
- x.report("parse in order") { YARD::Registry.clear; YARD.parse PATH_ORDER, [], Logger::ERROR }
20
- x.report("parse") { YARD::Registry.clear; YARD.parse 'lib/**/*.rb', [], Logger::ERROR }
21
- end
22
-
23
- =begin
24
- load_order branch (2008-06-07):
25
-
26
- Rehearsal --------------------------------------------------
27
- parse in order 6.510000 0.050000 6.560000 ( 6.563223)
28
- parse 6.300000 0.040000 6.340000 ( 6.362272)
29
- ---------------------------------------- total: 12.900000sec
30
-
31
- user system total real
32
- parse in order 6.310000 0.060000 6.370000 ( 6.390945)
33
- parse 6.300000 0.050000 6.350000 ( 6.366709)
34
-
35
-
36
- api_changes branch before merge (2008-06-07)
37
-
38
- Rehearsal --------------------------------------------------
39
- parse in order 6.330000 0.050000 6.380000 ( 6.397552)
40
- parse 6.380000 0.050000 6.430000 ( 6.446954)
41
- ---------------------------------------- total: 12.810000sec
42
-
43
- user system total real
44
- parse in order 6.320000 0.040000 6.360000 ( 6.394460)
45
- parse 6.040000 0.040000 6.080000 ( 6.099738)
46
- =end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'pathname'
3
- require "benchmark"
4
- require File.dirname(__FILE__) + '/../lib/yard'
5
-
6
- pathobj = Pathname.new("a/b/c")
7
- strobj = "a/b/c"
8
-
9
- TIMES = 1_000
10
-
11
- log.puts "join:"
12
- Benchmark.bmbm do |x|
13
- x.report("pathname") { TIMES.times { Pathname.new("a/b/c").join("d", "e", "f") } }
14
- x.report("string ") { TIMES.times { File.join("a/b/c", "d", "e", "f") } }
15
- x.report("pathname-sameobject") { TIMES.times { pathobj.join("d", "e", "f") } }
16
- x.report("string-sameobject ") { TIMES.times { File.join(strobj, "d", "e", "f") } }
17
- end
18
-
19
- log.puts
20
- log.puts
21
- log.puts "cleanpath:"
22
- Benchmark.bmbm do |x|
23
- x.report("pathname") { TIMES.times { Pathname.new("a/b//.././c").cleanpath } }
24
- x.report("string ") { TIMES.times { File.cleanpath("a/b//.././c") } }
25
- end
26
-
27
- __END__
28
- join:
29
- Rehearsal -------------------------------------------------------
30
- pathname 0.330000 0.020000 0.350000 ( 0.353481)
31
- string 0.010000 0.000000 0.010000 ( 0.001390)
32
- pathname-sameobject 0.360000 0.020000 0.380000 ( 0.384473)
33
- string-sameobject 0.000000 0.000000 0.000000 ( 0.001187)
34
- ---------------------------------------------- total: 0.740000sec
35
-
36
- user system total real
37
- pathname 0.330000 0.020000 0.350000 ( 0.350820)
38
- string 0.000000 0.000000 0.000000 ( 0.001055)
39
- pathname-sameobject 0.330000 0.010000 0.340000 ( 0.346949)
40
- string-sameobject 0.000000 0.000000 0.000000 ( 0.001141)
41
-
42
-
43
- cleanpath:
44
- Rehearsal --------------------------------------------
45
- pathname 0.060000 0.000000 0.060000 ( 0.059767)
46
- string 0.010000 0.000000 0.010000 ( 0.013775)
47
- ----------------------------------- total: 0.070000sec
48
-
49
- user system total real
50
- pathname 0.060000 0.000000 0.060000 ( 0.059697)
51
- string 0.020000 0.000000 0.020000 ( 0.013624)
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
- require "benchmark"
3
-
4
- files = Dir.glob(File.dirname(__FILE__) + '/../lib/**/*.rb').join(" ")
5
- Benchmark.bmbm do |x|
6
- x.report("rdoc") { `rm -rf rdoc && rdoc -q -o rdoc #{files} && rm -rf rdoc` }
7
- x.report("yardoc") { `rm -rf yard && ./bin/yardoc -q -o yard #{files} && rm -rf yard` }
8
- x.report("yardoc-cached") { `rm -rf yard && ./bin/yardoc -c -q -o yard #{files} && rm -rf yard` }
9
- x.report("yardoc-legacy") { `rm -rf yard && ./bin/yardoc --legacy -q -o yard #{files} && rm -rf yard` }
10
- x.report("yardoc-legacy-cached") { `rm -rf yard && ./bin/yardoc --legacy -c -q -o yard #{files} && rm -rf yard` }
11
- end