rails-rfc6570 3.1.0 → 3.2.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 +8 -0
- data/README.md +2 -1
- data/lib/rails/rfc6570/version.rb +1 -1
- data/rails-rfc6570.gemspec +2 -2
- data/spec/spec_helper.rb +8 -5
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/README.md +23 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/rubocop-config.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/CHANGELOG.md +154 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/README.rdoc +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/CHANGELOG.md +113 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/CHANGELOG.md +258 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +121 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/README.md +243 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/LICENSE.MIT +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/README.YARD.md +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/README.md +279 -0
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/LICENSE +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/bigdecimal.gemspec +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/README.md +258 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/builder.gemspec +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/CHANGELOG.md +934 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/README.md +199 -0
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/MIT-LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/README_INDEX.rdoc +123 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/CHANGELOG.md +593 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/README.md +407 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/README.md +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/connection_pool.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/LICENSE +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/README.md +192 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/crass.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +409 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +36 -0
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/drb.gemspec +41 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/CHANGELOG +107 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/README.rdoc +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/README.md +127 -0
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/README.md +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/README.md +405 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/irb.gemspec +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/LICENSE +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/README.md +416 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/json.gemspec +68 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/CHANGELOG.md +566 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/MIT-LICENSE.txt +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/README.md +363 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/CHANGELOG.md +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/README.markdown +101 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/method_source.gemspec +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.1/README.rdoc +835 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE-DEPENDENCIES.md +2224 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE.md +9 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/README.md +290 -0
- data/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/LICENSE.txt +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/parser.gemspec +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/CHANGELOG.md +1141 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/LICENSE +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/README.md +466 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/slop/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/CHANGELOG.md +230 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/README.md +189 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/README.md +222 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +60 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/CHANGELOG.md +994 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/README.md +328 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/README.md +139 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/CHANGELOG.md +201 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/README.md +271 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/CHANGELOG.md +361 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/README.rdoc +39 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/app/templates/README.md.tt +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/README.md.tt +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/README.markdown +227 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/rake.gemspec +101 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/README.md +107 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/LICENSE.rdoc +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/README.rdoc +129 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/regexp_parser.gemspec +34 -0
- data/vendor/bundle/ruby/3.3.0/gems/reline-0.5.9/README.md +94 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/README.md +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/LICENSE.md +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/README.md +47 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/LICENSE.md +26 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/README.md +389 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/README.md +326 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/README.md +465 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/README.md +381 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/LICENSE.md +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/README.md +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/README.md +251 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/README.md +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/CHANGELOG.md +85 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/CHANGELOG.md +116 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/README.md +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/CHANGELOG.md +1028 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/README.md +109 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/CHANGELOG.md +84 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/README.md +90 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +974 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/LICENSE +202 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/README.md +62 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/simplecov-cobertura.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/CHANGELOG.md +81 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/README.md +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/simplecov-html.gemspec +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/strscan-3.1.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/LICENSE.md +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/README.md +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/thor.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/LICENSE +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/README.md +406 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/CHANGELOG.md +196 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/MIT-LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/README.md +171 -0
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/README.md +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/README.md +61 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/webrick.gemspec +70 -0
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/README.md +1494 -0
- data/vendor/bundle/ruby/3.3.0/specifications/actionpack-7.2.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/actionview-7.2.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/activesupport-7.2.1.gemspec +36 -0
- data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/appraisal-2.5.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.2.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/benchmark-ips-2.13.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-3.1.8.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/builder-3.3.0.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/byebug-11.1.3.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/coderay-1.1.3.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.4.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/connection_pool-2.4.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/crass-1.0.6.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/drb-2.2.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/erubi-1.13.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/i18n-1.14.5.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/io-console-0.7.2.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/irb-1.14.0.gemspec +30 -0
- 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 +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/loofah-2.22.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/method_source-1.1.0.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.25.1.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/nokogiri-1.16.7-x86_64-linux.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parallel-1.26.3.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.4.2.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/pry-0.14.2.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/pry-byebug-3.10.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.1.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/racc-1.8.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-3.1.7.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-session-2.0.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-test-2.1.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rackup-2.1.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rails-html-sanitizer-1.6.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/railties-7.2.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rainbow-3.1.1.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.2.1.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-release-1.3.0.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rdoc-6.7.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/regexp_parser-2.9.2.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/reline-0.5.9.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rexml-3.3.6.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.0.gemspec +39 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.2.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-rails-6.1.4.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-1.65.1.gemspec +39 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-ast-1.32.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-capybara-2.21.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-factory_bot-2.26.1.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-performance-1.21.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec-3.0.4.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec_rails-2.30.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ruby-progressbar-1.13.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-cobertura-2.1.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.12.3.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/strscan-3.1.0.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/thor-1.3.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/tzinfo-2.0.6.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/unicode-display_width-2.5.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/useragent-0.16.10.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/webrick-1.8.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.6.17.gemspec +22 -0
- metadata +258 -6
- data/spec/dummy/log/test.log +0 -192
@@ -0,0 +1,409 @@
|
|
1
|
+
# Docile
|
2
|
+
|
3
|
+
[![Gem Version](https://img.shields.io/gem/v/docile.svg)](https://rubygems.org/gems/docile)
|
4
|
+
[![Gem Downloads](https://img.shields.io/gem/dt/docile.svg)](https://rubygems.org/gems/docile)
|
5
|
+
|
6
|
+
[![Join the chat at https://gitter.im/ms-ati/docile](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ms-ati/docile?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
7
|
+
[![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/ms-ati/docile)
|
8
|
+
|
9
|
+
[![Build Status](https://github.com/ms-ati/docile/actions/workflows/main.yml/badge.svg)](https://github.com/ms-ati/docile/actions/workflows/main.yml)
|
10
|
+
[![Code Coverage](https://img.shields.io/codecov/c/github/ms-ati/docile.svg)](https://codecov.io/github/ms-ati/docile)
|
11
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/79ca631bc123f7b83b34/maintainability)](https://codeclimate.com/github/ms-ati/docile/maintainability)
|
12
|
+
|
13
|
+
Ruby makes it possible to create very expressive **Domain Specific
|
14
|
+
Languages**, or **DSL**'s for short. However, it requires some deep knowledge and
|
15
|
+
somewhat hairy meta-programming to get the interface just right.
|
16
|
+
|
17
|
+
"Docile" means *Ready to accept control or instruction; submissive* [[1]]
|
18
|
+
|
19
|
+
Instead of each Ruby project reinventing this wheel, let's make our Ruby DSL
|
20
|
+
coding a bit more docile...
|
21
|
+
|
22
|
+
[1]: http://www.google.com/search?q=docile+definition "Google"
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
### Basic: Ruby [Array](http://ruby-doc.org/core-3.0.0/Array.html) as DSL
|
27
|
+
|
28
|
+
Let's say that we want to make a DSL for modifying Array objects.
|
29
|
+
Wouldn't it be great if we could just treat the methods of Array as a DSL?
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
with_array([]) do
|
33
|
+
push 1
|
34
|
+
push 2
|
35
|
+
pop
|
36
|
+
push 3
|
37
|
+
end
|
38
|
+
#=> [1, 3]
|
39
|
+
```
|
40
|
+
|
41
|
+
No problem, just define the method `with_array` like this:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
def with_array(arr=[], &block)
|
45
|
+
Docile.dsl_eval(arr, &block)
|
46
|
+
end
|
47
|
+
```
|
48
|
+
|
49
|
+
Easy!
|
50
|
+
|
51
|
+
### Next step: Allow helper methods to call DSL methods
|
52
|
+
|
53
|
+
What if, in our use of the methods of Array as a DSL, we want to extract
|
54
|
+
helper methods which in turn call DSL methods?
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
def pop_sum_and_push(n)
|
58
|
+
sum = 0
|
59
|
+
n.times { sum += pop }
|
60
|
+
push sum
|
61
|
+
end
|
62
|
+
|
63
|
+
Docile.dsl_eval([]) do
|
64
|
+
push 5
|
65
|
+
push 6
|
66
|
+
pop_sum_and_push(2)
|
67
|
+
end
|
68
|
+
#=> [11]
|
69
|
+
```
|
70
|
+
|
71
|
+
Without Docile, you may find this sort of code extraction to be more
|
72
|
+
challenging.
|
73
|
+
|
74
|
+
### Wait! Can't I do that with just `instance_eval` or `instance_exec`?
|
75
|
+
|
76
|
+
Good question!
|
77
|
+
|
78
|
+
In short: **No**.
|
79
|
+
|
80
|
+
Not if you want the code in the block to be able to refer to anything
|
81
|
+
the block would normally have access to from the surrounding context.
|
82
|
+
|
83
|
+
Let's be very specific. Docile internally uses `instance_exec` (see [execution.rb#26](lib/docile/execution.rb#L26)), adding a small layer to support referencing *local variables*, *instance variables*, and *methods* from the _block's context_ **or** the target _object's context_, interchangeably. This is "**the hard part**", where most folks making a DSL in Ruby throw up their hands.
|
84
|
+
|
85
|
+
For example:
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
class ContextOfBlock
|
89
|
+
def example_of_contexts
|
90
|
+
@block_instance_var = 1
|
91
|
+
block_local_var = 2
|
92
|
+
|
93
|
+
with_array do
|
94
|
+
push @block_instance_var
|
95
|
+
push block_local_var
|
96
|
+
pop
|
97
|
+
push block_sees_this_method
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def block_sees_this_method
|
102
|
+
3
|
103
|
+
end
|
104
|
+
|
105
|
+
def with_array(&block)
|
106
|
+
{
|
107
|
+
docile: Docile.dsl_eval([], &block),
|
108
|
+
instance_eval: ([].instance_eval(&block) rescue $!),
|
109
|
+
instance_exec: ([].instance_exec(&block) rescue $!)
|
110
|
+
}
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
ContextOfBlock.new.example_of_contexts
|
115
|
+
#=> {
|
116
|
+
:docile=>[1, 3],
|
117
|
+
:instance_eval=>#<NameError: undefined local variable or method `block_sees_this_method' for [nil]:Array>,
|
118
|
+
:instance_exec=>#<NameError: undefined local variable or method `block_sees_this_method' for [nil]:Array>
|
119
|
+
}
|
120
|
+
```
|
121
|
+
|
122
|
+
As you can see, it won't be possible to call methods or access instance variables defined in the block's context using just the raw `instance_eval` or `instance_exec` methods. And in fact, Docile goes further, making it easy to maintain this support even in multi-layered DSLs.
|
123
|
+
|
124
|
+
### Build a Pizza
|
125
|
+
|
126
|
+
Mutating (changing) an Array instance is fine, but what usually makes a good DSL is a [Builder Pattern][2].
|
127
|
+
|
128
|
+
For example, let's say you want a DSL to specify how you want to build a Pizza:
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
@sauce_level = :extra
|
132
|
+
|
133
|
+
pizza do
|
134
|
+
cheese
|
135
|
+
pepperoni
|
136
|
+
sauce @sauce_level
|
137
|
+
end
|
138
|
+
#=> #<Pizza:0x00001009dc398 @cheese=true, @pepperoni=true, @bacon=false, @sauce=:extra>
|
139
|
+
```
|
140
|
+
|
141
|
+
And let's say we have a PizzaBuilder, which builds a Pizza like this:
|
142
|
+
|
143
|
+
```ruby
|
144
|
+
Pizza = Struct.new(:cheese, :pepperoni, :bacon, :sauce)
|
145
|
+
|
146
|
+
class PizzaBuilder
|
147
|
+
def cheese(v=true); @cheese = v; self; end
|
148
|
+
def pepperoni(v=true); @pepperoni = v; self; end
|
149
|
+
def bacon(v=true); @bacon = v; self; end
|
150
|
+
def sauce(v=nil); @sauce = v; self; end
|
151
|
+
def build
|
152
|
+
Pizza.new(!!@cheese, !!@pepperoni, !!@bacon, @sauce)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
PizzaBuilder.new.cheese.pepperoni.sauce(:extra).build
|
157
|
+
#=> #<Pizza:0x00001009dc398 @cheese=true, @pepperoni=true, @bacon=false, @sauce=:extra>
|
158
|
+
```
|
159
|
+
|
160
|
+
Then implement your DSL like this:
|
161
|
+
|
162
|
+
```ruby
|
163
|
+
def pizza(&block)
|
164
|
+
Docile.dsl_eval(PizzaBuilder.new, &block).build
|
165
|
+
end
|
166
|
+
```
|
167
|
+
|
168
|
+
It's just that easy!
|
169
|
+
|
170
|
+
[2]: http://stackoverflow.com/questions/328496/when-would-you-use-the-builder-pattern "Builder Pattern"
|
171
|
+
|
172
|
+
### Multi-level and Recursive DSLs
|
173
|
+
|
174
|
+
Docile is a very easy way to write a multi-level DSL in Ruby, even for
|
175
|
+
a [recursive data structure such as a tree][4]:
|
176
|
+
|
177
|
+
```ruby
|
178
|
+
Person = Struct.new(:name, :mother, :father)
|
179
|
+
|
180
|
+
person {
|
181
|
+
name 'John Smith'
|
182
|
+
mother {
|
183
|
+
name 'Mary Smith'
|
184
|
+
}
|
185
|
+
father {
|
186
|
+
name 'Tom Smith'
|
187
|
+
mother {
|
188
|
+
name 'Jane Smith'
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
#=> #<struct Person name="John Smith",
|
194
|
+
# mother=#<struct Person name="Mary Smith", mother=nil, father=nil>,
|
195
|
+
# father=#<struct Person name="Tom Smith",
|
196
|
+
# mother=#<struct Person name="Jane Smith", mother=nil, father=nil>,
|
197
|
+
# father=nil>>
|
198
|
+
```
|
199
|
+
|
200
|
+
See the full [person tree example][4] for details.
|
201
|
+
|
202
|
+
[4]: https://gist.github.com/ms-ati/2bb17bdf10a430faba98
|
203
|
+
|
204
|
+
### Block parameters
|
205
|
+
|
206
|
+
Parameters can be passed to the DSL block.
|
207
|
+
|
208
|
+
Supposing you want to make some sort of cheap [Sinatra][3] knockoff:
|
209
|
+
|
210
|
+
```ruby
|
211
|
+
@last_request = nil
|
212
|
+
respond '/path' do |request|
|
213
|
+
puts "Request received: #{request}"
|
214
|
+
@last_request = request
|
215
|
+
end
|
216
|
+
|
217
|
+
def ride bike
|
218
|
+
# Play with your new bike
|
219
|
+
end
|
220
|
+
|
221
|
+
respond '/new_bike' do |bike|
|
222
|
+
ride(bike)
|
223
|
+
end
|
224
|
+
```
|
225
|
+
|
226
|
+
You'd put together a dispatcher something like this:
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
require 'singleton'
|
230
|
+
|
231
|
+
class DispatchScope
|
232
|
+
def a_method_you_can_call_from_inside_the_block
|
233
|
+
:useful_huh?
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
class MessageDispatch
|
238
|
+
include Singleton
|
239
|
+
|
240
|
+
def initialize
|
241
|
+
@responders = {}
|
242
|
+
end
|
243
|
+
|
244
|
+
def add_responder path, &block
|
245
|
+
@responders[path] = block
|
246
|
+
end
|
247
|
+
|
248
|
+
def dispatch path, request
|
249
|
+
Docile.dsl_eval(DispatchScope.new, request, &@responders[path])
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
def respond path, &handler
|
254
|
+
MessageDispatch.instance.add_responder path, handler
|
255
|
+
end
|
256
|
+
|
257
|
+
def send_request path, request
|
258
|
+
MessageDispatch.instance.dispatch path, request
|
259
|
+
end
|
260
|
+
```
|
261
|
+
|
262
|
+
[3]: http://www.sinatrarb.com "Sinatra"
|
263
|
+
|
264
|
+
### Functional-Style Immutable DSL Objects
|
265
|
+
|
266
|
+
Sometimes, you want to use an object as a DSL, but it doesn't quite fit the
|
267
|
+
[imperative](http://en.wikipedia.org/wiki/Imperative_programming) pattern shown
|
268
|
+
above.
|
269
|
+
|
270
|
+
Instead of methods like
|
271
|
+
[Array#push](http://www.ruby-doc.org/core-3.0.0/Array.html#method-i-push), which
|
272
|
+
modifies the object at hand, it has methods like
|
273
|
+
[String#reverse](http://www.ruby-doc.org/core-3.0.0/String.html#method-i-reverse),
|
274
|
+
which returns a new object without touching the original. Perhaps it's even
|
275
|
+
[frozen](http://www.ruby-doc.org/core-3.0.0/Object.html#method-i-freeze) in
|
276
|
+
order to enforce [immutability](http://en.wikipedia.org/wiki/Immutable_object).
|
277
|
+
|
278
|
+
Wouldn't it be great if we could just treat these methods as a DSL as well?
|
279
|
+
|
280
|
+
```ruby
|
281
|
+
s = "I'm immutable!".freeze
|
282
|
+
|
283
|
+
with_immutable_string(s) do
|
284
|
+
reverse
|
285
|
+
upcase
|
286
|
+
end
|
287
|
+
#=> "!ELBATUMMI M'I"
|
288
|
+
|
289
|
+
s
|
290
|
+
#=> "I'm immutable!"
|
291
|
+
```
|
292
|
+
|
293
|
+
No problem, just define the method `with_immutable_string` like this:
|
294
|
+
|
295
|
+
```ruby
|
296
|
+
def with_immutable_string(str="", &block)
|
297
|
+
Docile.dsl_eval_immutable(str, &block)
|
298
|
+
end
|
299
|
+
```
|
300
|
+
|
301
|
+
All set!
|
302
|
+
|
303
|
+
### Accessing the block's return value
|
304
|
+
|
305
|
+
Sometimes you might want to access the return value of your provided block,
|
306
|
+
as opposed to the DSL object itself. In these cases, use
|
307
|
+
`dsl_eval_with_block_return`. It behaves exactly like `dsl_eval`, but returns
|
308
|
+
the output from executing the block, rather than the DSL object.
|
309
|
+
|
310
|
+
```ruby
|
311
|
+
arr = []
|
312
|
+
with_array(arr) do
|
313
|
+
push "a"
|
314
|
+
push "b"
|
315
|
+
push "c"
|
316
|
+
length
|
317
|
+
end
|
318
|
+
#=> 3
|
319
|
+
|
320
|
+
arr
|
321
|
+
#=> ["a", "b", "c"]
|
322
|
+
```
|
323
|
+
|
324
|
+
```ruby
|
325
|
+
def with_array(arr=[], &block)
|
326
|
+
Docile.dsl_eval_with_block_return(arr, &block)
|
327
|
+
end
|
328
|
+
```
|
329
|
+
|
330
|
+
## Features
|
331
|
+
|
332
|
+
1. Method lookup falls back from the DSL object to the block's context
|
333
|
+
2. Local variable lookup falls back from the DSL object to the block's
|
334
|
+
context
|
335
|
+
3. Instance variables are from the block's context only
|
336
|
+
4. Nested DSL evaluation, correctly chaining method and variable handling
|
337
|
+
from the inner to the outer DSL scopes
|
338
|
+
5. Alternatives for both imperative and functional styles of DSL objects
|
339
|
+
|
340
|
+
## Installation
|
341
|
+
|
342
|
+
``` bash
|
343
|
+
$ gem install docile
|
344
|
+
```
|
345
|
+
|
346
|
+
## Links
|
347
|
+
* [Source](https://github.com/ms-ati/docile)
|
348
|
+
* [Documentation](http://rubydoc.info/gems/docile)
|
349
|
+
* [Bug Tracker](https://github.com/ms-ati/docile/issues)
|
350
|
+
|
351
|
+
## Status
|
352
|
+
|
353
|
+
Works on [all currently supported ruby versions](https://github.com/ms-ati/docile/blob/master/.github/workflows/main.yml),
|
354
|
+
or so [Github Actions](https://github.com/ms-ati/docile/actions)
|
355
|
+
tells us.
|
356
|
+
|
357
|
+
Used by some pretty cool gems to implement their DSLs, notably including
|
358
|
+
[SimpleCov](https://github.com/colszowka/simplecov). Keep an eye out for new
|
359
|
+
gems using Docile at the
|
360
|
+
[Ruby Toolbox](https://www.ruby-toolbox.com/projects/docile).
|
361
|
+
|
362
|
+
## Release Policy
|
363
|
+
|
364
|
+
Docile releases follow
|
365
|
+
[Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html).
|
366
|
+
|
367
|
+
## Note on Patches/Pull Requests
|
368
|
+
|
369
|
+
* Fork the project.
|
370
|
+
* Setup your development environment with:
|
371
|
+
`gem install bundler; bundle install`
|
372
|
+
* Make your feature addition or bug fix.
|
373
|
+
* Add tests for it. This is important so I don't break it in a future version
|
374
|
+
unintentionally.
|
375
|
+
* Commit, do not mess with rakefile, version, or history.
|
376
|
+
(if you want to have your own version, that is fine but bump version in a
|
377
|
+
commit by itself I can ignore when I pull)
|
378
|
+
* Send me a pull request. Bonus points for topic branches.
|
379
|
+
|
380
|
+
## Releasing
|
381
|
+
|
382
|
+
To make a new release of `Docile` to
|
383
|
+
[RubyGems](https://rubygems.org/gems/docile), first install the release
|
384
|
+
dependencies (e.g. `rake`) as follows:
|
385
|
+
|
386
|
+
```shell
|
387
|
+
bundle config set --local with 'release'
|
388
|
+
bundle install
|
389
|
+
```
|
390
|
+
|
391
|
+
Then carry out these steps:
|
392
|
+
|
393
|
+
1. Update `HISTORY.md`:
|
394
|
+
- Add an entry for the upcoming version _x.y.z_
|
395
|
+
- Move content from _Unreleased_ to the upcoming version _x.y.z_
|
396
|
+
- Commit with title `Update HISTORY.md for x.y.z`
|
397
|
+
|
398
|
+
2. Update `lib/docile/version.rb`
|
399
|
+
- Replace with upcoming version _x.y.z_
|
400
|
+
- Commit with title `Bump version to x.y.z`
|
401
|
+
|
402
|
+
3. `bundle exec rake release`
|
403
|
+
|
404
|
+
## Copyright & License
|
405
|
+
|
406
|
+
Copyright (c) 2012-2024 Marc Siegel.
|
407
|
+
|
408
|
+
Licensed under the [MIT License](http://choosealicense.com/licenses/mit/),
|
409
|
+
see [LICENSE](LICENSE) for details.
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/docile/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "docile"
|
7
|
+
s.version = Docile::VERSION
|
8
|
+
s.author = "Marc Siegel"
|
9
|
+
s.email = "marc@usainnov.com"
|
10
|
+
s.homepage = "https://ms-ati.github.io/docile/"
|
11
|
+
s.summary = "Docile keeps your Ruby DSLs tame and well-behaved."
|
12
|
+
s.description = "Docile treats the methods of a given ruby object as a DSL "\
|
13
|
+
"(domain specific language) within a given block. \n\n"\
|
14
|
+
"Killer feature: you can also reference methods, instance "\
|
15
|
+
"variables, and local variables from the original (non-DSL) "\
|
16
|
+
"context within the block. \n\n"\
|
17
|
+
"Docile releases follow Semantic Versioning as defined at "\
|
18
|
+
"semver.org."
|
19
|
+
s.license = "MIT"
|
20
|
+
|
21
|
+
# Specify oldest supported Ruby version (2.5 to support JRuby 9.2.17.0)
|
22
|
+
s.required_ruby_version = ">= 2.5.0"
|
23
|
+
|
24
|
+
# Files included in the gem
|
25
|
+
s.files = `git ls-files -z`.split("\x0").reject do |f|
|
26
|
+
f.match(%r{^(test|spec|features)/})
|
27
|
+
end
|
28
|
+
s.require_paths = ["lib"]
|
29
|
+
|
30
|
+
s.metadata = {
|
31
|
+
"homepage_uri" => "https://ms-ati.github.io/docile/",
|
32
|
+
"changelog_uri" => "https://github.com/ms-ati/docile/blob/main/HISTORY.md",
|
33
|
+
"source_code_uri" => "https://github.com/ms-ati/docile",
|
34
|
+
"rubygems_mfa_required" => "true",
|
35
|
+
}
|
36
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions
|
5
|
+
are met:
|
6
|
+
1. Redistributions of source code must retain the above copyright
|
7
|
+
notice, this list of conditions and the following disclaimer.
|
8
|
+
2. Redistributions in binary form must reproduce the above copyright
|
9
|
+
notice, this list of conditions and the following disclaimer in the
|
10
|
+
documentation and/or other materials provided with the distribution.
|
11
|
+
|
12
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
13
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
14
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
15
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
16
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
17
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
18
|
+
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
19
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
20
|
+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
21
|
+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
22
|
+
SUCH DAMAGE.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
begin
|
2
|
+
require_relative "lib/drb/version"
|
3
|
+
rescue LoadError # Fallback to load version file in ruby core repository
|
4
|
+
require_relative "version"
|
5
|
+
end
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "drb"
|
9
|
+
spec.version = DRb::VERSION
|
10
|
+
spec.authors = ["Masatoshi SEKI"]
|
11
|
+
spec.email = ["seki@ruby-lang.org"]
|
12
|
+
|
13
|
+
spec.summary = %q{Distributed object system for Ruby}
|
14
|
+
spec.description = %q{Distributed object system for Ruby}
|
15
|
+
spec.homepage = "https://github.com/ruby/drb"
|
16
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
17
|
+
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
18
|
+
|
19
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
21
|
+
|
22
|
+
spec.files = %w[
|
23
|
+
LICENSE.txt
|
24
|
+
drb.gemspec
|
25
|
+
lib/drb.rb
|
26
|
+
lib/drb/acl.rb
|
27
|
+
lib/drb/drb.rb
|
28
|
+
lib/drb/eq.rb
|
29
|
+
lib/drb/extserv.rb
|
30
|
+
lib/drb/extservm.rb
|
31
|
+
lib/drb/gw.rb
|
32
|
+
lib/drb/invokemethod.rb
|
33
|
+
lib/drb/observer.rb
|
34
|
+
lib/drb/ssl.rb
|
35
|
+
lib/drb/timeridconv.rb
|
36
|
+
lib/drb/unix.rb
|
37
|
+
lib/drb/version.rb
|
38
|
+
lib/drb/weakidconv.rb
|
39
|
+
]
|
40
|
+
spec.require_paths = ["lib"]
|
41
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
=== 1.13.0 (2024-06-13)
|
2
|
+
|
3
|
+
* Define Erubi.h as a module function (jeremyevans)
|
4
|
+
|
5
|
+
* Add erubi/capture_block, supporting capturing block output via standard <%= and <%== tags (jeremyevans)
|
6
|
+
|
7
|
+
=== 1.12.0 (2022-12-22)
|
8
|
+
|
9
|
+
* Use erb/escape for faster html escaping if available (jeremyevans)
|
10
|
+
|
11
|
+
* Default :freeze_template_literals option to false if running with --enable-frozen-string-literal (casperisfine) (#35)
|
12
|
+
|
13
|
+
=== 1.11.0 (2022-08-02)
|
14
|
+
|
15
|
+
* Support :freeze_template_literals option for configuring whether to add .freeze to template literal strings (casperisfine) (#33)
|
16
|
+
|
17
|
+
* Support :chain_appends option for chaining appends to the buffer variable (casperisfine, jeremyevans) (#32)
|
18
|
+
|
19
|
+
* Avoid unnecessary defined? usage on Ruby 3+ when using the :ensure option (jeremyevans)
|
20
|
+
|
21
|
+
=== 1.10.0 (2020-11-13)
|
22
|
+
|
23
|
+
* Improve template parsing, mostly by reducing allocations (jeremyevans)
|
24
|
+
|
25
|
+
* Do not ship tests in the gem, reducing gem size about 20% (jeremyevans)
|
26
|
+
|
27
|
+
* Support :literal_prefix and :literal_postfix options for how to output literal tags (e.g. <%% code %>) (jaredcwhite) (#26, #27)
|
28
|
+
|
29
|
+
=== 1.9.0 (2019-09-25)
|
30
|
+
|
31
|
+
* Change default :bufvar from 'String.new' to '::String.new' to work with BasicObject (jeremyevans)
|
32
|
+
|
33
|
+
=== 1.8.0 (2018-12-18)
|
34
|
+
|
35
|
+
* Support :yield_returns_buffer option in capture_end for always returning the (potentially modified) buffer in <%|= tags (evanleck) (#15)
|
36
|
+
|
37
|
+
=== 1.7.1 (2018-03-05)
|
38
|
+
|
39
|
+
* Make whitespace handling for <%# %> tags more compatible with Erubis (jeremyevans) (#14)
|
40
|
+
|
41
|
+
=== 1.7.0 (2017-10-09)
|
42
|
+
|
43
|
+
* Fix escaping in erubi/capture_end, the setting was previously inverted (jeremyevans) (#10)
|
44
|
+
|
45
|
+
=== 1.6.1 (2017-06-27)
|
46
|
+
|
47
|
+
* Fix usage on newer versions of JRuby 9.1 (jeremyevans)
|
48
|
+
|
49
|
+
=== 1.6.0 (2017-02-27)
|
50
|
+
|
51
|
+
* Use cgi/escape if available for 6x faster HTML escaping (k0kubun, jeremyevans) (#4)
|
52
|
+
|
53
|
+
=== 1.5.0 (2017-01-26)
|
54
|
+
|
55
|
+
* Drop tilt/erubi file, as tilt now ships with Erubi support (jeremyevans)
|
56
|
+
|
57
|
+
* Drop erubi/capture file, Erubi::CaptureEngine support (jeremyevans)
|
58
|
+
|
59
|
+
=== 1.4.0 (2017-01-20)
|
60
|
+
|
61
|
+
* Allow postambles to depend on internal state of engine (jeremyevans)
|
62
|
+
|
63
|
+
* Allow overriding of behavior for <%= and <%== tags to depend on which indicator was used (jeremyevans)
|
64
|
+
|
65
|
+
* Make whitespace handling for <% %> tags more compatible with Erubis for subclasses overriding add_text (jeremyevans)
|
66
|
+
|
67
|
+
=== 1.3.0 (2016-12-29)
|
68
|
+
|
69
|
+
* Support :capture=>:explicit option in tilt support to use Erubi::CaptureEndEngine (jeremyevans)
|
70
|
+
|
71
|
+
* Add erubi/capture_end containing Erubi::CaptureEndEngine, allowing <%|= and <%|== for opening capture tags, and <%| for closing capture tags (jeremyevans)
|
72
|
+
|
73
|
+
=== 1.2.1 (2016-11-21)
|
74
|
+
|
75
|
+
* Don't automatically freeze template text strings on ruby 1.9 or 2.0 (jeremyevans)
|
76
|
+
|
77
|
+
=== 1.2.0 (2016-11-21)
|
78
|
+
|
79
|
+
* Engine#src now returns a frozen string (jeremyevans)
|
80
|
+
|
81
|
+
* Automatically freeze template text strings on ruby 2.1+, reducing garbage generated (jeremyevans)
|
82
|
+
|
83
|
+
* Allow overriding of behavior for <%= and <%== tags (ujifgc) (#1)
|
84
|
+
|
85
|
+
=== 1.1.0 (2016-11-14)
|
86
|
+
|
87
|
+
* Add :ensure option to supporting restoring bufvar to original value (jeremyevans)
|
88
|
+
|
89
|
+
* Don't have tilt support require erb (jeremyevans)
|
90
|
+
|
91
|
+
* Support :engine_class option in tilt support to override engine class used (jeremyevans)
|
92
|
+
|
93
|
+
* Support :capture option in tilt support to use Erubi::CaptureEngine (jeremyevans)
|
94
|
+
|
95
|
+
* Add erubi/capture file containing Erubi::CaptureEngine, allowing <%|= and <%|== for capture (and escaping) blocks in templates (jeremyevans)
|
96
|
+
|
97
|
+
* Raise ArgumentError if template source code contains indicators matched by regexp but not handled (jeremyevans)
|
98
|
+
|
99
|
+
* Add :bufval option to support arbitrary buffer values (jeremyevans)
|
100
|
+
|
101
|
+
* Add :regexp option to specify regexp used for scanning (jeremyevans)
|
102
|
+
|
103
|
+
* Add :src option to specify initial template source (jeremyevans)
|
104
|
+
|
105
|
+
=== 1.0.0 (2016-11-10)
|
106
|
+
|
107
|
+
* Initial Public Release
|
@@ -0,0 +1,21 @@
|
|
1
|
+
copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
2
|
+
copyright(c) 2016-2021 Jeremy Evans
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
a copy of this software and associated documentation files (the
|
6
|
+
"Software"), to deal in the Software without restriction, including
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|