rails-rfc6570 3.2.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/lib/rails/rfc6570/version.rb +1 -1
- data/rails-rfc6570.gemspec +1 -1
- data/spec/dummy/log/test.log +432 -0
- metadata +10 -262
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/README.md +0 -23
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/rubocop-config.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/CHANGELOG.md +0 -154
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/README.rdoc +0 -57
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/CHANGELOG.md +0 -113
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/README.rdoc +0 -40
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/CHANGELOG.md +0 -258
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/README.rdoc +0 -40
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +0 -301
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +0 -202
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +0 -121
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/README.md +0 -243
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/appraisal.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/LICENSE.MIT +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/README.YARD.md +0 -12
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/README.md +0 -279
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/LICENSE +0 -56
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/bigdecimal.gemspec +0 -57
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/README.md +0 -258
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/builder.gemspec +0 -49
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/CHANGELOG.md +0 -934
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/LICENSE +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/README.md +0 -199
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/MIT-LICENSE +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/README_INDEX.rdoc +0 -123
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/CHANGELOG.md +0 -593
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/LICENSE.txt +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/README.md +0 -407
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/README.md +0 -135
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/connection_pool.gemspec +0 -24
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/LICENSE +0 -18
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/README.md +0 -192
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/crass.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.5.1/README.rdoc +0 -84
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +0 -409
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +0 -36
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/drb.gemspec +0 -41
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/CHANGELOG +0 -107
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/README.rdoc +0 -151
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/README.md +0 -127
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/README.md +0 -46
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/README.md +0 -405
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/irb.gemspec +0 -46
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/LICENSE +0 -56
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/README.md +0 -416
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/json.gemspec +0 -68
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/LICENSE.txt +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/README.md +0 -88
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/CHANGELOG.md +0 -566
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/MIT-LICENSE.txt +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/README.md +0 -363
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/CHANGELOG.md +0 -15
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/LICENSE +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/README.markdown +0 -101
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/method_source.gemspec +0 -19
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.1/README.rdoc +0 -835
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE-DEPENDENCIES.md +0 -2224
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE.md +0 -9
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/README.md +0 -290
- data/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/MIT-LICENSE.txt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/LICENSE.txt +0 -25
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/parser.gemspec +0 -43
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/CHANGELOG.md +0 -1141
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/LICENSE +0 -25
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/README.md +0 -466
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/slop/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/CHANGELOG.md +0 -230
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/README.md +0 -189
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/CHANGELOG.md +0 -491
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/README.md +0 -222
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +0 -58
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +0 -60
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/CHANGELOG.md +0 -994
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/README.md +0 -328
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/MIT-LICENSE.txt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/README.md +0 -139
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/README.md +0 -91
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/CHANGELOG.md +0 -201
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/MIT-LICENSE +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/README.md +0 -271
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/CHANGELOG.md +0 -361
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/README.rdoc +0 -39
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/app/templates/README.md.tt +0 -24
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +0 -28
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/README.md.tt +0 -28
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/README.markdown +0 -227
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/README.rdoc +0 -155
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/rake.gemspec +0 -101
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/LICENSE +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/README.md +0 -107
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/rake-release.gemspec +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/LICENSE.rdoc +0 -57
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/README.rdoc +0 -129
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/LICENSE +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/regexp_parser.gemspec +0 -34
- data/vendor/bundle/ruby/3.3.0/gems/reline-0.5.9/README.md +0 -94
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/README.md +0 -57
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/LICENSE.md +0 -27
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/README.md +0 -47
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/LICENSE.md +0 -26
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/README.md +0 -389
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/LICENSE.md +0 -25
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/README.md +0 -326
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/LICENSE.md +0 -25
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/README.md +0 -465
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/LICENSE.md +0 -25
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/README.md +0 -381
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/LICENSE.md +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/README.md +0 -40
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/LICENSE.txt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/README.md +0 -251
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/LICENSE.txt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/README.md +0 -56
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/CHANGELOG.md +0 -85
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/MIT-LICENSE.md +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/README.md +0 -88
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/CHANGELOG.md +0 -116
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/MIT-LICENSE.md +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/README.md +0 -88
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/LICENSE.txt +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/README.md +0 -97
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/CHANGELOG.md +0 -1028
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/MIT-LICENSE.md +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/README.md +0 -109
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/CHANGELOG.md +0 -84
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/MIT-LICENSE.md +0 -21
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/README.md +0 -90
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +0 -19
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/README.md +0 -131
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +0 -191
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +0 -974
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/LICENSE +0 -202
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/README.md +0 -62
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/simplecov-cobertura.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/CHANGELOG.md +0 -81
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/README.md +0 -30
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/simplecov-html.gemspec +0 -23
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +0 -13
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +0 -29
- data/vendor/bundle/ruby/3.3.0/gems/strscan-3.1.0/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/LICENSE.md +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/README.md +0 -45
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/thor.gemspec +0 -33
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/LICENSE +0 -19
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/README.md +0 -406
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/CHANGELOG.md +0 -196
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/MIT-LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/README.md +0 -171
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/README.md +0 -42
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/LICENSE.txt +0 -22
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/README.md +0 -61
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/webrick.gemspec +0 -70
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/MIT-LICENSE +0 -20
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/README.md +0 -1494
- data/vendor/bundle/ruby/3.3.0/specifications/actionpack-7.2.1.gemspec +0 -37
- data/vendor/bundle/ruby/3.3.0/specifications/actionview-7.2.1.gemspec +0 -33
- data/vendor/bundle/ruby/3.3.0/specifications/activesupport-7.2.1.gemspec +0 -36
- data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +0 -30
- data/vendor/bundle/ruby/3.3.0/specifications/appraisal-2.5.0.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.2.gemspec +0 -30
- data/vendor/bundle/ruby/3.3.0/specifications/benchmark-ips-2.13.0.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-3.1.8.gemspec +0 -25
- data/vendor/bundle/ruby/3.3.0/specifications/builder-3.3.0.gemspec +0 -22
- data/vendor/bundle/ruby/3.3.0/specifications/byebug-11.1.3.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/coderay-1.1.3.gemspec +0 -25
- data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.4.gemspec +0 -24
- data/vendor/bundle/ruby/3.3.0/specifications/connection_pool-2.4.1.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/crass-1.0.6.gemspec +0 -27
- data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.5.1.gemspec +0 -37
- data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +0 -22
- data/vendor/bundle/ruby/3.3.0/specifications/drb-2.2.1.gemspec +0 -22
- data/vendor/bundle/ruby/3.3.0/specifications/erubi-1.13.0.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/i18n-1.14.5.gemspec +0 -26
- data/vendor/bundle/ruby/3.3.0/specifications/io-console-0.7.2.gemspec +0 -25
- data/vendor/bundle/ruby/3.3.0/specifications/irb-1.14.0.gemspec +0 -30
- data/vendor/bundle/ruby/3.3.0/specifications/json-2.7.2.gemspec +0 -0
- data/vendor/bundle/ruby/3.3.0/specifications/language_server-protocol-3.17.0.3.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/loofah-2.22.0.gemspec +0 -27
- data/vendor/bundle/ruby/3.3.0/specifications/method_source-1.1.0.gemspec +0 -21
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.25.1.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/nokogiri-1.16.7-x86_64-linux.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/parallel-1.26.3.gemspec +0 -21
- data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.4.2.gemspec +0 -37
- data/vendor/bundle/ruby/3.3.0/specifications/pry-0.14.2.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/pry-byebug-3.10.1.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.1.gemspec +0 -24
- data/vendor/bundle/ruby/3.3.0/specifications/racc-1.8.1.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/rack-3.1.7.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/rack-session-2.0.0.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/rack-test-2.1.0.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/rackup-2.1.0.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/rails-dom-testing-2.2.0.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/rails-html-sanitizer-1.6.0.gemspec +0 -27
- data/vendor/bundle/ruby/3.3.0/specifications/railties-7.2.1.gemspec +0 -37
- data/vendor/bundle/ruby/3.3.0/specifications/rainbow-3.1.1.gemspec +0 -25
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.2.1.gemspec +0 -26
- data/vendor/bundle/ruby/3.3.0/specifications/rake-release-1.3.0.gemspec +0 -26
- data/vendor/bundle/ruby/3.3.0/specifications/rdoc-6.7.0.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/regexp_parser-2.9.2.gemspec +0 -22
- data/vendor/bundle/ruby/3.3.0/specifications/reline-0.5.9.gemspec +0 -26
- data/vendor/bundle/ruby/3.3.0/specifications/rexml-3.3.6.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.0.gemspec +0 -31
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.0.gemspec +0 -39
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.2.gemspec +0 -33
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.1.gemspec +0 -33
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-rails-6.1.4.gemspec +0 -37
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.1.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-1.65.1.gemspec +0 -39
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-ast-1.32.1.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-capybara-2.21.0.gemspec +0 -27
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-factory_bot-2.26.1.gemspec +0 -27
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-performance-1.21.1.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec-3.0.4.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec_rails-2.30.0.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/ruby-progressbar-1.13.0.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-cobertura-2.1.0.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.12.3.gemspec +0 -21
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +0 -21
- data/vendor/bundle/ruby/3.3.0/specifications/strscan-3.1.0.gemspec +0 -24
- data/vendor/bundle/ruby/3.3.0/specifications/thor-1.3.1.gemspec +0 -28
- data/vendor/bundle/ruby/3.3.0/specifications/tzinfo-2.0.6.gemspec +0 -30
- data/vendor/bundle/ruby/3.3.0/specifications/unicode-display_width-2.5.0.gemspec +0 -29
- data/vendor/bundle/ruby/3.3.0/specifications/useragent-0.16.10.gemspec +0 -25
- data/vendor/bundle/ruby/3.3.0/specifications/webrick-1.8.1.gemspec +0 -22
- data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.6.17.gemspec +0 -22
@@ -1,363 +0,0 @@
|
|
1
|
-
# Loofah
|
2
|
-
|
3
|
-
* https://github.com/flavorjones/loofah
|
4
|
-
* Docs: http://rubydoc.info/github/flavorjones/loofah/main/frames
|
5
|
-
* Mailing list: [loofah-talk@googlegroups.com](https://groups.google.com/forum/#!forum/loofah-talk)
|
6
|
-
|
7
|
-
## Status
|
8
|
-
|
9
|
-
[![ci](https://github.com/flavorjones/loofah/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/flavorjones/loofah/actions/workflows/ci.yml)
|
10
|
-
[![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/loofah)](https://tidelift.com/subscription/pkg/rubygems-loofah?utm_source=rubygems-loofah&utm_medium=referral&utm_campaign=readme)
|
11
|
-
|
12
|
-
|
13
|
-
## Description
|
14
|
-
|
15
|
-
Loofah is a general library for manipulating and transforming HTML/XML documents and fragments, built on top of Nokogiri.
|
16
|
-
|
17
|
-
Loofah also includes some HTML sanitizers based on `html5lib`'s safelist, which are a specific application of the general transformation functionality.
|
18
|
-
|
19
|
-
Active Record extensions for HTML sanitization are available in the [`loofah-activerecord` gem](https://github.com/flavorjones/loofah-activerecord).
|
20
|
-
|
21
|
-
|
22
|
-
## Features
|
23
|
-
|
24
|
-
* Easily write custom transformations for HTML and XML
|
25
|
-
* Common HTML sanitizing transformations are built-in:
|
26
|
-
* _Strip_ unsafe tags, leaving behind only the inner text.
|
27
|
-
* _Prune_ unsafe tags and their subtrees, removing all traces that they ever existed.
|
28
|
-
* _Escape_ unsafe tags and their subtrees, leaving behind lots of <tt><</tt> and <tt>></tt> entities.
|
29
|
-
* _Whitewash_ the markup, removing all attributes and namespaced nodes.
|
30
|
-
* Other common HTML transformations are built-in:
|
31
|
-
* Add the _nofollow_ attribute to all hyperlinks.
|
32
|
-
* Add the _target=\_blank_ attribute to all hyperlinks.
|
33
|
-
* Remove _unprintable_ characters from text nodes.
|
34
|
-
* Format markup as plain text, with (or without) sensible whitespace handling around block elements.
|
35
|
-
* Replace Rails's `strip_tags` and `sanitize` view helper methods.
|
36
|
-
|
37
|
-
|
38
|
-
## Compare and Contrast
|
39
|
-
|
40
|
-
Loofah is both:
|
41
|
-
|
42
|
-
- a general framework for transforming XML, XHTML, and HTML documents
|
43
|
-
- a specific toolkit for HTML sanitization
|
44
|
-
|
45
|
-
### General document transformation
|
46
|
-
|
47
|
-
Loofah tries to make it easy to write your own custom scrubbers for whatever document transformation you need. You don't like the built-in scrubbers? Build your own, like a boss.
|
48
|
-
|
49
|
-
|
50
|
-
### HTML sanitization
|
51
|
-
|
52
|
-
Another Ruby library that provides HTML sanitization is [`rgrove/sanitize`](https://github.com/rgrove/sanitize), another library built on top of Nokogiri, which provides a bit more flexibility on the tags and attributes being scrubbed.
|
53
|
-
|
54
|
-
You may also want to look at [`rails/rails-html-sanitizer`](https://github.com/rails/rails-html-sanitizer) which is built on top of Loofah and provides some useful extensions and additional flexibility in the HTML sanitization.
|
55
|
-
|
56
|
-
|
57
|
-
## The Basics
|
58
|
-
|
59
|
-
Loofah wraps [Nokogiri](http://nokogiri.org) in a loving embrace. Nokogiri is a stable, well-maintained parser for XML, HTML4, and HTML5.
|
60
|
-
|
61
|
-
Loofah implements the following classes:
|
62
|
-
|
63
|
-
* `Loofah::HTML5::Document`
|
64
|
-
* `Loofah::HTML5::DocumentFragment`
|
65
|
-
* `Loofah::HTML4::Document` (aliased as `Loofah::HTML::Document` for now)
|
66
|
-
* `Loofah::HTML4::DocumentFragment` (aliased as `Loofah::HTML::DocumentFragment` for now)
|
67
|
-
* `Loofah::XML::Document`
|
68
|
-
* `Loofah::XML::DocumentFragment`
|
69
|
-
|
70
|
-
These document and fragment classes are subclasses of the similarly-named Nokogiri classes `Nokogiri::HTML5::Document` et al.
|
71
|
-
|
72
|
-
Loofah also implements `Loofah::Scrubber`, which represents the document transformation, either by wrapping
|
73
|
-
a block,
|
74
|
-
|
75
|
-
``` ruby
|
76
|
-
span2div = Loofah::Scrubber.new do |node|
|
77
|
-
node.name = "div" if node.name == "span"
|
78
|
-
end
|
79
|
-
```
|
80
|
-
|
81
|
-
or by implementing a method.
|
82
|
-
|
83
|
-
|
84
|
-
### Side Note: Fragments vs Documents
|
85
|
-
|
86
|
-
Generally speaking, unless you expect to have a DOCTYPE and a single root node, you don't have a *document*, you have a *fragment*. For HTML, another rule of thumb is that *documents* have `html` and `body` tags, and *fragments* usually do not.
|
87
|
-
|
88
|
-
**HTML fragments** should be parsed with `Loofah.html5_fragment` or `Loofah.html4_fragment`. The result won't be wrapped in `html` or `body` tags, won't have a DOCTYPE declaration, `head` elements will be silently ignored, and multiple root nodes are allowed.
|
89
|
-
|
90
|
-
**HTML documents** should be parsed with `Loofah.html5_document` or `Loofah.html4_document`. The result will have a DOCTYPE declaration, along with `html`, `head` and `body` tags.
|
91
|
-
|
92
|
-
**XML fragments** should be parsed with `Loofah.xml_fragment`. The result won't have a DOCTYPE declaration, and multiple root nodes are allowed.
|
93
|
-
|
94
|
-
**XML documents** should be parsed with `Loofah.xml_document`. The result will have a DOCTYPE declaration and a single root node.
|
95
|
-
|
96
|
-
|
97
|
-
### Side Note: HTML4 vs HTML5
|
98
|
-
|
99
|
-
⚠ _HTML5 functionality is not available on JRuby, or with versions of Nokogiri `< 1.14.0`._
|
100
|
-
|
101
|
-
Currently, Loofah's methods `Loofah.document` and `Loofah.fragment` are aliases to `.html4_document` and `.html4_fragment`, which use Nokogiri's HTML4 parser. (Similarly, `Loofah::HTML::Document` and `Loofah::HTML::DocumentFragment` are aliased to `Loofah::HTML4::Document` and `Loofah::HTML4::DocumentFragment`.)
|
102
|
-
|
103
|
-
**Please note** that in a future version of Loofah, these methods and classes may switch to using Nokogiri's HTML5 parser and classes on platforms that support it [1].
|
104
|
-
|
105
|
-
**We strongly recommend that you explicitly use `.html5_document` or `.html5_fragment`** unless you know of a compelling reason not to. If you are sure that you need to use the HTML4 parser, you should explicitly call `.html4_document` or `.html4_fragment` to avoid breakage in a future version.
|
106
|
-
|
107
|
-
[1]: [[feature request] HTML5 parser for JRuby implementation · Issue #2227 · sparklemotion/nokogiri](https://github.com/sparklemotion/nokogiri/issues/2227)
|
108
|
-
|
109
|
-
|
110
|
-
### `Loofah::HTML5::Document` and `Loofah::HTML5::DocumentFragment`
|
111
|
-
|
112
|
-
These classes are subclasses of `Nokogiri::HTML5::Document` and `Nokogiri::HTML5::DocumentFragment`.
|
113
|
-
|
114
|
-
The module methods `Loofah.html5_document` and `Loofah.html5_fragment` will parse either an HTML document and an HTML fragment, respectively.
|
115
|
-
|
116
|
-
``` ruby
|
117
|
-
Loofah.html5_document(unsafe_html).is_a?(Nokogiri::HTML5::Document) # => true
|
118
|
-
Loofah.html5_fragment(unsafe_html).is_a?(Nokogiri::HTML5::DocumentFragment) # => true
|
119
|
-
```
|
120
|
-
|
121
|
-
Loofah injects a `scrub!` method, which takes either a symbol (for built-in scrubbers) or a `Loofah::Scrubber` object (for custom scrubbers), and modifies the document in-place.
|
122
|
-
|
123
|
-
Loofah overrides `to_s` to return HTML:
|
124
|
-
|
125
|
-
``` ruby
|
126
|
-
unsafe_html = "ohai! <div>div is safe</div> <script>but script is not</script>"
|
127
|
-
|
128
|
-
doc = Loofah.html5_fragment(unsafe_html).scrub!(:prune)
|
129
|
-
doc.to_s # => "ohai! <div>div is safe</div> "
|
130
|
-
```
|
131
|
-
|
132
|
-
and `text` to return plain text:
|
133
|
-
|
134
|
-
``` ruby
|
135
|
-
doc.text # => "ohai! div is safe "
|
136
|
-
```
|
137
|
-
|
138
|
-
Also, `to_text` is available, which does the right thing with whitespace around block-level and line break elements.
|
139
|
-
|
140
|
-
``` ruby
|
141
|
-
doc = Loofah.html5_fragment("<h1>Title</h1><div>Content<br>Next line</div>")
|
142
|
-
doc.text # => "TitleContentNext line" # probably not what you want
|
143
|
-
doc.to_text # => "\nTitle\n\nContent\nNext line\n" # better
|
144
|
-
```
|
145
|
-
|
146
|
-
### `Loofah::HTML4::Document` and `Loofah::HTML4::DocumentFragment`
|
147
|
-
|
148
|
-
These classes are subclasses of `Nokogiri::HTML4::Document` and `Nokogiri::HTML4::DocumentFragment`.
|
149
|
-
|
150
|
-
The module methods `Loofah.html4_document` and `Loofah.html4_fragment` will parse either an HTML document and an HTML fragment, respectively.
|
151
|
-
|
152
|
-
``` ruby
|
153
|
-
Loofah.html4_document(unsafe_html).is_a?(Nokogiri::HTML4::Document) # => true
|
154
|
-
Loofah.html4_fragment(unsafe_html).is_a?(Nokogiri::HTML4::DocumentFragment) # => true
|
155
|
-
```
|
156
|
-
|
157
|
-
### `Loofah::XML::Document` and `Loofah::XML::DocumentFragment`
|
158
|
-
|
159
|
-
These classes are subclasses of `Nokogiri::XML::Document` and `Nokogiri::XML::DocumentFragment`.
|
160
|
-
|
161
|
-
The module methods `Loofah.xml_document` and `Loofah.xml_fragment` will parse an XML document and an XML fragment, respectively.
|
162
|
-
|
163
|
-
``` ruby
|
164
|
-
Loofah.xml_document(bad_xml).is_a?(Nokogiri::XML::Document) # => true
|
165
|
-
Loofah.xml_fragment(bad_xml).is_a?(Nokogiri::XML::DocumentFragment) # => true
|
166
|
-
```
|
167
|
-
|
168
|
-
### Nodes and Node Sets
|
169
|
-
|
170
|
-
Nokogiri's `Node` and `NodeSet` classes also get a `scrub!` method, which makes it easy to scrub subtrees.
|
171
|
-
|
172
|
-
The following code will apply the `employee_scrubber` only to the `employee` nodes (and their subtrees) in the document:
|
173
|
-
|
174
|
-
``` ruby
|
175
|
-
Loofah.xml_document(bad_xml).xpath("//employee").scrub!(employee_scrubber)
|
176
|
-
```
|
177
|
-
|
178
|
-
And this code will only scrub the first `employee` node and its subtree:
|
179
|
-
|
180
|
-
``` ruby
|
181
|
-
Loofah.xml_document(bad_xml).at_xpath("//employee").scrub!(employee_scrubber)
|
182
|
-
```
|
183
|
-
|
184
|
-
### `Loofah::Scrubber`
|
185
|
-
|
186
|
-
A Scrubber wraps up a block (or method) that is run on a document node:
|
187
|
-
|
188
|
-
``` ruby
|
189
|
-
# change all <span> tags to <div> tags
|
190
|
-
span2div = Loofah::Scrubber.new do |node|
|
191
|
-
node.name = "div" if node.name == "span"
|
192
|
-
end
|
193
|
-
```
|
194
|
-
|
195
|
-
This can then be run on a document:
|
196
|
-
|
197
|
-
``` ruby
|
198
|
-
Loofah.html5_fragment("<span>foo</span><p>bar</p>").scrub!(span2div).to_s
|
199
|
-
# => "<div>foo</div><p>bar</p>"
|
200
|
-
```
|
201
|
-
|
202
|
-
Scrubbers can be run on a document in either a top-down traversal (the default) or bottom-up. Top-down scrubbers can optionally return `Scrubber::STOP` to terminate the traversal of a subtree. Read below and in the `Loofah::Scrubber` class for more detailed usage.
|
203
|
-
|
204
|
-
Here's an XML example:
|
205
|
-
|
206
|
-
``` ruby
|
207
|
-
# remove all <employee> tags that have a "deceased" attribute set to true
|
208
|
-
bring_out_your_dead = Loofah::Scrubber.new do |node|
|
209
|
-
if node.name == "employee" and node["deceased"] == "true"
|
210
|
-
node.remove
|
211
|
-
Loofah::Scrubber::STOP # don't bother with the rest of the subtree
|
212
|
-
end
|
213
|
-
end
|
214
|
-
Loofah.xml_document(File.read('plague.xml')).scrub!(bring_out_your_dead)
|
215
|
-
```
|
216
|
-
|
217
|
-
### Built-In HTML Scrubbers
|
218
|
-
|
219
|
-
Loofah comes with a set of sanitizing scrubbers that use `html5lib`'s safelist algorithm:
|
220
|
-
|
221
|
-
``` ruby
|
222
|
-
doc = Loofah.html5_document(input)
|
223
|
-
doc.scrub!(:strip) # replaces unknown/unsafe tags with their inner text
|
224
|
-
doc.scrub!(:prune) # removes unknown/unsafe tags and their children
|
225
|
-
doc.scrub!(:escape) # escapes unknown/unsafe tags, like this: <script>
|
226
|
-
doc.scrub!(:whitewash) # removes unknown/unsafe/namespaced tags and their children,
|
227
|
-
# and strips all node attributes
|
228
|
-
```
|
229
|
-
|
230
|
-
Loofah also comes with some common transformation tasks:
|
231
|
-
|
232
|
-
``` ruby
|
233
|
-
doc.scrub!(:nofollow) # adds rel="nofollow" attribute to links
|
234
|
-
doc.scrub!(:noopener) # adds rel="noopener" attribute to links
|
235
|
-
doc.scrub!(:noreferrer) # adds rel="noreferrer" attribute to links
|
236
|
-
doc.scrub!(:unprintable) # removes unprintable characters from text nodes
|
237
|
-
doc.scrub!(:targetblank) # adds target="_blank" attribute to links
|
238
|
-
```
|
239
|
-
|
240
|
-
See `Loofah::Scrubbers` for more details and example usage.
|
241
|
-
|
242
|
-
|
243
|
-
### Chaining Scrubbers
|
244
|
-
|
245
|
-
You can chain scrubbers:
|
246
|
-
|
247
|
-
``` ruby
|
248
|
-
Loofah.html5_fragment("<span>hello</span> <script>alert('OHAI')</script>") \
|
249
|
-
.scrub!(:prune) \
|
250
|
-
.scrub!(span2div).to_s
|
251
|
-
# => "<div>hello</div> "
|
252
|
-
```
|
253
|
-
|
254
|
-
### Shorthand
|
255
|
-
|
256
|
-
The class methods `Loofah.scrub_html5_fragment` and `Loofah.scrub_html5_document` (and the corresponding HTML4 methods) are shorthand.
|
257
|
-
|
258
|
-
These methods:
|
259
|
-
|
260
|
-
``` ruby
|
261
|
-
Loofah.scrub_html5_fragment(unsafe_html, :prune)
|
262
|
-
Loofah.scrub_html5_document(unsafe_html, :prune)
|
263
|
-
Loofah.scrub_html4_fragment(unsafe_html, :prune)
|
264
|
-
Loofah.scrub_html4_document(unsafe_html, :prune)
|
265
|
-
Loofah.scrub_xml_fragment(bad_xml, custom_scrubber)
|
266
|
-
Loofah.scrub_xml_document(bad_xml, custom_scrubber)
|
267
|
-
```
|
268
|
-
|
269
|
-
do the same thing as (and arguably semantically clearer than):
|
270
|
-
|
271
|
-
``` ruby
|
272
|
-
Loofah.html5_fragment(unsafe_html).scrub!(:prune)
|
273
|
-
Loofah.html5_document(unsafe_html).scrub!(:prune)
|
274
|
-
Loofah.html4_fragment(unsafe_html).scrub!(:prune)
|
275
|
-
Loofah.html4_document(unsafe_html).scrub!(:prune)
|
276
|
-
Loofah.xml_fragment(bad_xml).scrub!(custom_scrubber)
|
277
|
-
Loofah.xml_document(bad_xml).scrub!(custom_scrubber)
|
278
|
-
```
|
279
|
-
|
280
|
-
|
281
|
-
### View Helpers
|
282
|
-
|
283
|
-
Loofah has two "view helpers": `Loofah::Helpers.sanitize` and `Loofah::Helpers.strip_tags`, both of which are drop-in replacements for the Rails Action View helpers of the same name.
|
284
|
-
|
285
|
-
These are not required automatically. You must require `loofah/helpers` to use them.
|
286
|
-
|
287
|
-
|
288
|
-
## Requirements
|
289
|
-
|
290
|
-
* Nokogiri >= 1.5.9
|
291
|
-
|
292
|
-
|
293
|
-
## Installation
|
294
|
-
|
295
|
-
Unsurprisingly:
|
296
|
-
|
297
|
-
> gem install loofah
|
298
|
-
|
299
|
-
Requirements:
|
300
|
-
|
301
|
-
* Ruby >= 2.5
|
302
|
-
|
303
|
-
|
304
|
-
## Support
|
305
|
-
|
306
|
-
The bug tracker is available here:
|
307
|
-
|
308
|
-
* https://github.com/flavorjones/loofah/issues
|
309
|
-
|
310
|
-
And the mailing list is on Google Groups:
|
311
|
-
|
312
|
-
* Mail: loofah-talk@googlegroups.com
|
313
|
-
* Archive: https://groups.google.com/forum/#!forum/loofah-talk
|
314
|
-
|
315
|
-
Consider subscribing to [Tidelift][tidelift] which provides license assurances and timely security notifications for your open source dependencies, including Loofah. [Tidelift][tidelift] subscriptions also help the Loofah maintainers fund our [automated testing](https://ci.nokogiri.org) which in turn allows us to ship releases, bugfixes, and security updates more often.
|
316
|
-
|
317
|
-
[tidelift]: https://tidelift.com/subscription/pkg/rubygems-loofah?utm_source=undefined&utm_medium=referral&utm_campaign=enterprise
|
318
|
-
|
319
|
-
|
320
|
-
## Security
|
321
|
-
|
322
|
-
See [`SECURITY.md`](SECURITY.md) for vulnerability reporting details.
|
323
|
-
|
324
|
-
|
325
|
-
## Related Links
|
326
|
-
|
327
|
-
* loofah-activerecord: https://github.com/flavorjones/loofah-activerecord
|
328
|
-
* Nokogiri: http://nokogiri.org
|
329
|
-
* libxml2: http://xmlsoft.org
|
330
|
-
* html5lib: https://github.com/html5lib/
|
331
|
-
|
332
|
-
|
333
|
-
## Authors
|
334
|
-
|
335
|
-
* [Mike Dalessio](http://mike.daless.io) ([@flavorjones](https://twitter.com/flavorjones))
|
336
|
-
* Bryan Helmkamp
|
337
|
-
|
338
|
-
Featuring code contributed by:
|
339
|
-
|
340
|
-
* Aaron Patterson
|
341
|
-
* John Barnette
|
342
|
-
* Josh Owens
|
343
|
-
* Paul Dix
|
344
|
-
* Luke Melia
|
345
|
-
|
346
|
-
And a big shout-out to Corey Innis for the name, and feedback on the API.
|
347
|
-
|
348
|
-
|
349
|
-
## Thank You
|
350
|
-
|
351
|
-
The following people have generously funded Loofah:
|
352
|
-
|
353
|
-
* Bill Harding
|
354
|
-
|
355
|
-
|
356
|
-
## Historical Note
|
357
|
-
|
358
|
-
This library was once named "Dryopteris", which was a very bad name that nobody could spell properly.
|
359
|
-
|
360
|
-
|
361
|
-
## License
|
362
|
-
|
363
|
-
Distributed under the MIT License. See `MIT-LICENSE.txt` for details.
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# method_source changelog
|
2
|
-
|
3
|
-
### master
|
4
|
-
|
5
|
-
### [v1.1.0][v1.1.0] (April 15, 2024)
|
6
|
-
|
7
|
-
- Added `MethodSource.clear_cache`
|
8
|
-
- Added support for `RUBYOPT="--enable-frozen-string-literal"`
|
9
|
-
|
10
|
-
### [v1.0.0][v1.0.0] (March 19, 2020)
|
11
|
-
|
12
|
-
- Added Ruby 2.7 support
|
13
|
-
|
14
|
-
[v1.0.0]: https://github.com/banister/method_source/releases/tag/v1.0.0
|
15
|
-
[v1.1.0]: https://github.com/banister/method_source/releases/tag/v1.1.0
|
@@ -1,22 +0,0 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2011 John Mair (banisterfiend)
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
'Software'), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,101 +0,0 @@
|
|
1
|
-
method_source
|
2
|
-
=============
|
3
|
-
|
4
|
-
[![Circle Build Status](https://circleci.com/gh/banister/method_source.svg?style=shield)](https://circleci.com/gh/banister/method_source)
|
5
|
-
|
6
|
-
(C) John Mair (banisterfiend) 2011
|
7
|
-
|
8
|
-
_retrieve the sourcecode for a method_
|
9
|
-
|
10
|
-
*NOTE:* This simply utilizes `Method#source_location`; it
|
11
|
-
does not access the live AST.
|
12
|
-
|
13
|
-
`method_source` is a utility to return a method's sourcecode as a
|
14
|
-
Ruby string. Also returns `Proc` and `Lambda` sourcecode.
|
15
|
-
|
16
|
-
Method comments can also be extracted using the `comment` method.
|
17
|
-
|
18
|
-
It is written in pure Ruby (no C).
|
19
|
-
|
20
|
-
* Some Ruby 1.8 support now available.
|
21
|
-
* Support for MRI, RBX, JRuby, REE
|
22
|
-
|
23
|
-
`method_source` provides the `source` and `comment` methods to the `Method` and
|
24
|
-
`UnboundMethod` and `Proc` classes.
|
25
|
-
|
26
|
-
* Install the [gem](https://rubygems.org/gems/method_source): `gem install method_source`
|
27
|
-
* Read the [documentation](https://www.rubydoc.info/github/banister/method_source/master)
|
28
|
-
* See the [source code](http://github.com/banister/method_source)
|
29
|
-
|
30
|
-
Example: display method source
|
31
|
-
------------------------------
|
32
|
-
|
33
|
-
Set.instance_method(:merge).source.display
|
34
|
-
# =>
|
35
|
-
def merge(enum)
|
36
|
-
if enum.instance_of?(self.class)
|
37
|
-
@hash.update(enum.instance_variable_get(:@hash))
|
38
|
-
else
|
39
|
-
do_with_enum(enum) { |o| add(o) }
|
40
|
-
end
|
41
|
-
|
42
|
-
self
|
43
|
-
end
|
44
|
-
|
45
|
-
Example: display method comments
|
46
|
-
--------------------------------
|
47
|
-
|
48
|
-
Set.instance_method(:merge).comment.display
|
49
|
-
# =>
|
50
|
-
# Merges the elements of the given enumerable object to the set and
|
51
|
-
# returns self.
|
52
|
-
|
53
|
-
Example: display module/class comments
|
54
|
-
--------------------------------------
|
55
|
-
|
56
|
-
MethodSource::MethodExtensions.method(:included).module_comment
|
57
|
-
# =>
|
58
|
-
# This module is to be included by `Method` and `UnboundMethod` and
|
59
|
-
# provides the `#source` functionality
|
60
|
-
|
61
|
-
Limitations:
|
62
|
-
------------
|
63
|
-
|
64
|
-
* Occasional strange behaviour in Ruby 1.8
|
65
|
-
* Cannot return source for C methods.
|
66
|
-
* Cannot return source for dynamically defined methods.
|
67
|
-
|
68
|
-
Special Thanks
|
69
|
-
--------------
|
70
|
-
|
71
|
-
[Adam Sanderson](https://github.com/adamsanderson) for `comment` functionality.
|
72
|
-
|
73
|
-
[Dmitry Elastic](https://github.com/dmitryelastic) for the brilliant Ruby 1.8 `source_location` hack.
|
74
|
-
|
75
|
-
[Samuel Kadolph](https://github.com/samuelkadolph) for the JRuby 1.8 `source_location`.
|
76
|
-
|
77
|
-
License
|
78
|
-
-------
|
79
|
-
|
80
|
-
(The MIT License)
|
81
|
-
|
82
|
-
Copyright (c) 2011 John Mair (banisterfiend)
|
83
|
-
|
84
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
85
|
-
a copy of this software and associated documentation files (the
|
86
|
-
'Software'), to deal in the Software without restriction, including
|
87
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
88
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
89
|
-
permit persons to whom the Software is furnished to do so, subject to
|
90
|
-
the following conditions:
|
91
|
-
|
92
|
-
The above copyright notice and this permission notice shall be
|
93
|
-
included in all copies or substantial portions of the Software.
|
94
|
-
|
95
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
96
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
97
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
98
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
99
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
100
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
101
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = "method_source".freeze
|
5
|
-
s.version = "1.1.0"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
8
|
-
s.require_paths = ["lib".freeze]
|
9
|
-
s.authors = ["John Mair (banisterfiend)".freeze]
|
10
|
-
s.date = "2024-04-15"
|
11
|
-
s.description = "retrieve the sourcecode for a method".freeze
|
12
|
-
s.email = "jrmair@gmail.com".freeze
|
13
|
-
s.files = ["CHANGELOG.md".freeze, ".gemtest".freeze, ".yardopts".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.markdown".freeze, "Rakefile".freeze, "lib/method_source.rb".freeze, "lib/method_source/code_helpers.rb".freeze, "lib/method_source/source_location.rb".freeze, "lib/method_source/version.rb".freeze, "method_source.gemspec".freeze, "spec/method_source/code_helpers_spec.rb".freeze, "spec/method_source_spec.rb".freeze, "spec/spec_helper.rb".freeze]
|
14
|
-
s.homepage = "http://banisterfiend.wordpress.com".freeze
|
15
|
-
s.metadata["changelog_uri"] = "https://github.com/banister/method_source/blob/master/CHANGELOG.md".freeze
|
16
|
-
s.licenses = ["MIT".freeze]
|
17
|
-
s.summary = "retrieve the sourcecode for a method".freeze
|
18
|
-
s.test_files = ["spec/method_source/code_helpers_spec.rb".freeze, "spec/method_source_spec.rb".freeze, "spec/spec_helper.rb".freeze]
|
19
|
-
end
|