rails-rfc6570 3.2.0 → 3.4.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 +31 -1
- data/README.md +3 -1
- data/lib/rails/rfc6570/version.rb +1 -1
- data/lib/rails/rfc6570.rb +10 -29
- data/rails-rfc6570.gemspec +1 -1
- data/spec/dummy/config/application.rb +5 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/rails/rfc6570/extensions/route_set_spec.rb +29 -0
- data/spec/rails/rfc6570/helper_spec.rb +44 -0
- data/spec/rails/rfc6570/visitor_spec.rb +12 -0
- data/spec/spec_helper.rb +6 -0
- data/vendor/bundle/ruby/{3.3.0/bundler/gems/rubocop-config-943facea9d8f → 3.4.0/bundler/gems/rubocop-config-67802c9d1826}/rubocop-config.gemspec +8 -8
- data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/CHANGELOG.md +205 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/CHANGELOG.md +67 -0
- data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/CHANGELOG.md +157 -0
- data/vendor/bundle/ruby/{3.3.0/gems/io-console-0.7.2 → 3.4.0/gems/base64-0.2.0}/README.md +17 -15
- data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +138 -0
- data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/benchmark.gemspec +32 -0
- data/vendor/bundle/ruby/{3.3.0/gems/concurrent-ruby-1.3.4 → 3.4.0/gems/concurrent-ruby-1.3.5}/CHANGELOG.md +12 -2
- data/vendor/bundle/ruby/{3.3.0/gems/concurrent-ruby-1.3.4 → 3.4.0/gems/concurrent-ruby-1.3.5}/README.md +1 -1
- data/vendor/bundle/ruby/{3.3.0/gems/connection_pool-2.4.1 → 3.4.0/gems/connection_pool-2.5.0}/README.md +32 -0
- data/vendor/bundle/ruby/{3.3.0/gems/erubi-1.13.0 → 3.4.0/gems/erubi-1.13.1}/CHANGELOG +4 -0
- data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/README.md +104 -0
- data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/logger.gemspec +28 -0
- data/vendor/bundle/ruby/{3.3.0/gems/loofah-2.22.0 → 3.4.0/gems/loofah-2.24.0}/CHANGELOG.md +25 -0
- data/vendor/bundle/ruby/{3.3.0/gems/loofah-2.22.0 → 3.4.0/gems/loofah-2.24.0}/README.md +59 -12
- data/vendor/bundle/ruby/{3.3.0/gems/nokogiri-1.16.7-x86_64-linux → 3.4.0/gems/nokogiri-1.18.2-x86_64-linux-gnu}/LICENSE-DEPENDENCIES.md +6 -6
- data/vendor/bundle/ruby/{3.3.0/gems/nokogiri-1.16.7-x86_64-linux → 3.4.0/gems/nokogiri-1.18.2-x86_64-linux-gnu}/README.md +8 -5
- data/vendor/bundle/ruby/{3.3.0/gems/rack-3.1.7 → 3.4.0/gems/rack-3.1.9}/CHANGELOG.md +12 -0
- data/vendor/bundle/ruby/{3.3.0/gems/rails-html-sanitizer-1.6.0 → 3.4.0/gems/rails-html-sanitizer-1.6.2}/CHANGELOG.md +54 -0
- data/vendor/bundle/ruby/{3.3.0/gems/rails-html-sanitizer-1.6.0 → 3.4.0/gems/rails-html-sanitizer-1.6.2}/README.md +0 -4
- data/vendor/bundle/ruby/3.4.0/gems/securerandom-0.4.1/README.md +72 -0
- data/vendor/bundle/ruby/3.4.0/gems/uri-1.0.2/README.md +55 -0
- data/vendor/bundle/ruby/{3.3.0/gems/useragent-0.16.10 → 3.4.0/gems/useragent-0.16.11}/README.md +2 -2
- data/vendor/bundle/ruby/{3.3.0/specifications/actionpack-7.2.1.gemspec → 3.4.0/specifications/actionpack-8.0.1.gemspec} +11 -12
- data/vendor/bundle/ruby/{3.3.0/specifications/actionview-7.2.1.gemspec → 3.4.0/specifications/actionview-8.0.1.gemspec} +10 -10
- data/vendor/bundle/ruby/{3.3.0/specifications/activesupport-7.2.1.gemspec → 3.4.0/specifications/activesupport-8.0.1.gemspec} +9 -7
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/addressable-2.8.7.gemspec +1 -1
- data/vendor/bundle/ruby/3.4.0/specifications/base64-0.2.0.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/specifications/benchmark-0.4.0.gemspec +23 -0
- data/vendor/bundle/ruby/{3.3.0/specifications/bigdecimal-3.1.8.gemspec → 3.4.0/specifications/bigdecimal-3.1.9.gemspec} +5 -5
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/builder-3.3.0.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0/specifications/concurrent-ruby-1.3.4.gemspec → 3.4.0/specifications/concurrent-ruby-1.3.5.gemspec} +4 -4
- data/vendor/bundle/ruby/{3.3.0/specifications/connection_pool-2.4.1.gemspec → 3.4.0/specifications/connection_pool-2.5.0.gemspec} +5 -5
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/crass-1.0.6.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/diff-lcs-1.5.1.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/drb-2.2.1.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0/specifications/erubi-1.13.0.gemspec → 3.4.0/specifications/erubi-1.13.1.gemspec} +5 -5
- data/vendor/bundle/ruby/{3.3.0/specifications/i18n-1.14.5.gemspec → 3.4.0/specifications/i18n-1.14.7.gemspec} +5 -5
- data/vendor/bundle/ruby/3.4.0/specifications/logger-1.6.5.gemspec +22 -0
- data/vendor/bundle/ruby/{3.3.0/specifications/loofah-2.22.0.gemspec → 3.4.0/specifications/loofah-2.24.0.gemspec} +6 -6
- data/vendor/bundle/ruby/{3.3.0/specifications/minitest-5.25.1.gemspec → 3.4.0/specifications/minitest-5.25.4.gemspec} +5 -5
- data/vendor/bundle/ruby/3.4.0/specifications/nokogiri-1.18.2-x86_64-linux-gnu.gemspec +31 -0
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/public_suffix-6.0.1.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/racc-1.8.1.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0/specifications/rack-3.1.7.gemspec → 3.4.0/specifications/rack-3.1.9.gemspec} +5 -5
- data/vendor/bundle/ruby/{3.3.0/specifications/rack-session-2.0.0.gemspec → 3.4.0/specifications/rack-session-2.1.0.gemspec} +8 -6
- data/vendor/bundle/ruby/{3.3.0/specifications/rack-test-2.1.0.gemspec → 3.4.0/specifications/rack-test-2.2.0.gemspec} +5 -5
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/rails-dom-testing-2.2.0.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0/specifications/rails-html-sanitizer-1.6.0.gemspec → 3.4.0/specifications/rails-html-sanitizer-1.6.2.gemspec} +7 -7
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/rake-13.2.1.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/rake-release-1.3.0.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/rspec-3.13.0.gemspec +1 -1
- data/vendor/bundle/ruby/{3.3.0/specifications/rspec-core-3.13.0.gemspec → 3.4.0/specifications/rspec-core-3.13.2.gemspec} +7 -7
- data/vendor/bundle/ruby/{3.3.0/specifications/rspec-expectations-3.13.2.gemspec → 3.4.0/specifications/rspec-expectations-3.13.3.gemspec} +6 -6
- data/vendor/bundle/ruby/{3.3.0/specifications/rspec-mocks-3.13.1.gemspec → 3.4.0/specifications/rspec-mocks-3.13.2.gemspec} +7 -7
- data/vendor/bundle/ruby/{3.3.0/specifications/rspec-support-3.13.1.gemspec → 3.4.0/specifications/rspec-support-3.13.2.gemspec} +8 -8
- data/vendor/bundle/ruby/3.4.0/specifications/securerandom-0.4.1.gemspec +23 -0
- data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/specifications/tzinfo-2.0.6.gemspec +1 -1
- data/vendor/bundle/ruby/3.4.0/specifications/uri-1.0.2.gemspec +23 -0
- data/vendor/bundle/ruby/{3.3.0/specifications/useragent-0.16.10.gemspec → 3.4.0/specifications/useragent-0.16.11.gemspec} +6 -6
- metadata +132 -262
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/CHANGELOG.md +0 -154
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/CHANGELOG.md +0 -113
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/CHANGELOG.md +0 -258
- 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/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/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/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/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/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/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/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-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/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/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/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/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/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/docile-1.4.1.gemspec +0 -22
- 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/method_source-1.1.0.gemspec +0 -21
- 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/rackup-2.1.0.gemspec +0 -31
- 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/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-rails-6.1.4.gemspec +0 -37
- 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/unicode-display_width-2.5.0.gemspec +0 -29
- 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
- /data/vendor/bundle/ruby/{3.3.0/bundler/gems/rubocop-config-943facea9d8f → 3.4.0/bundler/gems/rubocop-config-67802c9d1826}/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/bundler/gems/rubocop-config-943facea9d8f → 3.4.0/bundler/gems/rubocop-config-67802c9d1826}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/actionpack-7.2.1 → 3.4.0/gems/actionpack-8.0.1}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/actionpack-7.2.1 → 3.4.0/gems/actionpack-8.0.1}/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/actionview-7.2.1 → 3.4.0/gems/actionview-8.0.1}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/actionview-7.2.1 → 3.4.0/gems/actionview-8.0.1}/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/activesupport-7.2.1 → 3.4.0/gems/activesupport-8.0.1}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/activesupport-7.2.1 → 3.4.0/gems/activesupport-8.0.1}/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/addressable-2.8.7/CHANGELOG.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/addressable-2.8.7/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/addressable-2.8.7/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/addressable-2.8.7/addressable.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/drb-2.2.1 → 3.4.0/gems/base64-0.2.0}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/bigdecimal-3.1.8 → 3.4.0/gems/bigdecimal-3.1.9}/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/bigdecimal-3.1.8 → 3.4.0/gems/bigdecimal-3.1.9}/bigdecimal.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/builder-3.3.0/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/builder-3.3.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/builder-3.3.0/builder.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/concurrent-ruby-1.3.4 → 3.4.0/gems/concurrent-ruby-1.3.5}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/connection_pool-2.4.1 → 3.4.0/gems/connection_pool-2.5.0}/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/connection_pool-2.4.1 → 3.4.0/gems/connection_pool-2.5.0}/connection_pool.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/crass-1.0.6/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/crass-1.0.6/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/crass-1.0.6/crass.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/diff-lcs-1.5.1/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/io-console-0.7.2 → 3.4.0/gems/drb-2.2.1}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/drb-2.2.1/drb.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/erubi-1.13.0 → 3.4.0/gems/erubi-1.13.1}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/erubi-1.13.0 → 3.4.0/gems/erubi-1.13.1}/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/i18n-1.14.5 → 3.4.0/gems/i18n-1.14.7}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/i18n-1.14.5 → 3.4.0/gems/i18n-1.14.7}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/loofah-2.22.0 → 3.4.0/gems/loofah-2.24.0}/MIT-LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/minitest-5.25.1 → 3.4.0/gems/minitest-5.25.4}/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/nokogiri-1.16.7-x86_64-linux → 3.4.0/gems/nokogiri-1.18.2-x86_64-linux-gnu}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/public_suffix-6.0.1/CHANGELOG.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/public_suffix-6.0.1/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/public_suffix-6.0.1/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/racc-1.8.1/README.ja.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/racc-1.8.1/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rack-3.1.7 → 3.4.0/gems/rack-3.1.9}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rack-3.1.7 → 3.4.0/gems/rack-3.1.9}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rack-test-2.1.0 → 3.4.0/gems/rack-test-2.2.0}/MIT-LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rack-test-2.1.0 → 3.4.0/gems/rack-test-2.2.0}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rails-dom-testing-2.2.0/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rails-dom-testing-2.2.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rails-html-sanitizer-1.6.0 → 3.4.0/gems/rails-html-sanitizer-1.6.2}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-13.2.1/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-13.2.1/README.rdoc +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-13.2.1/rake.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-release-1.3.0/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-release-1.3.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rake-release-1.3.0/rake-release.gemspec +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rspec-3.13.0/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/rspec-3.13.0/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-core-3.13.0 → 3.4.0/gems/rspec-core-3.13.2}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-core-3.13.0 → 3.4.0/gems/rspec-core-3.13.2}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-expectations-3.13.2 → 3.4.0/gems/rspec-expectations-3.13.3}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-expectations-3.13.2 → 3.4.0/gems/rspec-expectations-3.13.3}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-mocks-3.13.1 → 3.4.0/gems/rspec-mocks-3.13.2}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-mocks-3.13.1 → 3.4.0/gems/rspec-mocks-3.13.2}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-support-3.13.1 → 3.4.0/gems/rspec-support-3.13.2}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/rspec-support-3.13.1 → 3.4.0/gems/rspec-support-3.13.2}/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/tzinfo-2.0.6/LICENSE +0 -0
- /data/vendor/bundle/ruby/{3.3.0 → 3.4.0}/gems/tzinfo-2.0.6/README.md +0 -0
- /data/vendor/bundle/ruby/{3.3.0/gems/useragent-0.16.10 → 3.4.0/gems/useragent-0.16.11}/LICENSE +0 -0
@@ -1,381 +0,0 @@
|
|
1
|
-
# rspec-rails [![Code Climate][]][code-climate] [![Gem Version][]][gem-version]
|
2
|
-
|
3
|
-
`rspec-rails` brings the [RSpec][] testing framework to [Ruby on Rails][]
|
4
|
-
as a drop-in alternative to its default testing framework, Minitest.
|
5
|
-
|
6
|
-
In RSpec, tests are not just scripts that verify your application code.
|
7
|
-
They’re also specifications (or _specs,_ for short):
|
8
|
-
detailed explanations of how the application is supposed to behave,
|
9
|
-
expressed in plain English.
|
10
|
-
|
11
|
-
According to [RSpec Rails new versioning strategy][] use:
|
12
|
-
* **[`rspec-rails` 6.x][]** for Rails 6.1 or 7.x.
|
13
|
-
* **[`rspec-rails` 5.x][]** for Rails 5.2 or 6.x.
|
14
|
-
* **[`rspec-rails` 4.x][]** for Rails from 5.x or 6.x.
|
15
|
-
* **[`rspec-rails` 3.x][]** for Rails earlier than 5.0.
|
16
|
-
* **[`rspec-rails` 1.x][]** for Rails 2.x.
|
17
|
-
|
18
|
-
[Code Climate]: https://codeclimate.com/github/rspec/rspec-rails.svg
|
19
|
-
[code-climate]: https://codeclimate.com/github/rspec/rspec-rails
|
20
|
-
[Gem Version]: https://badge.fury.io/rb/rspec-rails.svg
|
21
|
-
[gem-version]: https://badge.fury.io/rb/rspec-rails
|
22
|
-
[RSpec]: https://rspec.info/
|
23
|
-
[Ruby on Rails]: https://rubyonrails.org/
|
24
|
-
[`rspec-rails` 1.x]: https://github.com/dchelimsky/rspec-rails
|
25
|
-
[`rspec-rails` 3.x]: https://github.com/rspec/rspec-rails/tree/3-9-maintenance
|
26
|
-
[`rspec-rails` 4.x]: https://github.com/rspec/rspec-rails/tree/4-1-maintenance
|
27
|
-
[`rspec-rails` 5.x]: https://github.com/rspec/rspec-rails/tree/5-1-maintenance
|
28
|
-
[`rspec-rails` 6.x]: https://github.com/rspec/rspec-rails/tree/6-1-maintenance
|
29
|
-
[RSpec Rails new versioning strategy]: https://github.com/rspec/rspec-rails/blob/main/rfcs/versioning-strategy.md
|
30
|
-
|
31
|
-
## Installation
|
32
|
-
|
33
|
-
**IMPORTANT** This README / branch refers to the 6.1.x stable release series, only bugfixes from this series will
|
34
|
-
be added here. See the [`main` branch on Github](https://github.com/rspec/rspec-rails/tree/main) if you want or
|
35
|
-
require the latest unstable features.
|
36
|
-
|
37
|
-
1. Add `rspec-rails` to **both** the `:development` and `:test` groups
|
38
|
-
of your app’s `Gemfile`:
|
39
|
-
|
40
|
-
```ruby
|
41
|
-
# Run against this stable release
|
42
|
-
group :development, :test do
|
43
|
-
gem 'rspec-rails', '~> 6.1.0'
|
44
|
-
end
|
45
|
-
|
46
|
-
# Or, run against the main branch
|
47
|
-
# (requires main-branch versions of all related RSpec libraries)
|
48
|
-
group :development, :test do
|
49
|
-
%w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
|
50
|
-
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'main'
|
51
|
-
end
|
52
|
-
end
|
53
|
-
```
|
54
|
-
|
55
|
-
(Adding it to the `:development` group is not strictly necessary,
|
56
|
-
but without it, generators and rake tasks must be preceded by `RAILS_ENV=test`.)
|
57
|
-
|
58
|
-
2. Then, in your project directory:
|
59
|
-
|
60
|
-
```sh
|
61
|
-
# Download and install
|
62
|
-
$ bundle install
|
63
|
-
|
64
|
-
# Generate boilerplate configuration files
|
65
|
-
# (check the comments in each generated file for more information)
|
66
|
-
$ rails generate rspec:install
|
67
|
-
create .rspec
|
68
|
-
create spec
|
69
|
-
create spec/spec_helper.rb
|
70
|
-
create spec/rails_helper.rb
|
71
|
-
```
|
72
|
-
|
73
|
-
## Upgrading
|
74
|
-
|
75
|
-
If your project is already using an older version of `rspec-rails`,
|
76
|
-
upgrade to the latest version with:
|
77
|
-
|
78
|
-
```sh
|
79
|
-
$ bundle update rspec-rails
|
80
|
-
```
|
81
|
-
|
82
|
-
RSpec follows [semantic versioning](https://semver.org/),
|
83
|
-
which means that “major version” upgrades (_e.g.,_ 2.x → 3.x)
|
84
|
-
come with **breaking changes**.
|
85
|
-
If you’re upgrading from version 2.x or below,
|
86
|
-
read the [`rspec-rails` upgrade notes][] to find out what to watch out for.
|
87
|
-
|
88
|
-
Be sure to check the general [RSpec upgrade notes][] as well.
|
89
|
-
|
90
|
-
[`rspec-rails` upgrade notes]: https://rspec.info/features/6-0/rspec-rails/upgrade
|
91
|
-
[RSpec upgrade notes]: https://rspec.info/upgrading-from-rspec-2/
|
92
|
-
|
93
|
-
## Usage
|
94
|
-
|
95
|
-
### Creating boilerplate specs with `rails generate`
|
96
|
-
|
97
|
-
```sh
|
98
|
-
# RSpec hooks into built-in generators
|
99
|
-
$ rails generate model user
|
100
|
-
invoke active_record
|
101
|
-
create db/migrate/20181017040312_create_users.rb
|
102
|
-
create app/models/user.rb
|
103
|
-
invoke rspec
|
104
|
-
create spec/models/user_spec.rb
|
105
|
-
|
106
|
-
# RSpec also provides its own spec file generators
|
107
|
-
$ rails generate rspec:model user
|
108
|
-
create spec/models/user_spec.rb
|
109
|
-
|
110
|
-
# List all RSpec generators
|
111
|
-
$ rails generate --help | grep rspec
|
112
|
-
```
|
113
|
-
|
114
|
-
### Running specs
|
115
|
-
|
116
|
-
```sh
|
117
|
-
# Default: Run all spec files (i.e., those matching spec/**/*_spec.rb)
|
118
|
-
$ bundle exec rspec
|
119
|
-
|
120
|
-
# Run all spec files in a single directory (recursively)
|
121
|
-
$ bundle exec rspec spec/models
|
122
|
-
|
123
|
-
# Run a single spec file
|
124
|
-
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb
|
125
|
-
|
126
|
-
# Run a single example from a spec file (by line number)
|
127
|
-
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb:8
|
128
|
-
|
129
|
-
# See all options for running specs
|
130
|
-
$ bundle exec rspec --help
|
131
|
-
```
|
132
|
-
|
133
|
-
**Optional:** If `bundle exec rspec` is too verbose for you,
|
134
|
-
you can generate a binstub at `bin/rspec` and use that instead:
|
135
|
-
|
136
|
-
```sh
|
137
|
-
$ bundle binstubs rspec-core
|
138
|
-
```
|
139
|
-
|
140
|
-
## RSpec DSL Basics (or, how do I write a spec?)
|
141
|
-
|
142
|
-
In RSpec, application behavior is described
|
143
|
-
**first in (almost) plain English, then again in test code**, like so:
|
144
|
-
|
145
|
-
```ruby
|
146
|
-
RSpec.describe 'Post' do #
|
147
|
-
context 'before publication' do # (almost) plain English
|
148
|
-
it 'cannot have comments' do #
|
149
|
-
expect { Post.create.comments.create! }.to raise_error(ActiveRecord::RecordInvalid) # test code
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
```
|
154
|
-
|
155
|
-
Running `rspec` will execute this test code,
|
156
|
-
and then use the plain-English descriptions
|
157
|
-
to generate a report of where the application
|
158
|
-
conforms to (or fails to meet) the spec:
|
159
|
-
|
160
|
-
```
|
161
|
-
$ rspec --format documentation spec/models/post_spec.rb
|
162
|
-
|
163
|
-
Post
|
164
|
-
before publication
|
165
|
-
cannot have comments
|
166
|
-
|
167
|
-
Failures:
|
168
|
-
|
169
|
-
1) Post before publication cannot have comments
|
170
|
-
Failure/Error: expect { Post.create.comments.create! }.to raise_error(ActiveRecord::RecordInvalid)
|
171
|
-
expected ActiveRecord::RecordInvalid but nothing was raised
|
172
|
-
# ./spec/models/post.rb:4:in `block (3 levels) in <top (required)>'
|
173
|
-
|
174
|
-
Finished in 0.00527 seconds (files took 0.29657 seconds to load)
|
175
|
-
1 example, 1 failure
|
176
|
-
|
177
|
-
Failed examples:
|
178
|
-
|
179
|
-
rspec ./spec/models/post_spec.rb:3 # Post before publication cannot have comments
|
180
|
-
```
|
181
|
-
|
182
|
-
For an in-depth look at the RSpec DSL, including lots of examples,
|
183
|
-
read the official Cucumber documentation for [RSpec Core][].
|
184
|
-
|
185
|
-
[RSpec Core]: https://rspec.info/features/3-12/rspec-core
|
186
|
-
|
187
|
-
### Helpful Rails Matchers
|
188
|
-
|
189
|
-
In RSpec, assertions are called _expectations,_
|
190
|
-
and every expectation is built around a _matcher._
|
191
|
-
When you `expect(a).to eq(b)`, you’re using the `eq` matcher.
|
192
|
-
|
193
|
-
In addition to [the matchers that come standard in RSpec][],
|
194
|
-
here are some extras that make it easier
|
195
|
-
to test the various parts of a Rails system:
|
196
|
-
|
197
|
-
| RSpec matcher | Delegates to | Available in | Notes |
|
198
|
-
| ------------------------ | ------------------- | ------------------------------- | -------------------------------------------------------- |
|
199
|
-
| [`be_a_new`][] | | all | primarily intended for controller specs |
|
200
|
-
| [`render_template`][] | `assert_template` | request / controller / view | use with `expect(response).to` |
|
201
|
-
| [`redirect_to`][] | `assert_redirect` | request / controller | use with `expect(response).to` |
|
202
|
-
| [`route_to`] | `assert_recognizes` | routing / controller | use with `expect(...).to route_to` |
|
203
|
-
| [`be_routable`] | | routing / controller | use with `expect(...).not_to be_routable` |
|
204
|
-
| [`have_http_status`][] | | request / controller / feature | |
|
205
|
-
| [`match_array`][] | | all | for comparing arrays of ActiveRecord objects |
|
206
|
-
| [`have_been_enqueued`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
207
|
-
| [`have_enqueued_job`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
208
|
-
|
209
|
-
Follow the links above for examples of how each matcher is used.
|
210
|
-
|
211
|
-
[the matchers that come standard in RSpec]: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers
|
212
|
-
[`be_a_new`]: https://rspec.info/features/6-0/rspec-rails/matchers/new-record-matcher
|
213
|
-
[`render_template`]: https://rspec.info/features/6-0/rspec-rails/matchers/render-template-matcher
|
214
|
-
[`redirect_to`]: https://rspec.info/features/6-0/rspec-rails/matchers/redirect-to-matcher
|
215
|
-
[`route_to`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/route-to-matcher
|
216
|
-
[`be_routable`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/be-routable-matcher
|
217
|
-
[`have_http_status`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-http-status-matcher
|
218
|
-
[`match_array`]: https://rspec.info/features/6-0/rspec-rails/matchers/relation-match-array
|
219
|
-
[`have_been_enqueued`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-been-enqueued-matcher
|
220
|
-
[`have_enqueued_job`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-enqueued-job-matcher
|
221
|
-
|
222
|
-
### What else does RSpec Rails add?
|
223
|
-
|
224
|
-
For a comprehensive look at RSpec Rails’ features,
|
225
|
-
read the [official Cucumber documentation][].
|
226
|
-
|
227
|
-
[official Cucumber documentation]: https://rspec.info/features/6-0/rspec-rails
|
228
|
-
|
229
|
-
## What tests should I write?
|
230
|
-
|
231
|
-
RSpec Rails defines ten different _types_ of specs
|
232
|
-
for testing different parts of a typical Rails application.
|
233
|
-
Each one inherits from one of Rails’ built-in `TestCase` classes,
|
234
|
-
meaning the helper methods provided by default in Rails tests
|
235
|
-
are available in RSpec, as well.
|
236
|
-
|
237
|
-
| Spec type | Corresponding Rails test class |
|
238
|
-
| -------------- | -------------------------------- |
|
239
|
-
| [model][] | |
|
240
|
-
| [controller][] | [`ActionController::TestCase`][] |
|
241
|
-
| [mailer][] | `ActionMailer::TestCase` |
|
242
|
-
| [job][] | |
|
243
|
-
| [view][] | `ActionView::TestCase` |
|
244
|
-
| [routing][] | |
|
245
|
-
| [helper][] | `ActionView::TestCase` |
|
246
|
-
| [request][] | [`ActionDispatch::IntegrationTest`][] |
|
247
|
-
| [feature][] | |
|
248
|
-
| [system][] | [`ActionDispatch::SystemTestCase`][] |
|
249
|
-
|
250
|
-
Follow the links above to see examples of each spec type,
|
251
|
-
or for official Rails API documentation on the given `TestCase` class.
|
252
|
-
|
253
|
-
> **Note: This is not a checklist.**
|
254
|
-
>
|
255
|
-
> Ask a hundred developers how to test an application,
|
256
|
-
> and you’ll get a hundred different answers.
|
257
|
-
>
|
258
|
-
> RSpec Rails provides thoughtfully selected features
|
259
|
-
> to encourage good testing practices, but there’s no “right” way to do it.
|
260
|
-
> Ultimately, it’s up to you to decide how your test suite will be composed.
|
261
|
-
|
262
|
-
When creating a spec file,
|
263
|
-
assign it a type in the top-level `describe` block, like so:
|
264
|
-
|
265
|
-
```ruby
|
266
|
-
# spec/models/user_spec.rb
|
267
|
-
|
268
|
-
RSpec.describe User, type: :model do
|
269
|
-
...
|
270
|
-
```
|
271
|
-
|
272
|
-
[request]: https://rspec.info/features/6-0/rspec-rails/request-specs/request-spec
|
273
|
-
[feature]: https://rspec.info/features/6-0/rspec-rails/feature-specs/feature-spec
|
274
|
-
[system]: https://rspec.info/features/6-0/rspec-rails/system-specs/system-specs
|
275
|
-
[model]: https://rspec.info/features/6-0/rspec-rails/model-specs
|
276
|
-
[controller]: https://rspec.info/features/6-0/rspec-rails/controller-specs
|
277
|
-
[mailer]: https://rspec.info/features/6-0/rspec-rails/mailer-specs
|
278
|
-
[job]: https://rspec.info/features/6-0/rspec-rails/job-specs/job-spec
|
279
|
-
[view]: https://rspec.info/features/6-0/rspec-rails/view-specs/view-spec
|
280
|
-
[routing]: https://rspec.info/features/6-0/rspec-rails/routing-specs
|
281
|
-
[helper]: https://rspec.info/features/6-0/rspec-rails/helper-specs/helper-spec
|
282
|
-
[`ActionDispatch::IntegrationTest`]: https://api.rubyonrails.org/classes/ActionDispatch/IntegrationTest.html
|
283
|
-
[`ActionDispatch::SystemTestCase`]: https://api.rubyonrails.org/classes/ActionDispatch/SystemTestCase.html
|
284
|
-
[`ActionController::TestCase`]: https://api.rubyonrails.org/classes/ActionController/TestCase.html
|
285
|
-
[in the appropriate folder]: https://rspec.info/features/6-0/rspec-rails/directory-structure
|
286
|
-
|
287
|
-
### System specs, feature specs, request specs–what’s the difference?
|
288
|
-
|
289
|
-
RSpec Rails provides some end-to-end (entire application) testing capability
|
290
|
-
to specify the interaction with the client.
|
291
|
-
|
292
|
-
#### System specs
|
293
|
-
|
294
|
-
Also called **acceptance tests**, **browser tests**, or **end-to-end tests**,
|
295
|
-
system specs test the application from the perspective of a _human client._
|
296
|
-
The test code walks through a user’s browser interactions,
|
297
|
-
|
298
|
-
* `visit '/login'`
|
299
|
-
* `fill_in 'Name', with: 'jdoe'`
|
300
|
-
|
301
|
-
and the expectations revolve around page content.
|
302
|
-
|
303
|
-
* `expect(page).to have_text('Welcome')`
|
304
|
-
|
305
|
-
Because system specs are a wrapper around Rails’ built-in `SystemTestCase`,
|
306
|
-
they’re only available on Rails 5.1+.
|
307
|
-
(Feature specs serve the same purpose, but without this dependency.)
|
308
|
-
|
309
|
-
#### Feature specs
|
310
|
-
|
311
|
-
Before Rails introduced system testing facilities,
|
312
|
-
feature specs were the only spec type for end-to-end testing.
|
313
|
-
While the RSpec team now [officially recommends system specs][] instead,
|
314
|
-
feature specs are still fully supported, look basically identical,
|
315
|
-
and work on older versions of Rails.
|
316
|
-
|
317
|
-
On the other hand, feature specs require non-trivial configuration
|
318
|
-
to get some important features working,
|
319
|
-
like JavaScript testing or making sure each test runs with a fresh DB state.
|
320
|
-
With system specs, this configuration is provided out-of-the-box.
|
321
|
-
|
322
|
-
Like system specs, feature specs require the [Capybara][] gem.
|
323
|
-
Rails 5.1+ includes it by default as part of system tests,
|
324
|
-
but if you don’t have the luxury of upgrading,
|
325
|
-
be sure to add it to the `:test` group of your `Gemfile` first:
|
326
|
-
|
327
|
-
```ruby
|
328
|
-
group :test do
|
329
|
-
gem "capybara"
|
330
|
-
end
|
331
|
-
```
|
332
|
-
|
333
|
-
[officially recommends system specs]: https://rspec.info/blog/2017/10/rspec-3-7-has-been-released/#rails-actiondispatchsystemtest-integration-system-specs
|
334
|
-
[Capybara]: https://github.com/teamcapybara/capybara
|
335
|
-
|
336
|
-
#### Request specs
|
337
|
-
|
338
|
-
Request specs are for testing the application
|
339
|
-
from the perspective of a _machine client._
|
340
|
-
They begin with an HTTP request and end with the HTTP response,
|
341
|
-
so they’re faster than feature specs,
|
342
|
-
but do not examine your app’s UI or JavaScript.
|
343
|
-
|
344
|
-
Request specs provide a high-level alternative to controller specs.
|
345
|
-
In fact, as of RSpec 3.5, both the Rails and RSpec teams
|
346
|
-
[discourage directly testing controllers][]
|
347
|
-
in favor of functional tests like request specs.
|
348
|
-
|
349
|
-
When writing them, try to answer the question,
|
350
|
-
“For a given HTTP request (verb + path + parameters),
|
351
|
-
what HTTP response should the application return?”
|
352
|
-
|
353
|
-
[discourage directly testing controllers]: https://rspec.info/blog/2016/07/rspec-3-5-has-been-released/#rails-support-for-rails-5
|
354
|
-
|
355
|
-
## Contributing
|
356
|
-
|
357
|
-
- [Build details](BUILD_DETAIL.md)
|
358
|
-
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
359
|
-
- [Detailed contributing guide](CONTRIBUTING.md)
|
360
|
-
|
361
|
-
Once you’ve cloned the repo and [set up the environment](DEVELOPMENT.md),
|
362
|
-
you can run the specs and Cucumber features, or submit a pull request.
|
363
|
-
|
364
|
-
## See Also
|
365
|
-
|
366
|
-
### RSpec base libraries
|
367
|
-
|
368
|
-
* https://github.com/rspec/rspec
|
369
|
-
* https://github.com/rspec/rspec-core
|
370
|
-
* https://github.com/rspec/rspec-expectations
|
371
|
-
* https://github.com/rspec/rspec-mocks
|
372
|
-
|
373
|
-
### Recommended third-party extensions
|
374
|
-
|
375
|
-
* [FactoryBot](https://github.com/thoughtbot/factory_bot)
|
376
|
-
* [Capybara](https://github.com/teamcapybara/capybara)
|
377
|
-
(Included by default in Rails 5.1+.
|
378
|
-
Note that [additional configuration is required][] to use the Capybara DSL
|
379
|
-
anywhere other than system specs and feature specs.)
|
380
|
-
|
381
|
-
[additional configuration is required]: https://rubydoc.info/gems/rspec-rails/file/Capybara.md
|
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2012-24 Bozhidar Batsov
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,251 +0,0 @@
|
|
1
|
-
<p align="center">
|
2
|
-
<img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal-white.png" alt="RuboCop Logo"/>
|
3
|
-
</p>
|
4
|
-
|
5
|
-
----------
|
6
|
-
[](https://github.com/rubocop/rubocop)
|
7
|
-
[](https://badge.fury.io/rb/rubocop)
|
8
|
-
[](https://github.com/rubocop/rubocop/actions?query=workflow%3ACI)
|
9
|
-
[](https://codeclimate.com/github/rubocop/rubocop/test_coverage)
|
10
|
-
[](https://codeclimate.com/github/rubocop/rubocop/maintainability)
|
11
|
-
[](https://discord.gg/wJjWvGRDmm)
|
12
|
-
|
13
|
-
> Role models are important. <br/>
|
14
|
-
> -- Officer Alex J. Murphy / RoboCop
|
15
|
-
|
16
|
-
**RuboCop** is a Ruby static code analyzer (a.k.a. `linter`) and code formatter. Out of the box it
|
17
|
-
will enforce many of the guidelines outlined in the community [Ruby Style
|
18
|
-
Guide](https://rubystyle.guide). Apart from reporting the problems discovered in your code,
|
19
|
-
RuboCop can also automatically fix many of them for you.
|
20
|
-
|
21
|
-
RuboCop is extremely flexible and most aspects of its behavior can be tweaked via various
|
22
|
-
[configuration options](https://github.com/rubocop/rubocop/blob/master/config/default.yml).
|
23
|
-
|
24
|
-
----------
|
25
|
-
[](https://www.patreon.com/bbatsov)
|
26
|
-
[](#open-collective-backers)
|
27
|
-
[](#open-collective-sponsors)
|
28
|
-
[](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
29
|
-
|
30
|
-
Working on RuboCop is often fun, but it also requires a great deal of time and energy.
|
31
|
-
|
32
|
-
**Please consider [financially supporting its ongoing development](#funding).**
|
33
|
-
|
34
|
-
## Installation
|
35
|
-
|
36
|
-
**RuboCop**'s installation is pretty standard:
|
37
|
-
|
38
|
-
```sh
|
39
|
-
$ gem install rubocop
|
40
|
-
```
|
41
|
-
|
42
|
-
If you'd rather install RuboCop using `bundler`, add a line for it in your `Gemfile` (but set the `require` option to `false`, as it is a standalone tool):
|
43
|
-
|
44
|
-
```rb
|
45
|
-
gem 'rubocop', require: false
|
46
|
-
```
|
47
|
-
|
48
|
-
RuboCop is stable between minor versions, both in terms of API and cop configuration.
|
49
|
-
We aim to ease the maintenance of RuboCop extensions and the upgrades between RuboCop
|
50
|
-
releases. All big changes are reserved for major releases.
|
51
|
-
To prevent an unwanted RuboCop update you might want to use a conservative version lock
|
52
|
-
in your `Gemfile`:
|
53
|
-
|
54
|
-
```rb
|
55
|
-
gem 'rubocop', '~> 1.65', require: false
|
56
|
-
```
|
57
|
-
|
58
|
-
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
59
|
-
|
60
|
-
## Quickstart
|
61
|
-
|
62
|
-
Just type `rubocop` in a Ruby project's folder and watch the magic happen.
|
63
|
-
|
64
|
-
```
|
65
|
-
$ cd my/cool/ruby/project
|
66
|
-
$ rubocop
|
67
|
-
```
|
68
|
-
|
69
|
-
You can also use this magic in your favorite editor with RuboCop's [built-in LSP server](https://docs.rubocop.org/rubocop/usage/lsp.html).
|
70
|
-
|
71
|
-
## Documentation
|
72
|
-
|
73
|
-
You can read a lot more about RuboCop in its [official docs](https://docs.rubocop.org).
|
74
|
-
|
75
|
-
## Compatibility
|
76
|
-
|
77
|
-
RuboCop officially supports the following runtime Ruby implementations:
|
78
|
-
|
79
|
-
* MRI 2.7+
|
80
|
-
* JRuby 9.4+
|
81
|
-
|
82
|
-
Targets Ruby 2.0+ code analysis.
|
83
|
-
|
84
|
-
See the [compatibility documentation](https://docs.rubocop.org/rubocop/compatibility.html) for further details.
|
85
|
-
|
86
|
-
## Readme Badge
|
87
|
-
|
88
|
-
If you use RuboCop in your project, you can include one of these badges in your readme to let people know that your code is written following the community Ruby Style Guide.
|
89
|
-
|
90
|
-
[](https://github.com/rubocop/rubocop)
|
91
|
-
|
92
|
-
[](https://rubystyle.guide)
|
93
|
-
|
94
|
-
|
95
|
-
Here are the Markdown snippets for the two badges:
|
96
|
-
|
97
|
-
``` markdown
|
98
|
-
[](https://github.com/rubocop/rubocop)
|
99
|
-
|
100
|
-
[](https://rubystyle.guide)
|
101
|
-
```
|
102
|
-
|
103
|
-
## Team
|
104
|
-
|
105
|
-
Here's a list of RuboCop's core developers:
|
106
|
-
|
107
|
-
* [Bozhidar Batsov](https://github.com/bbatsov) (author & head maintainer)
|
108
|
-
* [Jonas Arvidsson](https://github.com/jonas054)
|
109
|
-
* [Yuji Nakayama](https://github.com/yujinakayama) (retired)
|
110
|
-
* [Evgeni Dzhelyov](https://github.com/edzhelyov) (retired)
|
111
|
-
* [Ted Johansson](https://github.com/drenmi)
|
112
|
-
* [Masataka Kuwabara](https://github.com/pocke)
|
113
|
-
* [Koichi Ito](https://github.com/koic)
|
114
|
-
* [Maxim Krizhanovski](https://github.com/darhazer)
|
115
|
-
* [Benjamin Quorning](https://github.com/bquorning)
|
116
|
-
* [Marc-André Lafortune](https://github.com/marcandre)
|
117
|
-
* [Daniel Vandersluis](https://github.com/dvandersluis)
|
118
|
-
|
119
|
-
See the [team page](https://docs.rubocop.org/rubocop/about/team.html) for more details.
|
120
|
-
|
121
|
-
## Logo
|
122
|
-
|
123
|
-
RuboCop's logo was created by [Dimiter Petrov](https://www.chadomoto.com/). You can find the logo in various
|
124
|
-
formats [here](https://github.com/rubocop/rubocop/tree/master/logo).
|
125
|
-
|
126
|
-
The logo is licensed under a
|
127
|
-
[Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0/deed.en_GB).
|
128
|
-
|
129
|
-
## Contributors
|
130
|
-
|
131
|
-
Here's a [list](https://github.com/rubocop/rubocop/graphs/contributors) of
|
132
|
-
all the people who have contributed to the development of RuboCop.
|
133
|
-
|
134
|
-
I'm extremely grateful to each and every one of them!
|
135
|
-
|
136
|
-
If you'd like to contribute to RuboCop, please take the time to go
|
137
|
-
through our short
|
138
|
-
[contribution guidelines](CONTRIBUTING.md).
|
139
|
-
|
140
|
-
Converting more of the Ruby Style Guide into RuboCop cops is our top
|
141
|
-
priority right now. Writing a new cop is a great way to dive into RuboCop!
|
142
|
-
|
143
|
-
Of course, bug reports and suggestions for improvements are always
|
144
|
-
welcome. GitHub pull requests are even better! :-)
|
145
|
-
|
146
|
-
## Funding
|
147
|
-
|
148
|
-
While RuboCop is free software and will always be, the project would benefit immensely from some funding.
|
149
|
-
Raising a monthly budget of a couple of thousand dollars would make it possible to pay people to work on
|
150
|
-
certain complex features, fund other development related stuff (e.g. hardware, conference trips) and so on.
|
151
|
-
Raising a monthly budget of over $5000 would open the possibility of someone working full-time on the project
|
152
|
-
which would speed up the pace of development significantly.
|
153
|
-
|
154
|
-
We welcome both individual and corporate sponsors! We also offer a
|
155
|
-
wide array of funding channels to account for your preferences
|
156
|
-
(although
|
157
|
-
currently [Open Collective](https://opencollective.com/rubocop) is our
|
158
|
-
preferred funding platform).
|
159
|
-
|
160
|
-
**If you're working in a company that's making significant use of RuboCop we'd appreciate it if you suggest to your company
|
161
|
-
to become a RuboCop sponsor.**
|
162
|
-
|
163
|
-
You can support the development of RuboCop via
|
164
|
-
[GitHub Sponsors](https://github.com/sponsors/bbatsov),
|
165
|
-
[Patreon](https://www.patreon.com/bbatsov),
|
166
|
-
[PayPal](https://paypal.me/bbatsov),
|
167
|
-
[Open Collective](https://opencollective.com/rubocop)
|
168
|
-
and [Tidelift](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
169
|
-
.
|
170
|
-
|
171
|
-
**Note:** If doing a sponsorship in the form of donation is problematic for your company from an accounting standpoint, we'd recommend
|
172
|
-
the use of Tidelift, where you can get a support-like subscription instead.
|
173
|
-
|
174
|
-
### Open Collective Backers
|
175
|
-
|
176
|
-
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/rubocop#backer)]
|
177
|
-
|
178
|
-
<a href="https://opencollective.com/rubocop/backer/0/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/0/avatar.svg"></a>
|
179
|
-
<a href="https://opencollective.com/rubocop/backer/1/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/1/avatar.svg"></a>
|
180
|
-
<a href="https://opencollective.com/rubocop/backer/2/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/2/avatar.svg"></a>
|
181
|
-
<a href="https://opencollective.com/rubocop/backer/3/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/3/avatar.svg"></a>
|
182
|
-
<a href="https://opencollective.com/rubocop/backer/4/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/4/avatar.svg"></a>
|
183
|
-
<a href="https://opencollective.com/rubocop/backer/5/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/5/avatar.svg"></a>
|
184
|
-
<a href="https://opencollective.com/rubocop/backer/6/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/6/avatar.svg"></a>
|
185
|
-
<a href="https://opencollective.com/rubocop/backer/7/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/7/avatar.svg"></a>
|
186
|
-
<a href="https://opencollective.com/rubocop/backer/8/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/8/avatar.svg"></a>
|
187
|
-
<a href="https://opencollective.com/rubocop/backer/9/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/9/avatar.svg"></a>
|
188
|
-
<a href="https://opencollective.com/rubocop/backer/10/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/10/avatar.svg"></a>
|
189
|
-
<a href="https://opencollective.com/rubocop/backer/11/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/11/avatar.svg"></a>
|
190
|
-
<a href="https://opencollective.com/rubocop/backer/12/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/12/avatar.svg"></a>
|
191
|
-
<a href="https://opencollective.com/rubocop/backer/13/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/13/avatar.svg"></a>
|
192
|
-
<a href="https://opencollective.com/rubocop/backer/14/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/14/avatar.svg"></a>
|
193
|
-
<a href="https://opencollective.com/rubocop/backer/15/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/15/avatar.svg"></a>
|
194
|
-
<a href="https://opencollective.com/rubocop/backer/16/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/16/avatar.svg"></a>
|
195
|
-
<a href="https://opencollective.com/rubocop/backer/17/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/17/avatar.svg"></a>
|
196
|
-
<a href="https://opencollective.com/rubocop/backer/18/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/18/avatar.svg"></a>
|
197
|
-
<a href="https://opencollective.com/rubocop/backer/19/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/19/avatar.svg"></a>
|
198
|
-
<a href="https://opencollective.com/rubocop/backer/20/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/20/avatar.svg"></a>
|
199
|
-
<a href="https://opencollective.com/rubocop/backer/21/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/21/avatar.svg"></a>
|
200
|
-
<a href="https://opencollective.com/rubocop/backer/22/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/22/avatar.svg"></a>
|
201
|
-
<a href="https://opencollective.com/rubocop/backer/23/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/23/avatar.svg"></a>
|
202
|
-
<a href="https://opencollective.com/rubocop/backer/24/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/24/avatar.svg"></a>
|
203
|
-
<a href="https://opencollective.com/rubocop/backer/25/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/25/avatar.svg"></a>
|
204
|
-
<a href="https://opencollective.com/rubocop/backer/26/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/26/avatar.svg"></a>
|
205
|
-
<a href="https://opencollective.com/rubocop/backer/27/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/27/avatar.svg"></a>
|
206
|
-
<a href="https://opencollective.com/rubocop/backer/28/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/28/avatar.svg"></a>
|
207
|
-
<a href="https://opencollective.com/rubocop/backer/29/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/29/avatar.svg"></a>
|
208
|
-
|
209
|
-
### Open Collective Sponsors
|
210
|
-
|
211
|
-
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/rubocop#sponsor)]
|
212
|
-
|
213
|
-
<a href="https://opencollective.com/rubocop/sponsor/0/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/0/avatar.svg"></a>
|
214
|
-
<a href="https://opencollective.com/rubocop/sponsor/1/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/1/avatar.svg"></a>
|
215
|
-
<a href="https://opencollective.com/rubocop/sponsor/2/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/2/avatar.svg"></a>
|
216
|
-
<a href="https://opencollective.com/rubocop/sponsor/3/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/3/avatar.svg"></a>
|
217
|
-
<a href="https://opencollective.com/rubocop/sponsor/4/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/4/avatar.svg"></a>
|
218
|
-
<a href="https://opencollective.com/rubocop/sponsor/5/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/5/avatar.svg"></a>
|
219
|
-
<a href="https://opencollective.com/rubocop/sponsor/6/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/6/avatar.svg"></a>
|
220
|
-
<a href="https://opencollective.com/rubocop/sponsor/7/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/7/avatar.svg"></a>
|
221
|
-
<a href="https://opencollective.com/rubocop/sponsor/8/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/8/avatar.svg"></a>
|
222
|
-
<a href="https://opencollective.com/rubocop/sponsor/9/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/9/avatar.svg"></a>
|
223
|
-
<a href="https://opencollective.com/rubocop/sponsor/10/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/10/avatar.svg"></a>
|
224
|
-
<a href="https://opencollective.com/rubocop/sponsor/11/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/11/avatar.svg"></a>
|
225
|
-
<a href="https://opencollective.com/rubocop/sponsor/12/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/12/avatar.svg"></a>
|
226
|
-
<a href="https://opencollective.com/rubocop/sponsor/13/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/13/avatar.svg"></a>
|
227
|
-
<a href="https://opencollective.com/rubocop/sponsor/14/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/14/avatar.svg"></a>
|
228
|
-
<a href="https://opencollective.com/rubocop/sponsor/15/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/15/avatar.svg"></a>
|
229
|
-
<a href="https://opencollective.com/rubocop/sponsor/16/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/16/avatar.svg"></a>
|
230
|
-
<a href="https://opencollective.com/rubocop/sponsor/17/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/17/avatar.svg"></a>
|
231
|
-
<a href="https://opencollective.com/rubocop/sponsor/18/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/18/avatar.svg"></a>
|
232
|
-
<a href="https://opencollective.com/rubocop/sponsor/19/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/19/avatar.svg"></a>
|
233
|
-
<a href="https://opencollective.com/rubocop/sponsor/20/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/20/avatar.svg"></a>
|
234
|
-
<a href="https://opencollective.com/rubocop/sponsor/21/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/21/avatar.svg"></a>
|
235
|
-
<a href="https://opencollective.com/rubocop/sponsor/22/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/22/avatar.svg"></a>
|
236
|
-
<a href="https://opencollective.com/rubocop/sponsor/23/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/23/avatar.svg"></a>
|
237
|
-
<a href="https://opencollective.com/rubocop/sponsor/24/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/24/avatar.svg"></a>
|
238
|
-
<a href="https://opencollective.com/rubocop/sponsor/25/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/25/avatar.svg"></a>
|
239
|
-
<a href="https://opencollective.com/rubocop/sponsor/26/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/26/avatar.svg"></a>
|
240
|
-
<a href="https://opencollective.com/rubocop/sponsor/27/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/27/avatar.svg"></a>
|
241
|
-
<a href="https://opencollective.com/rubocop/sponsor/28/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/28/avatar.svg"></a>
|
242
|
-
<a href="https://opencollective.com/rubocop/sponsor/29/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/29/avatar.svg"></a>
|
243
|
-
|
244
|
-
## Changelog
|
245
|
-
|
246
|
-
RuboCop's changelog is available [here](CHANGELOG.md).
|
247
|
-
|
248
|
-
## Copyright
|
249
|
-
|
250
|
-
Copyright (c) 2012-2024 Bozhidar Batsov. See [LICENSE.txt](LICENSE.txt) for
|
251
|
-
further details.
|