diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4ff4c31..838fff7 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -15,19 +15,41 @@ on: jobs: unit_tests: name: Unit Tests - if: "contains(github.event.commits[0].message, '[ci skip]') == false" - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + ruby: + - "2.7" + gemfile: + - gemfiles/rails_5_1.gemfile + - gemfiles/rails_6_0.gemfile + - gemfiles/rails_6_1.gemfile + - gemfiles/rails_7_0.gemfile + allow_failures: + - false + include: + - os: ubuntu-latest + ruby: "3.0" + gemfile: gemfiles/rails_7_0.gemfile + allow_failures: false + - os: ubuntu-latest + ruby: "3.1" + gemfile: gemfiles/rails_7_0.gemfile + allow_failures: false + env: + BUNDLE_GEMFILE: "${{ matrix.gemfile }}" + ALLOW_FAILURES: "${{ matrix.allow_failures }}" + runs-on: ${{ matrix.os }} continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }} steps: - name: Checkout - uses: actions/checkout@v2 - # - name: Setup Ruby - # uses: ruby/setup-ruby@v1 - # with: - # ruby-version: ${{ matrix.ruby }} - # bundler-cache: true + uses: actions/checkout@v3 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true - name: Test - run: | - bundle install - bundle exec appraisal install - bundle exec appraisal rspec + run: bundle exec rake spec || $ALLOW_FAILURES diff --git a/.gitignore b/.gitignore index bf8f452..2e9d635 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,5 @@ # rspec failure tracking .rspec_status -spec/support/rails_app_5_1_5/db/ -spec/support/rails_app_5_2_4_3/db/ -TODO.md \ No newline at end of file +spec/support/rails_app_*/db/ +TODO.md diff --git a/Appraisals b/Appraisals index ddd380c..2d1f057 100644 --- a/Appraisals +++ b/Appraisals @@ -1,14 +1,20 @@ -appraise "rails_5_1_5" do - gem "rails", "5.1.5" +appraise "rails_5_1" do + gem "rails", "~> 5.1.0" gem 'sqlite3', '~> 1.3.6' end -appraise "rails_5_2_4_3" do - gem "rails", "5.2.4.3" - gem 'sqlite3', '~> 1.4.2' +appraise "rails_5_2" do + gem "rails", "~> 5.2.0" end -appraise "rails_6_0_3_4" do - gem "rails", "6.0.3.4" - gem 'sqlite3', '~> 1.4.2' +appraise "rails_6_0" do + gem "rails", "~> 6.0.0" +end + +appraise "rails_6_1" do + gem "rails", "~> 6.1.0" +end + +appraise "rails_7_0" do + gem "rails", "~> 7.0.0" end diff --git a/Gemfile.lock b/Gemfile.lock index d681a72..e256421 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,91 +8,90 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (6.0.3.4) - actionpack (= 6.0.3.4) + actioncable (6.0.6) + actionpack (= 6.0.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + actionmailbox (6.0.6) + actionpack (= 6.0.6) + activejob (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) mail (>= 2.7.1) - actionmailer (6.0.3.4) - actionpack (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) + actionmailer (6.0.6) + actionpack (= 6.0.6) + actionview (= 6.0.6) + activejob (= 6.0.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.4) - actionview (= 6.0.3.4) - activesupport (= 6.0.3.4) + actionpack (6.0.6) + actionview (= 6.0.6) + activesupport (= 6.0.6) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.4) - actionpack (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + actiontext (6.0.6) + actionpack (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) nokogiri (>= 1.8.5) - actionview (6.0.3.4) - activesupport (= 6.0.3.4) + actionview (6.0.6) + activesupport (= 6.0.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.0.3.4) - activesupport (= 6.0.3.4) + activejob (6.0.6) + activesupport (= 6.0.6) globalid (>= 0.3.6) - activemodel (6.0.3.4) - activesupport (= 6.0.3.4) - activerecord (6.0.3.4) - activemodel (= 6.0.3.4) - activesupport (= 6.0.3.4) - activestorage (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) - marcel (~> 0.3.1) - activesupport (6.0.3.4) + activemodel (6.0.6) + activesupport (= 6.0.6) + activerecord (6.0.6) + activemodel (= 6.0.6) + activesupport (= 6.0.6) + activestorage (6.0.6) + actionpack (= 6.0.6) + activejob (= 6.0.6) + activerecord (= 6.0.6) + marcel (~> 1.0) + activesupport (6.0.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - appraisal (2.3.0) + appraisal (2.4.1) bundler rake thor (>= 0.14.0) builder (3.2.4) byebug (11.1.3) coderay (1.1.3) - concurrent-ruby (1.1.7) + concurrent-ruby (1.1.10) crass (1.0.6) - diff-lcs (1.4.4) - erubi (1.9.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.8.5) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - loofah (2.7.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) + marcel (1.0.2) method_source (1.0.0) - mimemagic (0.3.5) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - minitest (5.14.2) - nio4r (2.5.4) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) + mini_mime (1.1.2) + minitest (5.16.3) + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) + racc (~> 1.4) pastel (0.8.0) tty-color (~> 0.5) pry (0.13.1) @@ -101,69 +100,64 @@ GEM pry-byebug (3.9.0) byebug (~> 11.0) pry (~> 0.13.0) - rack (2.2.3) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (6.0.3.4) - actioncable (= 6.0.3.4) - actionmailbox (= 6.0.3.4) - actionmailer (= 6.0.3.4) - actionpack (= 6.0.3.4) - actiontext (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) - activemodel (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (6.0.6) + actioncable (= 6.0.6) + actionmailbox (= 6.0.6) + actionmailer (= 6.0.6) + actionpack (= 6.0.6) + actiontext (= 6.0.6) + actionview (= 6.0.6) + activejob (= 6.0.6) + activemodel (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) bundler (>= 1.3.0) - railties (= 6.0.3.4) + railties (= 6.0.6) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.3) loofah (~> 2.3) - railties (6.0.3.4) - actionpack (= 6.0.3.4) - activesupport (= 6.0.3.4) + railties (6.0.6) + actionpack (= 6.0.6) + activesupport (= 6.0.6) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) - rake (13.0.1) - rspec (3.9.0) - rspec-core (~> 3.9.0) - rspec-expectations (~> 3.9.0) - rspec-mocks (~> 3.9.0) - rspec-core (3.9.3) - rspec-support (~> 3.9.3) - rspec-expectations (3.9.2) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.9.0) - rspec-mocks (3.9.1) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.9.0) - rspec-support (3.9.3) - sorbet (0.5.6303) - sorbet-static (= 0.5.6303) - sorbet-runtime (0.5.6303) - sorbet-static (0.5.6303-universal-darwin-14) - sorbet-static (0.5.6303-universal-darwin-15) - sorbet-static (0.5.6303-universal-darwin-16) - sorbet-static (0.5.6303-universal-darwin-17) - sorbet-static (0.5.6303-universal-darwin-18) - sorbet-static (0.5.6303-universal-darwin-19) - sorbet-static (0.5.6303-universal-darwin-20) - sorbet-static (0.5.6303-x86_64-linux) - sprockets (4.0.2) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sprockets (4.1.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) - sqlite3 (1.4.2) - thor (1.0.1) + sqlite3 (1.4.4) + thor (1.2.1) thread_safe (0.3.6) tty-color (0.6.0) tty-cursor (0.7.1) @@ -175,16 +169,17 @@ GEM tty-screen (~> 0.8) wisper (~> 2.0) tty-screen (0.8.1) - tzinfo (1.2.7) + tzinfo (1.2.10) thread_safe (~> 0.1) - websocket-driver (0.7.3) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.1) - zeitwerk (2.4.0) + zeitwerk (2.6.1) PLATFORMS - ruby + arm64-darwin-21 + x86_64-linux DEPENDENCIES appraisal @@ -198,4 +193,4 @@ DEPENDENCIES sqlite3 (~> 1.4.2) BUNDLED WITH - 2.2.3 + 2.3.23 diff --git a/gemfiles/rails_5_1_5.gemfile b/gemfiles/rails_5_1.gemfile similarity index 83% rename from gemfiles/rails_5_1_5.gemfile rename to gemfiles/rails_5_1.gemfile index 4456cca..1edc9a1 100644 --- a/gemfiles/rails_5_1_5.gemfile +++ b/gemfiles/rails_5_1.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "rails", "5.1.5" +gem "rails", "~> 5.1.0" gem "sqlite3", "~> 1.3.6" gemspec path: "../" diff --git a/gemfiles/rails_5_1_5.gemfile.lock b/gemfiles/rails_5_1.gemfile.lock similarity index 50% rename from gemfiles/rails_5_1_5.gemfile.lock rename to gemfiles/rails_5_1.gemfile.lock index 92a6ca4..f616ebf 100644 --- a/gemfiles/rails_5_1_5.gemfile.lock +++ b/gemfiles/rails_5_1.gemfile.lock @@ -8,44 +8,44 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (5.1.5) - actionpack (= 5.1.5) + actioncable (5.1.7) + actionpack (= 5.1.7) nio4r (~> 2.0) websocket-driver (~> 0.6.1) - actionmailer (5.1.5) - actionpack (= 5.1.5) - actionview (= 5.1.5) - activejob (= 5.1.5) + actionmailer (5.1.7) + actionpack (= 5.1.7) + actionview (= 5.1.7) + activejob (= 5.1.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.1.5) - actionview (= 5.1.5) - activesupport (= 5.1.5) + actionpack (5.1.7) + actionview (= 5.1.7) + activesupport (= 5.1.7) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.1.5) - activesupport (= 5.1.5) + actionview (5.1.7) + activesupport (= 5.1.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.1.5) - activesupport (= 5.1.5) + activejob (5.1.7) + activesupport (= 5.1.7) globalid (>= 0.3.6) - activemodel (5.1.5) - activesupport (= 5.1.5) - activerecord (5.1.5) - activemodel (= 5.1.5) - activesupport (= 5.1.5) + activemodel (5.1.7) + activesupport (= 5.1.7) + activerecord (5.1.7) + activemodel (= 5.1.7) + activesupport (= 5.1.7) arel (~> 8.0) - activesupport (5.1.5) + activesupport (5.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (~> 0.7) + i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - appraisal (2.4.0) + appraisal (2.4.1) bundler rake thor (>= 0.14.0) @@ -53,26 +53,26 @@ GEM builder (3.2.4) byebug (11.1.3) coderay (1.1.3) - concurrent-ruby (1.1.8) + concurrent-ruby (1.1.10) crass (1.0.6) - diff-lcs (1.4.4) - erubi (1.10.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (0.9.5) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - loofah (2.9.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) method_source (1.0.0) - mini_mime (1.0.2) - mini_portile2 (2.5.0) - minitest (5.14.4) - nio4r (2.5.5) - nokogiri (1.11.1) - mini_portile2 (~> 2.5.0) + mini_mime (1.1.2) + minitest (5.16.3) + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) racc (~> 1.4) pastel (0.8.0) tty-color (~> 0.5) @@ -82,59 +82,53 @@ GEM pry-byebug (3.9.0) byebug (~> 11.0) pry (~> 0.13.0) - racc (1.5.2) - rack (2.2.3) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (5.1.5) - actioncable (= 5.1.5) - actionmailer (= 5.1.5) - actionpack (= 5.1.5) - actionview (= 5.1.5) - activejob (= 5.1.5) - activemodel (= 5.1.5) - activerecord (= 5.1.5) - activesupport (= 5.1.5) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (5.1.7) + actioncable (= 5.1.7) + actionmailer (= 5.1.7) + actionpack (= 5.1.7) + actionview (= 5.1.7) + activejob (= 5.1.7) + activemodel (= 5.1.7) + activerecord (= 5.1.7) + activesupport (= 5.1.7) bundler (>= 1.3.0) - railties (= 5.1.5) + railties (= 5.1.7) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.3) loofah (~> 2.3) - railties (5.1.5) - actionpack (= 5.1.5) - activesupport (= 5.1.5) + railties (5.1.7) + actionpack (= 5.1.7) + activesupport (= 5.1.7) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rake (13.0.3) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.2) - sorbet (0.5.6303) - sorbet-static (= 0.5.6303) - sorbet-runtime (0.5.6303) - sorbet-static (0.5.6303-universal-darwin-14) - sorbet-static (0.5.6303-universal-darwin-15) - sorbet-static (0.5.6303-universal-darwin-16) - sorbet-static (0.5.6303-universal-darwin-17) - sorbet-static (0.5.6303-universal-darwin-18) - sorbet-static (0.5.6303-universal-darwin-19) - sorbet-static (0.5.6303-universal-darwin-20) - sorbet-static (0.5.6303-x86_64-linux) - sprockets (4.0.2) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sprockets (4.1.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.2) @@ -142,7 +136,7 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.3.13) - thor (1.1.0) + thor (1.2.1) thread_safe (0.3.6) tty-color (0.6.0) tty-cursor (0.7.1) @@ -154,7 +148,7 @@ GEM tty-screen (~> 0.8) wisper (~> 2.0) tty-screen (0.8.1) - tzinfo (1.2.9) + tzinfo (1.2.10) thread_safe (~> 0.1) websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) @@ -162,18 +156,19 @@ GEM wisper (2.0.1) PLATFORMS - ruby + arm64-darwin-21 + x86_64-linux DEPENDENCIES appraisal bundler (~> 2.0) lazy_migrate! pry-byebug (~> 3.9.0) - rails (= 5.1.5) + rails (~> 5.1.0) rake (~> 13.0) rspec (~> 3.0) sorbet sqlite3 (~> 1.3.6) BUNDLED WITH - 2.2.3 + 2.3.23 diff --git a/gemfiles/rails_6_0_3_4.gemfile b/gemfiles/rails_5_2.gemfile similarity index 65% rename from gemfiles/rails_6_0_3_4.gemfile rename to gemfiles/rails_5_2.gemfile index 801574b..5a706dc 100644 --- a/gemfiles/rails_6_0_3_4.gemfile +++ b/gemfiles/rails_5_2.gemfile @@ -2,7 +2,6 @@ source "https://rubygems.org" -gem "rails", "6.0.3.4" -gem "sqlite3", "~> 1.4.2" +gem "rails", "~> 5.2.0" gemspec path: "../" diff --git a/gemfiles/rails_5_2.gemfile.lock b/gemfiles/rails_5_2.gemfile.lock new file mode 100644 index 0000000..268e47f --- /dev/null +++ b/gemfiles/rails_5_2.gemfile.lock @@ -0,0 +1,180 @@ +PATH + remote: .. + specs: + lazy_migrate (0.3.0) + sorbet-runtime + tty-prompt (~> 0.22.0) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) + globalid (>= 0.3.6) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + arel (9.0.0) + builder (3.2.4) + byebug (11.1.3) + coderay (1.1.3) + concurrent-ruby (1.1.10) + crass (1.0.6) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + loofah (2.19.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.16.3) + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) + racc (~> 1.4) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) + byebug (~> 11.0) + pry (~> 0.13.0) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.4.3) + loofah (~> 2.3) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sprockets (4.1.1) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + sqlite3 (1.4.4) + thor (1.2.1) + thread_safe (0.3.6) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tzinfo (1.2.10) + thread_safe (~> 0.1) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wisper (2.0.1) + +PLATFORMS + arm64-darwin-21 + x86_64-linux + +DEPENDENCIES + appraisal + bundler (~> 2.0) + lazy_migrate! + pry-byebug (~> 3.9.0) + rails (~> 5.2.0) + rake (~> 13.0) + rspec (~> 3.0) + sorbet + sqlite3 (~> 1.4.2) + +BUNDLED WITH + 2.3.23 diff --git a/gemfiles/rails_5_2_4_3.gemfile b/gemfiles/rails_6_0.gemfile similarity index 65% rename from gemfiles/rails_5_2_4_3.gemfile rename to gemfiles/rails_6_0.gemfile index 792bf14..15b9b27 100644 --- a/gemfiles/rails_5_2_4_3.gemfile +++ b/gemfiles/rails_6_0.gemfile @@ -2,7 +2,6 @@ source "https://rubygems.org" -gem "rails", "5.2.4.3" -gem "sqlite3", "~> 1.4.2" +gem "rails", "~> 6.0.0" gemspec path: "../" diff --git a/gemfiles/rails_6_0.gemfile.lock b/gemfiles/rails_6_0.gemfile.lock new file mode 100644 index 0000000..a267bd5 --- /dev/null +++ b/gemfiles/rails_6_0.gemfile.lock @@ -0,0 +1,196 @@ +PATH + remote: .. + specs: + lazy_migrate (0.3.0) + sorbet-runtime + tty-prompt (~> 0.22.0) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.0.6) + actionpack (= 6.0.6) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.0.6) + actionpack (= 6.0.6) + activejob (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) + mail (>= 2.7.1) + actionmailer (6.0.6) + actionpack (= 6.0.6) + actionview (= 6.0.6) + activejob (= 6.0.6) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.0.6) + actionview (= 6.0.6) + activesupport (= 6.0.6) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.0.6) + actionpack (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) + nokogiri (>= 1.8.5) + actionview (6.0.6) + activesupport (= 6.0.6) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.0.6) + activesupport (= 6.0.6) + globalid (>= 0.3.6) + activemodel (6.0.6) + activesupport (= 6.0.6) + activerecord (6.0.6) + activemodel (= 6.0.6) + activesupport (= 6.0.6) + activestorage (6.0.6) + actionpack (= 6.0.6) + activejob (= 6.0.6) + activerecord (= 6.0.6) + marcel (~> 1.0) + activesupport (6.0.6) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + zeitwerk (~> 2.2, >= 2.2.2) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + builder (3.2.4) + byebug (11.1.3) + coderay (1.1.3) + concurrent-ruby (1.1.10) + crass (1.0.6) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + loofah (2.19.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.16.3) + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) + racc (~> 1.4) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) + byebug (~> 11.0) + pry (~> 0.13.0) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (6.0.6) + actioncable (= 6.0.6) + actionmailbox (= 6.0.6) + actionmailer (= 6.0.6) + actionpack (= 6.0.6) + actiontext (= 6.0.6) + actionview (= 6.0.6) + activejob (= 6.0.6) + activemodel (= 6.0.6) + activerecord (= 6.0.6) + activestorage (= 6.0.6) + activesupport (= 6.0.6) + bundler (>= 1.3.0) + railties (= 6.0.6) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.4.3) + loofah (~> 2.3) + railties (6.0.6) + actionpack (= 6.0.6) + activesupport (= 6.0.6) + method_source + rake (>= 0.8.7) + thor (>= 0.20.3, < 2.0) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sprockets (4.1.1) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + sqlite3 (1.4.4) + thor (1.2.1) + thread_safe (0.3.6) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tzinfo (1.2.10) + thread_safe (~> 0.1) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wisper (2.0.1) + zeitwerk (2.6.1) + +PLATFORMS + arm64-darwin-21 + x86_64-linux + +DEPENDENCIES + appraisal + bundler (~> 2.0) + lazy_migrate! + pry-byebug (~> 3.9.0) + rails (~> 6.0.0) + rake (~> 13.0) + rspec (~> 3.0) + sorbet + sqlite3 (~> 1.4.2) + +BUNDLED WITH + 2.3.23 diff --git a/gemfiles/rails_6_0_3_4.gemfile.lock b/gemfiles/rails_6_0_3_4.gemfile.lock deleted file mode 100644 index 9245b65..0000000 --- a/gemfiles/rails_6_0_3_4.gemfile.lock +++ /dev/null @@ -1,203 +0,0 @@ -PATH - remote: .. - specs: - lazy_migrate (0.3.0) - sorbet-runtime - tty-prompt (~> 0.22.0) - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.0.3.4) - actionpack (= 6.0.3.4) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) - mail (>= 2.7.1) - actionmailer (6.0.3.4) - actionpack (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.0.3.4) - actionview (= 6.0.3.4) - activesupport (= 6.0.3.4) - rack (~> 2.0, >= 2.0.8) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.4) - actionpack (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) - nokogiri (>= 1.8.5) - actionview (6.0.3.4) - activesupport (= 6.0.3.4) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.0.3.4) - activesupport (= 6.0.3.4) - globalid (>= 0.3.6) - activemodel (6.0.3.4) - activesupport (= 6.0.3.4) - activerecord (6.0.3.4) - activemodel (= 6.0.3.4) - activesupport (= 6.0.3.4) - activestorage (6.0.3.4) - actionpack (= 6.0.3.4) - activejob (= 6.0.3.4) - activerecord (= 6.0.3.4) - marcel (~> 0.3.1) - activesupport (6.0.3.4) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) - appraisal (2.4.0) - bundler - rake - thor (>= 0.14.0) - builder (3.2.4) - byebug (11.1.3) - coderay (1.1.3) - concurrent-ruby (1.1.8) - crass (1.0.6) - diff-lcs (1.4.4) - erubi (1.10.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.8.9) - concurrent-ruby (~> 1.0) - loofah (2.9.0) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (1.0.0) - mimemagic (0.3.5) - mini_mime (1.0.2) - mini_portile2 (2.5.0) - minitest (5.14.4) - nio4r (2.5.5) - nokogiri (1.11.1) - mini_portile2 (~> 2.5.0) - racc (~> 1.4) - pastel (0.8.0) - tty-color (~> 0.5) - pry (0.13.1) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.9.0) - byebug (~> 11.0) - pry (~> 0.13.0) - racc (1.5.2) - rack (2.2.3) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (6.0.3.4) - actioncable (= 6.0.3.4) - actionmailbox (= 6.0.3.4) - actionmailer (= 6.0.3.4) - actionpack (= 6.0.3.4) - actiontext (= 6.0.3.4) - actionview (= 6.0.3.4) - activejob (= 6.0.3.4) - activemodel (= 6.0.3.4) - activerecord (= 6.0.3.4) - activestorage (= 6.0.3.4) - activesupport (= 6.0.3.4) - bundler (>= 1.3.0) - railties (= 6.0.3.4) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) - loofah (~> 2.3) - railties (6.0.3.4) - actionpack (= 6.0.3.4) - activesupport (= 6.0.3.4) - method_source - rake (>= 0.8.7) - thor (>= 0.20.3, < 2.0) - rake (13.0.3) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.2) - sorbet (0.5.6303) - sorbet-static (= 0.5.6303) - sorbet-runtime (0.5.6303) - sorbet-static (0.5.6303-universal-darwin-14) - sorbet-static (0.5.6303-universal-darwin-15) - sorbet-static (0.5.6303-universal-darwin-16) - sorbet-static (0.5.6303-universal-darwin-17) - sorbet-static (0.5.6303-universal-darwin-18) - sorbet-static (0.5.6303-universal-darwin-19) - sorbet-static (0.5.6303-universal-darwin-20) - sorbet-static (0.5.6303-x86_64-linux) - sprockets (4.0.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - sqlite3 (1.4.2) - thor (1.1.0) - thread_safe (0.3.6) - tty-color (0.6.0) - tty-cursor (0.7.1) - tty-prompt (0.22.0) - pastel (~> 0.8) - tty-reader (~> 0.8) - tty-reader (0.9.0) - tty-cursor (~> 0.7) - tty-screen (~> 0.8) - wisper (~> 2.0) - tty-screen (0.8.1) - tzinfo (1.2.9) - thread_safe (~> 0.1) - websocket-driver (0.7.3) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - wisper (2.0.1) - zeitwerk (2.4.2) - -PLATFORMS - ruby - -DEPENDENCIES - appraisal - bundler (~> 2.0) - lazy_migrate! - pry-byebug (~> 3.9.0) - rails (= 6.0.3.4) - rake (~> 13.0) - rspec (~> 3.0) - sorbet - sqlite3 (~> 1.4.2) - -BUNDLED WITH - 2.2.3 diff --git a/gemfiles/rails_6_1.gemfile b/gemfiles/rails_6_1.gemfile new file mode 100644 index 0000000..dd95a47 --- /dev/null +++ b/gemfiles/rails_6_1.gemfile @@ -0,0 +1,7 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "~> 6.1.0" + +gemspec path: "../" diff --git a/gemfiles/rails_6_1.gemfile.lock b/gemfiles/rails_6_1.gemfile.lock new file mode 100644 index 0000000..d2bfdc4 --- /dev/null +++ b/gemfiles/rails_6_1.gemfile.lock @@ -0,0 +1,199 @@ +PATH + remote: .. + specs: + lazy_migrate (0.3.0) + sorbet-runtime + tty-prompt (~> 0.22.0) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) + mail (>= 2.7.1) + actionmailer (6.1.7) + actionpack (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activesupport (= 6.1.7) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7) + actionview (= 6.1.7) + activesupport (= 6.1.7) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.7) + actionpack (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) + nokogiri (>= 1.8.5) + actionview (6.1.7) + activesupport (= 6.1.7) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.7) + activesupport (= 6.1.7) + globalid (>= 0.3.6) + activemodel (6.1.7) + activesupport (= 6.1.7) + activerecord (6.1.7) + activemodel (= 6.1.7) + activesupport (= 6.1.7) + activestorage (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activesupport (= 6.1.7) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + builder (3.2.4) + byebug (11.1.3) + coderay (1.1.3) + concurrent-ruby (1.1.10) + crass (1.0.6) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + loofah (2.19.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.16.3) + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) + racc (~> 1.4) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) + byebug (~> 11.0) + pry (~> 0.13.0) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (6.1.7) + actioncable (= 6.1.7) + actionmailbox (= 6.1.7) + actionmailer (= 6.1.7) + actionpack (= 6.1.7) + actiontext (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activemodel (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) + bundler (>= 1.15.0) + railties (= 6.1.7) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.4.3) + loofah (~> 2.3) + railties (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) + method_source + rake (>= 12.2) + thor (~> 1.0) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sprockets (4.1.1) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + sqlite3 (1.4.4) + thor (1.2.1) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tzinfo (2.0.5) + concurrent-ruby (~> 1.0) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wisper (2.0.1) + zeitwerk (2.6.1) + +PLATFORMS + arm64-darwin-21 + x86_64-linux + +DEPENDENCIES + appraisal + bundler (~> 2.0) + lazy_migrate! + pry-byebug (~> 3.9.0) + rails (~> 6.1.0) + rake (~> 13.0) + rspec (~> 3.0) + sorbet + sqlite3 (~> 1.4.2) + +BUNDLED WITH + 2.3.23 diff --git a/gemfiles/rails_7_0.gemfile b/gemfiles/rails_7_0.gemfile new file mode 100644 index 0000000..9af0ae3 --- /dev/null +++ b/gemfiles/rails_7_0.gemfile @@ -0,0 +1,7 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "~> 7.0.0" + +gemspec path: "../" diff --git a/gemfiles/rails_7_0.gemfile.lock b/gemfiles/rails_7_0.gemfile.lock new file mode 100644 index 0000000..0b11068 --- /dev/null +++ b/gemfiles/rails_7_0.gemfile.lock @@ -0,0 +1,207 @@ +PATH + remote: .. + specs: + lazy_migrate (0.3.0) + sorbet-runtime + tty-prompt (~> 0.22.0) + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.4) + actionpack (= 7.0.4) + activesupport (= 7.0.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.4) + actionpack (= 7.0.4) + activejob (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.4) + actionpack (= 7.0.4) + actionview (= 7.0.4) + activejob (= 7.0.4) + activesupport (= 7.0.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.4) + actionview (= 7.0.4) + activesupport (= 7.0.4) + rack (~> 2.0, >= 2.2.0) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.4) + actionpack (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.4) + activesupport (= 7.0.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.4) + activesupport (= 7.0.4) + globalid (>= 0.3.6) + activemodel (7.0.4) + activesupport (= 7.0.4) + activerecord (7.0.4) + activemodel (= 7.0.4) + activesupport (= 7.0.4) + activestorage (7.0.4) + actionpack (= 7.0.4) + activejob (= 7.0.4) + activerecord (= 7.0.4) + activesupport (= 7.0.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + builder (3.2.4) + byebug (11.1.3) + coderay (1.1.3) + concurrent-ruby (1.1.10) + crass (1.0.6) + diff-lcs (1.5.0) + erubi (1.11.0) + globalid (1.0.0) + activesupport (>= 5.0) + i18n (1.12.0) + concurrent-ruby (~> 1.0) + loofah (2.19.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.16.3) + net-imap (0.3.1) + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.1.3) + timeout + net-smtp (0.3.2) + net-protocol + nio4r (2.5.8) + nokogiri (1.13.8-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-linux) + racc (~> 1.4) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) + byebug (~> 11.0) + pry (~> 0.13.0) + racc (1.6.0) + rack (2.2.4) + rack-test (2.0.2) + rack (>= 1.3) + rails (7.0.4) + actioncable (= 7.0.4) + actionmailbox (= 7.0.4) + actionmailer (= 7.0.4) + actionpack (= 7.0.4) + actiontext (= 7.0.4) + actionview (= 7.0.4) + activejob (= 7.0.4) + activemodel (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) + bundler (>= 1.15.0) + railties (= 7.0.4) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.4.3) + loofah (~> 2.3) + railties (7.0.4) + actionpack (= 7.0.4) + activesupport (= 7.0.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rake (13.0.6) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-support (3.11.1) + sorbet (0.5.10488) + sorbet-static (= 0.5.10488) + sorbet-runtime (0.5.10488) + sorbet-static (0.5.10488-universal-darwin-21) + sorbet-static (0.5.10488-x86_64-linux) + sqlite3 (1.4.4) + thor (1.2.1) + timeout (0.3.0) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tzinfo (2.0.5) + concurrent-ruby (~> 1.0) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wisper (2.0.1) + zeitwerk (2.6.1) + +PLATFORMS + arm64-darwin-21 + x86_64-linux + +DEPENDENCIES + appraisal + bundler (~> 2.0) + lazy_migrate! + pry-byebug (~> 3.9.0) + rails (~> 7.0.0) + rake (~> 13.0) + rspec (~> 3.0) + sorbet + sqlite3 (~> 1.4.2) + +BUNDLED WITH + 2.3.23 diff --git a/lib/lazy_migrate/client.rb b/lib/lazy_migrate/client.rb index 0056018..be9a78e 100644 --- a/lib/lazy_migrate/client.rb +++ b/lib/lazy_migrate/client.rb @@ -23,7 +23,7 @@ def run catch(:done) do on_done = -> { throw :done } - prompt.ok("\nDatabase: #{ActiveRecord::Base.connection_config[:database]}\n") + prompt.ok("\nDatabase: #{database_name}\n") select_migration_prompt(on_done: on_done, migrator_adapter: migrator_adapter) end @@ -34,6 +34,16 @@ def run private + def database_name + if ActiveRecord::Base.respond_to?(:connection_db_config) + # Rails 7 + ActiveRecord::Base.connection_db_config.database + else + # Rails 6- + ActiveRecord::Base.connection_config[:database] + end + end + def prompt TTY::Prompt.new(active_color: :bright_green) end diff --git a/spec/lazy_migrate/client_spec.rb b/spec/lazy_migrate/client_spec.rb new file mode 100644 index 0000000..ab6e090 --- /dev/null +++ b/spec/lazy_migrate/client_spec.rb @@ -0,0 +1,84 @@ +# typed: false +# frozen_string_literal: true + +require 'rails_helper' +require 'lazy_migrate/migration' + +RSpec.describe LazyMigrate::Client do + let(:rails_root) { Rails.root } + + let(:create_books_migration_status) { + LazyMigrate::Migration.new(status: "up", version: 20200804231712, name: "Create books", has_file: true, current: false) + } + + let(:add_author_migration_status_status) { 'up' } + let(:add_author_migration_status) { + LazyMigrate::Migration.new(status: add_author_migration_status_status, version: 20200804234040, name: "Add book author", has_file: true, current: false) + } + + let(:add_page_count_migration_status) { + LazyMigrate::Migration.new(status: "down", version: 20200804234057, name: "Add book page count", has_file: true, current: false) + } + + let(:add_rating_migration_status) { + LazyMigrate::Migration.new(status: "up", version: 20200804234111, name: "Add book rating", has_file: true, current: true) + } + + let(:migrations) { + [ + add_rating_migration_status, + add_page_count_migration_status, + add_author_migration_status, + create_books_migration_status, + ] + } + + let(:migrator_adapter) { LazyMigrate::MigratorAdapterFactory.create_migrator_adapter } + + let(:new_version) { 30900804234040 } + + def find_support_folder + File.join(File.dirname(File.dirname(__FILE__)), 'support') + end + + before do + # prepare the db directory + support_folder = find_support_folder + db_dir = ActiveRecord::Tasks::DatabaseTasks.db_dir + + schema_filename = File.join(db_dir, 'schema.rb') + FileUtils.cp(File.join(support_folder, 'mock_schema.rb'), schema_filename) + + migrate_dir = File.join(db_dir, 'migrate') + FileUtils.rm_rf(migrate_dir) + FileUtils.cp_r(File.join(support_folder, 'mock_migrations/default/.'), migrate_dir) + + ActiveRecord::Migration.drop_table(:books) if ActiveRecord::Base.connection.table_exists?(:books) + ActiveRecord::Migration.create_table "books", force: :cascade do |t| + t.string "name" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + ActiveRecord::SchemaMigration.delete_all + + migrations.sort { |m| m.version }.each do |migration| + if migration.status == 'up' + ActiveRecord::SchemaMigration.create(version: migration.version) + end + end + end + + after do + db_dir = ActiveRecord::Tasks::DatabaseTasks.db_dir + + FileUtils.rm(File.join(db_dir, 'schema.rb')) + FileUtils.rm_rf(File.join(db_dir, 'migrate')) + end + + describe '.database_name' do + it "returns without error" do + expect { described_class.send(:database_name) }.not_to raise_error + end + end +end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 6b35204..f4adf7c 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -3,7 +3,7 @@ require 'rails/all' # require 'rspec/rails' -version_underlined = Rails.version.gsub('.', '_') +version_underlined = Rails.version.gsub('.', '_').gsub(/(\d_\d)(_\d)+$/, '\1') require "support/rails_app_#{version_underlined}/config/environment" support_folder = File.join(File.dirname(__FILE__), 'support') diff --git a/spec/support/rails_app_5_1_5/.gitignore b/spec/support/rails_app_5_1/.gitignore similarity index 100% rename from spec/support/rails_app_5_1_5/.gitignore rename to spec/support/rails_app_5_1/.gitignore diff --git a/spec/support/rails_app_5_1_5/Gemfile b/spec/support/rails_app_5_1/Gemfile similarity index 100% rename from spec/support/rails_app_5_1_5/Gemfile rename to spec/support/rails_app_5_1/Gemfile diff --git a/spec/support/rails_app_5_1_5/Gemfile.lock b/spec/support/rails_app_5_1/Gemfile.lock similarity index 100% rename from spec/support/rails_app_5_1_5/Gemfile.lock rename to spec/support/rails_app_5_1/Gemfile.lock diff --git a/spec/support/rails_app_5_1_5/README.md b/spec/support/rails_app_5_1/README.md similarity index 100% rename from spec/support/rails_app_5_1_5/README.md rename to spec/support/rails_app_5_1/README.md diff --git a/spec/support/rails_app_5_1_5/Rakefile b/spec/support/rails_app_5_1/Rakefile similarity index 100% rename from spec/support/rails_app_5_1_5/Rakefile rename to spec/support/rails_app_5_1/Rakefile diff --git a/spec/support/rails_app_5_1_5/app/assets/config/manifest.js b/spec/support/rails_app_5_1/app/assets/config/manifest.js similarity index 100% rename from spec/support/rails_app_5_1_5/app/assets/config/manifest.js rename to spec/support/rails_app_5_1/app/assets/config/manifest.js diff --git a/spec/support/rails_app_5_1_5/app/channels/application_cable/channel.rb b/spec/support/rails_app_5_1/app/channels/application_cable/channel.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/channels/application_cable/channel.rb rename to spec/support/rails_app_5_1/app/channels/application_cable/channel.rb diff --git a/spec/support/rails_app_5_1_5/app/channels/application_cable/connection.rb b/spec/support/rails_app_5_1/app/channels/application_cable/connection.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/channels/application_cable/connection.rb rename to spec/support/rails_app_5_1/app/channels/application_cable/connection.rb diff --git a/spec/support/rails_app_5_1_5/app/controllers/application_controller.rb b/spec/support/rails_app_5_1/app/controllers/application_controller.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/controllers/application_controller.rb rename to spec/support/rails_app_5_1/app/controllers/application_controller.rb diff --git a/spec/support/rails_app_5_1_5/app/controllers/concerns/.keep b/spec/support/rails_app_5_1/app/controllers/concerns/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/app/controllers/concerns/.keep rename to spec/support/rails_app_5_1/app/controllers/concerns/.keep diff --git a/spec/support/rails_app_5_1_5/app/jobs/application_job.rb b/spec/support/rails_app_5_1/app/jobs/application_job.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/jobs/application_job.rb rename to spec/support/rails_app_5_1/app/jobs/application_job.rb diff --git a/spec/support/rails_app_5_1_5/app/mailers/application_mailer.rb b/spec/support/rails_app_5_1/app/mailers/application_mailer.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/mailers/application_mailer.rb rename to spec/support/rails_app_5_1/app/mailers/application_mailer.rb diff --git a/spec/support/rails_app_5_1_5/app/models/application_record.rb b/spec/support/rails_app_5_1/app/models/application_record.rb similarity index 100% rename from spec/support/rails_app_5_1_5/app/models/application_record.rb rename to spec/support/rails_app_5_1/app/models/application_record.rb diff --git a/spec/support/rails_app_5_1_5/app/models/concerns/.keep b/spec/support/rails_app_5_1/app/models/concerns/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/app/models/concerns/.keep rename to spec/support/rails_app_5_1/app/models/concerns/.keep diff --git a/spec/support/rails_app_5_1_5/app/views/layouts/mailer.html.erb b/spec/support/rails_app_5_1/app/views/layouts/mailer.html.erb similarity index 100% rename from spec/support/rails_app_5_1_5/app/views/layouts/mailer.html.erb rename to spec/support/rails_app_5_1/app/views/layouts/mailer.html.erb diff --git a/spec/support/rails_app_5_1_5/app/views/layouts/mailer.text.erb b/spec/support/rails_app_5_1/app/views/layouts/mailer.text.erb similarity index 100% rename from spec/support/rails_app_5_1_5/app/views/layouts/mailer.text.erb rename to spec/support/rails_app_5_1/app/views/layouts/mailer.text.erb diff --git a/spec/support/rails_app_5_1_5/bin/bundle b/spec/support/rails_app_5_1/bin/bundle similarity index 100% rename from spec/support/rails_app_5_1_5/bin/bundle rename to spec/support/rails_app_5_1/bin/bundle diff --git a/spec/support/rails_app_5_1_5/bin/rails b/spec/support/rails_app_5_1/bin/rails similarity index 100% rename from spec/support/rails_app_5_1_5/bin/rails rename to spec/support/rails_app_5_1/bin/rails diff --git a/spec/support/rails_app_5_1_5/bin/rake b/spec/support/rails_app_5_1/bin/rake similarity index 100% rename from spec/support/rails_app_5_1_5/bin/rake rename to spec/support/rails_app_5_1/bin/rake diff --git a/spec/support/rails_app_5_1_5/bin/setup b/spec/support/rails_app_5_1/bin/setup similarity index 100% rename from spec/support/rails_app_5_1_5/bin/setup rename to spec/support/rails_app_5_1/bin/setup diff --git a/spec/support/rails_app_5_1_5/bin/spring b/spec/support/rails_app_5_1/bin/spring similarity index 100% rename from spec/support/rails_app_5_1_5/bin/spring rename to spec/support/rails_app_5_1/bin/spring diff --git a/spec/support/rails_app_5_1_5/bin/update b/spec/support/rails_app_5_1/bin/update similarity index 100% rename from spec/support/rails_app_5_1_5/bin/update rename to spec/support/rails_app_5_1/bin/update diff --git a/spec/support/rails_app_5_1_5/config.ru b/spec/support/rails_app_5_1/config.ru similarity index 100% rename from spec/support/rails_app_5_1_5/config.ru rename to spec/support/rails_app_5_1/config.ru diff --git a/spec/support/rails_app_5_1_5/config/application.rb b/spec/support/rails_app_5_1/config/application.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/application.rb rename to spec/support/rails_app_5_1/config/application.rb diff --git a/spec/support/rails_app_5_1_5/config/boot.rb b/spec/support/rails_app_5_1/config/boot.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/boot.rb rename to spec/support/rails_app_5_1/config/boot.rb diff --git a/spec/support/rails_app_5_1_5/config/cable.yml b/spec/support/rails_app_5_1/config/cable.yml similarity index 100% rename from spec/support/rails_app_5_1_5/config/cable.yml rename to spec/support/rails_app_5_1/config/cable.yml diff --git a/spec/support/rails_app_5_1_5/config/database.yml b/spec/support/rails_app_5_1/config/database.yml similarity index 100% rename from spec/support/rails_app_5_1_5/config/database.yml rename to spec/support/rails_app_5_1/config/database.yml diff --git a/spec/support/rails_app_5_1_5/config/environment.rb b/spec/support/rails_app_5_1/config/environment.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/environment.rb rename to spec/support/rails_app_5_1/config/environment.rb diff --git a/spec/support/rails_app_5_1_5/config/environments/development.rb b/spec/support/rails_app_5_1/config/environments/development.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/environments/development.rb rename to spec/support/rails_app_5_1/config/environments/development.rb diff --git a/spec/support/rails_app_5_1_5/config/environments/production.rb b/spec/support/rails_app_5_1/config/environments/production.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/environments/production.rb rename to spec/support/rails_app_5_1/config/environments/production.rb diff --git a/spec/support/rails_app_5_1_5/config/environments/test.rb b/spec/support/rails_app_5_1/config/environments/test.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/environments/test.rb rename to spec/support/rails_app_5_1/config/environments/test.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/application_controller_renderer.rb b/spec/support/rails_app_5_1/config/initializers/application_controller_renderer.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/application_controller_renderer.rb rename to spec/support/rails_app_5_1/config/initializers/application_controller_renderer.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/backtrace_silencers.rb b/spec/support/rails_app_5_1/config/initializers/backtrace_silencers.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/backtrace_silencers.rb rename to spec/support/rails_app_5_1/config/initializers/backtrace_silencers.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/cors.rb b/spec/support/rails_app_5_1/config/initializers/cors.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/cors.rb rename to spec/support/rails_app_5_1/config/initializers/cors.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/filter_parameter_logging.rb b/spec/support/rails_app_5_1/config/initializers/filter_parameter_logging.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/filter_parameter_logging.rb rename to spec/support/rails_app_5_1/config/initializers/filter_parameter_logging.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/inflections.rb b/spec/support/rails_app_5_1/config/initializers/inflections.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/inflections.rb rename to spec/support/rails_app_5_1/config/initializers/inflections.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/mime_types.rb b/spec/support/rails_app_5_1/config/initializers/mime_types.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/mime_types.rb rename to spec/support/rails_app_5_1/config/initializers/mime_types.rb diff --git a/spec/support/rails_app_5_1_5/config/initializers/wrap_parameters.rb b/spec/support/rails_app_5_1/config/initializers/wrap_parameters.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/initializers/wrap_parameters.rb rename to spec/support/rails_app_5_1/config/initializers/wrap_parameters.rb diff --git a/spec/support/rails_app_5_1_5/config/locales/en.yml b/spec/support/rails_app_5_1/config/locales/en.yml similarity index 100% rename from spec/support/rails_app_5_1_5/config/locales/en.yml rename to spec/support/rails_app_5_1/config/locales/en.yml diff --git a/spec/support/rails_app_5_1_5/config/puma.rb b/spec/support/rails_app_5_1/config/puma.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/puma.rb rename to spec/support/rails_app_5_1/config/puma.rb diff --git a/spec/support/rails_app_5_1_5/config/routes.rb b/spec/support/rails_app_5_1/config/routes.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/routes.rb rename to spec/support/rails_app_5_1/config/routes.rb diff --git a/spec/support/rails_app_5_1_5/config/secrets.yml b/spec/support/rails_app_5_1/config/secrets.yml similarity index 100% rename from spec/support/rails_app_5_1_5/config/secrets.yml rename to spec/support/rails_app_5_1/config/secrets.yml diff --git a/spec/support/rails_app_5_1_5/config/spring.rb b/spec/support/rails_app_5_1/config/spring.rb similarity index 100% rename from spec/support/rails_app_5_1_5/config/spring.rb rename to spec/support/rails_app_5_1/config/spring.rb diff --git a/spec/support/rails_app_5_1_5/lib/tasks/.keep b/spec/support/rails_app_5_1/lib/tasks/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/lib/tasks/.keep rename to spec/support/rails_app_5_1/lib/tasks/.keep diff --git a/spec/support/rails_app_5_1_5/log/.keep b/spec/support/rails_app_5_1/log/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/log/.keep rename to spec/support/rails_app_5_1/log/.keep diff --git a/spec/support/rails_app_5_1_5/public/robots.txt b/spec/support/rails_app_5_1/public/robots.txt similarity index 100% rename from spec/support/rails_app_5_1_5/public/robots.txt rename to spec/support/rails_app_5_1/public/robots.txt diff --git a/spec/support/rails_app_5_1_5/test/controllers/.keep b/spec/support/rails_app_5_1/test/controllers/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/controllers/.keep rename to spec/support/rails_app_5_1/test/controllers/.keep diff --git a/spec/support/rails_app_5_1_5/test/fixtures/.keep b/spec/support/rails_app_5_1/test/fixtures/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/fixtures/.keep rename to spec/support/rails_app_5_1/test/fixtures/.keep diff --git a/spec/support/rails_app_5_1_5/test/fixtures/files/.keep b/spec/support/rails_app_5_1/test/fixtures/files/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/fixtures/files/.keep rename to spec/support/rails_app_5_1/test/fixtures/files/.keep diff --git a/spec/support/rails_app_5_1_5/test/integration/.keep b/spec/support/rails_app_5_1/test/integration/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/integration/.keep rename to spec/support/rails_app_5_1/test/integration/.keep diff --git a/spec/support/rails_app_5_1_5/test/mailers/.keep b/spec/support/rails_app_5_1/test/mailers/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/mailers/.keep rename to spec/support/rails_app_5_1/test/mailers/.keep diff --git a/spec/support/rails_app_5_1_5/test/models/.keep b/spec/support/rails_app_5_1/test/models/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/test/models/.keep rename to spec/support/rails_app_5_1/test/models/.keep diff --git a/spec/support/rails_app_5_1_5/test/test_helper.rb b/spec/support/rails_app_5_1/test/test_helper.rb similarity index 100% rename from spec/support/rails_app_5_1_5/test/test_helper.rb rename to spec/support/rails_app_5_1/test/test_helper.rb diff --git a/spec/support/rails_app_5_1_5/tmp/.keep b/spec/support/rails_app_5_1/tmp/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/tmp/.keep rename to spec/support/rails_app_5_1/tmp/.keep diff --git a/spec/support/rails_app_5_1_5/vendor/.keep b/spec/support/rails_app_5_1/vendor/.keep similarity index 100% rename from spec/support/rails_app_5_1_5/vendor/.keep rename to spec/support/rails_app_5_1/vendor/.keep diff --git a/spec/support/rails_app_5_2_4_3/.gitignore b/spec/support/rails_app_5_2/.gitignore similarity index 100% rename from spec/support/rails_app_5_2_4_3/.gitignore rename to spec/support/rails_app_5_2/.gitignore diff --git a/spec/support/rails_app_5_2_4_3/.ruby-version b/spec/support/rails_app_5_2/.ruby-version similarity index 100% rename from spec/support/rails_app_5_2_4_3/.ruby-version rename to spec/support/rails_app_5_2/.ruby-version diff --git a/spec/support/rails_app_5_2_4_3/Gemfile b/spec/support/rails_app_5_2/Gemfile similarity index 100% rename from spec/support/rails_app_5_2_4_3/Gemfile rename to spec/support/rails_app_5_2/Gemfile diff --git a/spec/support/rails_app_5_2_4_3/Gemfile.lock b/spec/support/rails_app_5_2/Gemfile.lock similarity index 100% rename from spec/support/rails_app_5_2_4_3/Gemfile.lock rename to spec/support/rails_app_5_2/Gemfile.lock diff --git a/spec/support/rails_app_5_2_4_3/README.md b/spec/support/rails_app_5_2/README.md similarity index 100% rename from spec/support/rails_app_5_2_4_3/README.md rename to spec/support/rails_app_5_2/README.md diff --git a/spec/support/rails_app_5_2_4_3/Rakefile b/spec/support/rails_app_5_2/Rakefile similarity index 100% rename from spec/support/rails_app_5_2_4_3/Rakefile rename to spec/support/rails_app_5_2/Rakefile diff --git a/spec/support/rails_app_5_2_4_3/app/assets/config/manifest.js b/spec/support/rails_app_5_2/app/assets/config/manifest.js similarity index 100% rename from spec/support/rails_app_5_2_4_3/app/assets/config/manifest.js rename to spec/support/rails_app_5_2/app/assets/config/manifest.js diff --git a/spec/support/rails_app_5_2_4_3/app/models/application_record.rb b/spec/support/rails_app_5_2/app/models/application_record.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/app/models/application_record.rb rename to spec/support/rails_app_5_2/app/models/application_record.rb diff --git a/spec/support/rails_app_5_2_4_3/app/models/book.rb b/spec/support/rails_app_5_2/app/models/book.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/app/models/book.rb rename to spec/support/rails_app_5_2/app/models/book.rb diff --git a/spec/support/rails_app_5_2_4_3/app/models/concerns/.keep b/spec/support/rails_app_5_2/app/models/concerns/.keep similarity index 100% rename from spec/support/rails_app_5_2_4_3/app/models/concerns/.keep rename to spec/support/rails_app_5_2/app/models/concerns/.keep diff --git a/spec/support/rails_app_5_2_4_3/bin/bundle b/spec/support/rails_app_5_2/bin/bundle similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/bundle rename to spec/support/rails_app_5_2/bin/bundle diff --git a/spec/support/rails_app_5_2_4_3/bin/rails b/spec/support/rails_app_5_2/bin/rails similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/rails rename to spec/support/rails_app_5_2/bin/rails diff --git a/spec/support/rails_app_5_2_4_3/bin/rake b/spec/support/rails_app_5_2/bin/rake similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/rake rename to spec/support/rails_app_5_2/bin/rake diff --git a/spec/support/rails_app_5_2_4_3/bin/setup b/spec/support/rails_app_5_2/bin/setup similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/setup rename to spec/support/rails_app_5_2/bin/setup diff --git a/spec/support/rails_app_5_2_4_3/bin/spring b/spec/support/rails_app_5_2/bin/spring similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/spring rename to spec/support/rails_app_5_2/bin/spring diff --git a/spec/support/rails_app_5_2_4_3/bin/update b/spec/support/rails_app_5_2/bin/update similarity index 100% rename from spec/support/rails_app_5_2_4_3/bin/update rename to spec/support/rails_app_5_2/bin/update diff --git a/spec/support/rails_app_5_2_4_3/config.ru b/spec/support/rails_app_5_2/config.ru similarity index 100% rename from spec/support/rails_app_5_2_4_3/config.ru rename to spec/support/rails_app_5_2/config.ru diff --git a/spec/support/rails_app_5_2_4_3/config/application.rb b/spec/support/rails_app_5_2/config/application.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/application.rb rename to spec/support/rails_app_5_2/config/application.rb diff --git a/spec/support/rails_app_5_2_4_3/config/boot.rb b/spec/support/rails_app_5_2/config/boot.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/boot.rb rename to spec/support/rails_app_5_2/config/boot.rb diff --git a/spec/support/rails_app_5_2_4_3/config/cable.yml b/spec/support/rails_app_5_2/config/cable.yml similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/cable.yml rename to spec/support/rails_app_5_2/config/cable.yml diff --git a/spec/support/rails_app_5_2_4_3/config/credentials.yml.enc b/spec/support/rails_app_5_2/config/credentials.yml.enc similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/credentials.yml.enc rename to spec/support/rails_app_5_2/config/credentials.yml.enc diff --git a/spec/support/rails_app_5_2_4_3/config/database.yml b/spec/support/rails_app_5_2/config/database.yml similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/database.yml rename to spec/support/rails_app_5_2/config/database.yml diff --git a/spec/support/rails_app_5_2_4_3/config/environment.rb b/spec/support/rails_app_5_2/config/environment.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/environment.rb rename to spec/support/rails_app_5_2/config/environment.rb diff --git a/spec/support/rails_app_5_2_4_3/config/environments/development.rb b/spec/support/rails_app_5_2/config/environments/development.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/environments/development.rb rename to spec/support/rails_app_5_2/config/environments/development.rb diff --git a/spec/support/rails_app_5_2_4_3/config/environments/production.rb b/spec/support/rails_app_5_2/config/environments/production.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/environments/production.rb rename to spec/support/rails_app_5_2/config/environments/production.rb diff --git a/spec/support/rails_app_5_2_4_3/config/environments/test.rb b/spec/support/rails_app_5_2/config/environments/test.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/environments/test.rb rename to spec/support/rails_app_5_2/config/environments/test.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/application_controller_renderer.rb b/spec/support/rails_app_5_2/config/initializers/application_controller_renderer.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/application_controller_renderer.rb rename to spec/support/rails_app_5_2/config/initializers/application_controller_renderer.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/backtrace_silencers.rb b/spec/support/rails_app_5_2/config/initializers/backtrace_silencers.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/backtrace_silencers.rb rename to spec/support/rails_app_5_2/config/initializers/backtrace_silencers.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/cors.rb b/spec/support/rails_app_5_2/config/initializers/cors.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/cors.rb rename to spec/support/rails_app_5_2/config/initializers/cors.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/filter_parameter_logging.rb b/spec/support/rails_app_5_2/config/initializers/filter_parameter_logging.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/filter_parameter_logging.rb rename to spec/support/rails_app_5_2/config/initializers/filter_parameter_logging.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/inflections.rb b/spec/support/rails_app_5_2/config/initializers/inflections.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/inflections.rb rename to spec/support/rails_app_5_2/config/initializers/inflections.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/mime_types.rb b/spec/support/rails_app_5_2/config/initializers/mime_types.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/mime_types.rb rename to spec/support/rails_app_5_2/config/initializers/mime_types.rb diff --git a/spec/support/rails_app_5_2_4_3/config/initializers/wrap_parameters.rb b/spec/support/rails_app_5_2/config/initializers/wrap_parameters.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/initializers/wrap_parameters.rb rename to spec/support/rails_app_5_2/config/initializers/wrap_parameters.rb diff --git a/spec/support/rails_app_5_2_4_3/config/locales/en.yml b/spec/support/rails_app_5_2/config/locales/en.yml similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/locales/en.yml rename to spec/support/rails_app_5_2/config/locales/en.yml diff --git a/spec/support/rails_app_5_2_4_3/config/routes.rb b/spec/support/rails_app_5_2/config/routes.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/routes.rb rename to spec/support/rails_app_5_2/config/routes.rb diff --git a/spec/support/rails_app_5_2_4_3/config/spring.rb b/spec/support/rails_app_5_2/config/spring.rb similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/spring.rb rename to spec/support/rails_app_5_2/config/spring.rb diff --git a/spec/support/rails_app_5_2_4_3/config/storage.yml b/spec/support/rails_app_5_2/config/storage.yml similarity index 100% rename from spec/support/rails_app_5_2_4_3/config/storage.yml rename to spec/support/rails_app_5_2/config/storage.yml diff --git a/spec/support/rails_app_5_2_4_3/log/.keep b/spec/support/rails_app_5_2/log/.keep similarity index 100% rename from spec/support/rails_app_5_2_4_3/log/.keep rename to spec/support/rails_app_5_2/log/.keep diff --git a/spec/support/rails_app_5_2_4_3/public/robots.txt b/spec/support/rails_app_5_2/public/robots.txt similarity index 100% rename from spec/support/rails_app_5_2_4_3/public/robots.txt rename to spec/support/rails_app_5_2/public/robots.txt diff --git a/spec/support/rails_app_6_0_3_4/.gitignore b/spec/support/rails_app_6_0/.gitignore similarity index 100% rename from spec/support/rails_app_6_0_3_4/.gitignore rename to spec/support/rails_app_6_0/.gitignore diff --git a/spec/support/rails_app_6_0_3_4/.ruby-version b/spec/support/rails_app_6_0/.ruby-version similarity index 100% rename from spec/support/rails_app_6_0_3_4/.ruby-version rename to spec/support/rails_app_6_0/.ruby-version diff --git a/spec/support/rails_app_6_0_3_4/Gemfile b/spec/support/rails_app_6_0/Gemfile similarity index 100% rename from spec/support/rails_app_6_0_3_4/Gemfile rename to spec/support/rails_app_6_0/Gemfile diff --git a/spec/support/rails_app_6_0_3_4/Gemfile.lock b/spec/support/rails_app_6_0/Gemfile.lock similarity index 100% rename from spec/support/rails_app_6_0_3_4/Gemfile.lock rename to spec/support/rails_app_6_0/Gemfile.lock diff --git a/spec/support/rails_app_6_0_3_4/README.md b/spec/support/rails_app_6_0/README.md similarity index 100% rename from spec/support/rails_app_6_0_3_4/README.md rename to spec/support/rails_app_6_0/README.md diff --git a/spec/support/rails_app_6_0_3_4/Rakefile b/spec/support/rails_app_6_0/Rakefile similarity index 100% rename from spec/support/rails_app_6_0_3_4/Rakefile rename to spec/support/rails_app_6_0/Rakefile diff --git a/spec/support/rails_app_6_0_3_4/app/assets/config/manifest.js b/spec/support/rails_app_6_0/app/assets/config/manifest.js similarity index 100% rename from spec/support/rails_app_6_0_3_4/app/assets/config/manifest.js rename to spec/support/rails_app_6_0/app/assets/config/manifest.js diff --git a/spec/support/rails_app_6_0_3_4/app/models/application_record.rb b/spec/support/rails_app_6_0/app/models/application_record.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/app/models/application_record.rb rename to spec/support/rails_app_6_0/app/models/application_record.rb diff --git a/spec/support/rails_app_6_0_3_4/app/models/book.rb b/spec/support/rails_app_6_0/app/models/book.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/app/models/book.rb rename to spec/support/rails_app_6_0/app/models/book.rb diff --git a/spec/support/rails_app_6_0_3_4/app/models/concerns/.keep b/spec/support/rails_app_6_0/app/models/concerns/.keep similarity index 100% rename from spec/support/rails_app_6_0_3_4/app/models/concerns/.keep rename to spec/support/rails_app_6_0/app/models/concerns/.keep diff --git a/spec/support/rails_app_6_0_3_4/bin/bundle b/spec/support/rails_app_6_0/bin/bundle similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/bundle rename to spec/support/rails_app_6_0/bin/bundle diff --git a/spec/support/rails_app_6_0_3_4/bin/rails b/spec/support/rails_app_6_0/bin/rails similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/rails rename to spec/support/rails_app_6_0/bin/rails diff --git a/spec/support/rails_app_6_0_3_4/bin/rake b/spec/support/rails_app_6_0/bin/rake similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/rake rename to spec/support/rails_app_6_0/bin/rake diff --git a/spec/support/rails_app_6_0_3_4/bin/setup b/spec/support/rails_app_6_0/bin/setup similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/setup rename to spec/support/rails_app_6_0/bin/setup diff --git a/spec/support/rails_app_6_0_3_4/bin/spring b/spec/support/rails_app_6_0/bin/spring similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/spring rename to spec/support/rails_app_6_0/bin/spring diff --git a/spec/support/rails_app_6_0_3_4/bin/update b/spec/support/rails_app_6_0/bin/update similarity index 100% rename from spec/support/rails_app_6_0_3_4/bin/update rename to spec/support/rails_app_6_0/bin/update diff --git a/spec/support/rails_app_6_0_3_4/config.ru b/spec/support/rails_app_6_0/config.ru similarity index 100% rename from spec/support/rails_app_6_0_3_4/config.ru rename to spec/support/rails_app_6_0/config.ru diff --git a/spec/support/rails_app_6_0_3_4/config/application.rb b/spec/support/rails_app_6_0/config/application.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/application.rb rename to spec/support/rails_app_6_0/config/application.rb diff --git a/spec/support/rails_app_6_0_3_4/config/boot.rb b/spec/support/rails_app_6_0/config/boot.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/boot.rb rename to spec/support/rails_app_6_0/config/boot.rb diff --git a/spec/support/rails_app_6_0_3_4/config/cable.yml b/spec/support/rails_app_6_0/config/cable.yml similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/cable.yml rename to spec/support/rails_app_6_0/config/cable.yml diff --git a/spec/support/rails_app_6_0_3_4/config/credentials.yml.enc b/spec/support/rails_app_6_0/config/credentials.yml.enc similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/credentials.yml.enc rename to spec/support/rails_app_6_0/config/credentials.yml.enc diff --git a/spec/support/rails_app_6_0_3_4/config/database.yml b/spec/support/rails_app_6_0/config/database.yml similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/database.yml rename to spec/support/rails_app_6_0/config/database.yml diff --git a/spec/support/rails_app_6_0_3_4/config/environment.rb b/spec/support/rails_app_6_0/config/environment.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/environment.rb rename to spec/support/rails_app_6_0/config/environment.rb diff --git a/spec/support/rails_app_6_0_3_4/config/environments/development.rb b/spec/support/rails_app_6_0/config/environments/development.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/environments/development.rb rename to spec/support/rails_app_6_0/config/environments/development.rb diff --git a/spec/support/rails_app_6_0_3_4/config/environments/production.rb b/spec/support/rails_app_6_0/config/environments/production.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/environments/production.rb rename to spec/support/rails_app_6_0/config/environments/production.rb diff --git a/spec/support/rails_app_6_0_3_4/config/environments/test.rb b/spec/support/rails_app_6_0/config/environments/test.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/environments/test.rb rename to spec/support/rails_app_6_0/config/environments/test.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/application_controller_renderer.rb b/spec/support/rails_app_6_0/config/initializers/application_controller_renderer.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/application_controller_renderer.rb rename to spec/support/rails_app_6_0/config/initializers/application_controller_renderer.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/backtrace_silencers.rb b/spec/support/rails_app_6_0/config/initializers/backtrace_silencers.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/backtrace_silencers.rb rename to spec/support/rails_app_6_0/config/initializers/backtrace_silencers.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/cors.rb b/spec/support/rails_app_6_0/config/initializers/cors.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/cors.rb rename to spec/support/rails_app_6_0/config/initializers/cors.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/filter_parameter_logging.rb b/spec/support/rails_app_6_0/config/initializers/filter_parameter_logging.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/filter_parameter_logging.rb rename to spec/support/rails_app_6_0/config/initializers/filter_parameter_logging.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/inflections.rb b/spec/support/rails_app_6_0/config/initializers/inflections.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/inflections.rb rename to spec/support/rails_app_6_0/config/initializers/inflections.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/mime_types.rb b/spec/support/rails_app_6_0/config/initializers/mime_types.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/mime_types.rb rename to spec/support/rails_app_6_0/config/initializers/mime_types.rb diff --git a/spec/support/rails_app_6_0_3_4/config/initializers/wrap_parameters.rb b/spec/support/rails_app_6_0/config/initializers/wrap_parameters.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/initializers/wrap_parameters.rb rename to spec/support/rails_app_6_0/config/initializers/wrap_parameters.rb diff --git a/spec/support/rails_app_6_0_3_4/config/locales/en.yml b/spec/support/rails_app_6_0/config/locales/en.yml similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/locales/en.yml rename to spec/support/rails_app_6_0/config/locales/en.yml diff --git a/spec/support/rails_app_6_0_3_4/config/routes.rb b/spec/support/rails_app_6_0/config/routes.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/routes.rb rename to spec/support/rails_app_6_0/config/routes.rb diff --git a/spec/support/rails_app_6_0_3_4/config/spring.rb b/spec/support/rails_app_6_0/config/spring.rb similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/spring.rb rename to spec/support/rails_app_6_0/config/spring.rb diff --git a/spec/support/rails_app_6_0_3_4/config/storage.yml b/spec/support/rails_app_6_0/config/storage.yml similarity index 100% rename from spec/support/rails_app_6_0_3_4/config/storage.yml rename to spec/support/rails_app_6_0/config/storage.yml diff --git a/spec/support/rails_app_6_0_3_4/log/.keep b/spec/support/rails_app_6_0/log/.keep similarity index 100% rename from spec/support/rails_app_6_0_3_4/log/.keep rename to spec/support/rails_app_6_0/log/.keep diff --git a/spec/support/rails_app_6_0_3_4/public/robots.txt b/spec/support/rails_app_6_0/public/robots.txt similarity index 100% rename from spec/support/rails_app_6_0_3_4/public/robots.txt rename to spec/support/rails_app_6_0/public/robots.txt diff --git a/spec/support/rails_app_6_1/.gitignore b/spec/support/rails_app_6_1/.gitignore new file mode 100644 index 0000000..791326f --- /dev/null +++ b/spec/support/rails_app_6_1/.gitignore @@ -0,0 +1,27 @@ +# See https://help.github.com/articles/ignoring-files for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile '~/.gitignore_global' + +# Ignore bundler config. +/.bundle + +# Ignore the default SQLite database. +/db/*.sqlite3 +/db/*.sqlite3-journal + +# Ignore all logfiles and tempfiles. +/log/* +/tmp/* +!/log/.keep +!/tmp/.keep + +# Ignore uploaded files in development +/storage/* +!/storage/.keep + +.byebug_history + +# Ignore master key for decrypting credentials and more. +/config/master.key diff --git a/spec/support/rails_app_6_1/.ruby-version b/spec/support/rails_app_6_1/.ruby-version new file mode 100644 index 0000000..49cdd66 --- /dev/null +++ b/spec/support/rails_app_6_1/.ruby-version @@ -0,0 +1 @@ +2.7.6 diff --git a/spec/support/rails_app_6_1/Gemfile b/spec/support/rails_app_6_1/Gemfile new file mode 100644 index 0000000..b5d63d6 --- /dev/null +++ b/spec/support/rails_app_6_1/Gemfile @@ -0,0 +1,25 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '2.7.6' + +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 6.1.0' +# Use sqlite3 as the database for Active Record +gem 'sqlite3' + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] +end + +group :development do + # gem 'listen', '>= 3.0.5', '< 3.2' + # # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + # gem 'spring' + # gem 'spring-watcher-listen', '~> 2.0.0' +end + + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/gemfiles/rails_5_2_4_3.gemfile.lock b/spec/support/rails_app_6_1/Gemfile.lock similarity index 57% rename from gemfiles/rails_5_2_4_3.gemfile.lock rename to spec/support/rails_app_6_1/Gemfile.lock index f156ce3..a6cd0ef 100644 --- a/gemfiles/rails_5_2_4_3.gemfile.lock +++ b/spec/support/rails_app_6_1/Gemfile.lock @@ -1,10 +1,3 @@ -PATH - remote: .. - specs: - lazy_migrate (0.3.0) - sorbet-runtime - tty-prompt (~> 0.22.0) - GEM remote: https://rubygems.org/ specs: @@ -49,23 +42,24 @@ GEM i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - appraisal (2.4.0) - bundler - rake - thor (>= 0.14.0) arel (9.0.0) + bootsnap (1.4.7) + msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) - coderay (1.1.3) - concurrent-ruby (1.1.8) + concurrent-ruby (1.1.6) crass (1.0.6) - diff-lcs (1.4.4) - erubi (1.10.0) + erubi (1.9.0) + ffi (1.13.1) globalid (0.4.2) activesupport (>= 4.2.0) - i18n (1.8.9) + i18n (1.8.5) concurrent-ruby (~> 1.0) - loofah (2.9.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + loofah (2.6.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -75,21 +69,13 @@ GEM method_source (1.0.0) mimemagic (0.3.5) mini_mime (1.0.2) - mini_portile2 (2.5.0) - minitest (5.14.4) - nio4r (2.5.5) - nokogiri (1.11.1) - mini_portile2 (~> 2.5.0) - racc (~> 1.4) - pastel (0.8.0) - tty-color (~> 0.5) - pry (0.13.1) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.9.0) - byebug (~> 11.0) - pry (~> 0.13.0) - racc (1.5.2) + mini_portile2 (2.4.0) + minitest (5.14.1) + msgpack (1.3.3) + nio4r (2.5.2) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + puma (3.12.6) rack (2.2.3) rack-test (1.1.0) rack (>= 1.0, < 3) @@ -117,71 +103,47 @@ GEM method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) - rake (13.0.3) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.2) - sorbet (0.5.6303) - sorbet-static (= 0.5.6303) - sorbet-runtime (0.5.6303) - sorbet-static (0.5.6303-universal-darwin-14) - sorbet-static (0.5.6303-universal-darwin-15) - sorbet-static (0.5.6303-universal-darwin-16) - sorbet-static (0.5.6303-universal-darwin-17) - sorbet-static (0.5.6303-universal-darwin-18) - sorbet-static (0.5.6303-universal-darwin-19) - sorbet-static (0.5.6303-universal-darwin-20) - sorbet-static (0.5.6303-x86_64-linux) + rake (13.0.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + ruby_dep (1.5.0) + spring (2.1.0) + spring-watcher-listen (2.0.1) + listen (>= 2.7, < 4.0) + spring (>= 1.2, < 3.0) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) + sprockets-rails (3.2.1) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.4.2) - thor (1.1.0) + thor (1.0.1) thread_safe (0.3.6) - tty-color (0.6.0) - tty-cursor (0.7.1) - tty-prompt (0.22.0) - pastel (~> 0.8) - tty-reader (~> 0.8) - tty-reader (0.9.0) - tty-cursor (~> 0.7) - tty-screen (~> 0.8) - wisper (~> 2.0) - tty-screen (0.8.1) - tzinfo (1.2.9) + tzinfo (1.2.7) thread_safe (~> 0.1) websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - wisper (2.0.1) PLATFORMS ruby DEPENDENCIES - appraisal - bundler (~> 2.0) - lazy_migrate! - pry-byebug (~> 3.9.0) - rails (= 5.2.4.3) - rake (~> 13.0) - rspec (~> 3.0) - sorbet - sqlite3 (~> 1.4.2) + bootsnap (>= 1.1.0) + byebug + listen (>= 3.0.5, < 3.2) + puma (~> 3.11) + rails (~> 5.2.4, >= 5.2.4.3) + spring + spring-watcher-listen (~> 2.0.0) + sqlite3 + tzinfo-data + +RUBY VERSION + ruby 2.6.3p62 BUNDLED WITH - 2.2.3 + 2.0.2 diff --git a/spec/support/rails_app_6_1/README.md b/spec/support/rails_app_6_1/README.md new file mode 100644 index 0000000..7db80e4 --- /dev/null +++ b/spec/support/rails_app_6_1/README.md @@ -0,0 +1,24 @@ +# README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... diff --git a/spec/support/rails_app_6_1/Rakefile b/spec/support/rails_app_6_1/Rakefile new file mode 100644 index 0000000..e85f913 --- /dev/null +++ b/spec/support/rails_app_6_1/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require_relative 'config/application' + +Rails.application.load_tasks diff --git a/spec/support/rails_app_6_1/app/assets/config/manifest.js b/spec/support/rails_app_6_1/app/assets/config/manifest.js new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/spec/support/rails_app_6_1/app/assets/config/manifest.js @@ -0,0 +1 @@ +{} diff --git a/spec/support/rails_app_6_1/app/models/application_record.rb b/spec/support/rails_app_6_1/app/models/application_record.rb new file mode 100644 index 0000000..159db87 --- /dev/null +++ b/spec/support/rails_app_6_1/app/models/application_record.rb @@ -0,0 +1,4 @@ +# typed: strict +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/spec/support/rails_app_6_1/app/models/book.rb b/spec/support/rails_app_6_1/app/models/book.rb new file mode 100644 index 0000000..0adfeba --- /dev/null +++ b/spec/support/rails_app_6_1/app/models/book.rb @@ -0,0 +1,3 @@ +# typed: strict +class Book < ApplicationRecord +end diff --git a/spec/support/rails_app_6_1/app/models/concerns/.keep b/spec/support/rails_app_6_1/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/spec/support/rails_app_6_1/bin/bundle b/spec/support/rails_app_6_1/bin/bundle new file mode 100755 index 0000000..f19acf5 --- /dev/null +++ b/spec/support/rails_app_6_1/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +load Gem.bin_path('bundler', 'bundle') diff --git a/spec/support/rails_app_6_1/bin/rails b/spec/support/rails_app_6_1/bin/rails new file mode 100755 index 0000000..5badb2f --- /dev/null +++ b/spec/support/rails_app_6_1/bin/rails @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/spec/support/rails_app_6_1/bin/rake b/spec/support/rails_app_6_1/bin/rake new file mode 100755 index 0000000..d87d5f5 --- /dev/null +++ b/spec/support/rails_app_6_1/bin/rake @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/spec/support/rails_app_6_1/bin/setup b/spec/support/rails_app_6_1/bin/setup new file mode 100755 index 0000000..a334d86 --- /dev/null +++ b/spec/support/rails_app_6_1/bin/setup @@ -0,0 +1,33 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # cp 'config/database.yml.sample', 'config/database.yml' + # end + + puts "\n== Preparing database ==" + system! 'bin/rails db:setup' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/spec/support/rails_app_6_1/bin/spring b/spec/support/rails_app_6_1/bin/spring new file mode 100755 index 0000000..d89ee49 --- /dev/null +++ b/spec/support/rails_app_6_1/bin/spring @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby + +# This file loads Spring without using Bundler, in order to be fast. +# It gets overwritten when you run the `spring binstub` command. + +unless defined?(Spring) + require 'rubygems' + require 'bundler' + + lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) + spring = lockfile.specs.detect { |spec| spec.name == 'spring' } + if spring + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path + gem 'spring', spring.version + require 'spring/binstub' + end +end diff --git a/spec/support/rails_app_6_1/bin/update b/spec/support/rails_app_6_1/bin/update new file mode 100755 index 0000000..67d0d49 --- /dev/null +++ b/spec/support/rails_app_6_1/bin/update @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a way to update your development environment automatically. + # Add necessary update steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + puts "\n== Updating database ==" + system! 'bin/rails db:migrate' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/spec/support/rails_app_6_1/config.ru b/spec/support/rails_app_6_1/config.ru new file mode 100644 index 0000000..f7ba0b5 --- /dev/null +++ b/spec/support/rails_app_6_1/config.ru @@ -0,0 +1,5 @@ +# This file is used by Rack-based servers to start the application. + +require_relative 'config/environment' + +run Rails.application diff --git a/spec/support/rails_app_6_1/config/application.rb b/spec/support/rails_app_6_1/config/application.rb new file mode 100644 index 0000000..377af59 --- /dev/null +++ b/spec/support/rails_app_6_1/config/application.rb @@ -0,0 +1,36 @@ +# typed: strict +require_relative 'boot' + +require "rails" +# Pick the frameworks you want: +require "active_model/railtie" +require "active_job/railtie" +require "active_record/railtie" +require "active_storage/engine" +# require "action_controller/railtie" +# require "action_mailer/railtie" +# require "action_view/railtie" +# require "action_cable/engine" +# require "sprockets/railtie" +# require "rails/test_unit/railtie" + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) + +module Dummy + class Application < Rails::Application + # Initialize configuration defaults for originally generated Rails version. + config.load_defaults 6.1 + + # Settings in config/environments/* take precedence over those specified here. + # Application configuration can go into files in config/initializers + # -- all .rb files in that directory are automatically loaded after loading + # the framework and any gems in your application. + + # Only loads a smaller set of middleware suitable for API only apps. + # Middleware like session, flash, cookies can be added back manually. + # Skip views, helpers and assets when generating a new resource. + config.api_only = true + end +end diff --git a/spec/support/rails_app_6_1/config/boot.rb b/spec/support/rails_app_6_1/config/boot.rb new file mode 100644 index 0000000..90ecb64 --- /dev/null +++ b/spec/support/rails_app_6_1/config/boot.rb @@ -0,0 +1,5 @@ +# typed: strict +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) + +require 'bundler/setup' # Set up gems listed in the Gemfile. +# require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/spec/support/rails_app_6_1/config/cable.yml b/spec/support/rails_app_6_1/config/cable.yml new file mode 100644 index 0000000..1cd0f83 --- /dev/null +++ b/spec/support/rails_app_6_1/config/cable.yml @@ -0,0 +1,10 @@ +development: + adapter: async + +test: + adapter: async + +production: + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + channel_prefix: dummy_production diff --git a/spec/support/rails_app_6_1/config/credentials.yml.enc b/spec/support/rails_app_6_1/config/credentials.yml.enc new file mode 100644 index 0000000..f9a2912 --- /dev/null +++ b/spec/support/rails_app_6_1/config/credentials.yml.enc @@ -0,0 +1 @@ +XM2w9gtrfNyQZdFcDPQeRYMoPHzgjWv0aO5WIoD7HxWrKCNN6Uyk6h/QM8iLwACJu1gUd7pXjdF97LcLz9Q7Y4kmU+rbLfUd11K8klYifSVEjVwQTT5VydVN8eb15kzYPhGhCq5Ut32mf3NLVJAFH6+NUV/SBjpti3sEVrVC0bawZHdr66aADGpAPyy93ZLARzycJ0lH4Ft2x265Fd3/8Y1a49R9503NRTwS5Y5RNzo7HqZN//ZQcX45MKnTU/85/XP0sPrPuFlhuhI8ChTmqldqvvhhUJJ5WaB3XlQiOrwjal+CngNH2yTLaI9irMsApYY6OKDX9FEGJunsmwZ64xiwjWrLAdWsZFwhKYt5AyrTRjhTaFxCovoCwy4KXwi59bJ0whqltwsjcGOWMv1Fs2n5XHBu2S2dHpYc--fspjdpyaC3ikWmh3--zwzbjSn0GpqA5oO8sEWJXA== \ No newline at end of file diff --git a/spec/support/rails_app_6_1/config/database.yml b/spec/support/rails_app_6_1/config/database.yml new file mode 100644 index 0000000..0d02f24 --- /dev/null +++ b/spec/support/rails_app_6_1/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/spec/support/rails_app_6_1/config/environment.rb b/spec/support/rails_app_6_1/config/environment.rb new file mode 100644 index 0000000..a4d4835 --- /dev/null +++ b/spec/support/rails_app_6_1/config/environment.rb @@ -0,0 +1,6 @@ +# typed: strict +# Load the Rails application. +require_relative 'application' + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/spec/support/rails_app_6_1/config/environments/development.rb b/spec/support/rails_app_6_1/config/environments/development.rb new file mode 100644 index 0000000..16740e4 --- /dev/null +++ b/spec/support/rails_app_6_1/config/environments/development.rb @@ -0,0 +1,55 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports. + config.consider_all_requests_local = true + + # Enable/disable caching. By default caching is disabled. + # Run rails dev:cache to toggle caching. + if Rails.root.join('tmp', 'caching-dev.txt').exist? + config.action_controller.perform_caching = true + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{2.days.to_i}" + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # # Don't care if the mailer can't send. + # config.action_mailer.raise_delivery_errors = false + + # config.action_mailer.perform_caching = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true + + # # Use an evented file watcher to asynchronously detect changes in source code, + # # routes, locales, etc. This feature depends on the listen gem. + # config.file_watcher = ActiveSupport::EventedFileUpdateChecker +end diff --git a/spec/support/rails_app_6_1/config/environments/production.rb b/spec/support/rails_app_6_1/config/environments/production.rb new file mode 100644 index 0000000..5021337 --- /dev/null +++ b/spec/support/rails_app_6_1/config/environments/production.rb @@ -0,0 +1,86 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # Mount Action Cable outside main process or domain + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug + + # Prepend all log lines with the following tags. + config.log_tags = [ :request_id ] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "dummy_#{Rails.env}" + + # config.action_mailer.perform_caching = false + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Use a different logger for distributed setups. + # require 'syslog/logger' + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/spec/support/rails_app_6_1/config/environments/test.rb b/spec/support/rails_app_6_1/config/environments/test.rb new file mode 100644 index 0000000..9fdab26 --- /dev/null +++ b/spec/support/rails_app_6_1/config/environments/test.rb @@ -0,0 +1,47 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + } + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Store uploaded files on the local file system in a temporary directory + config.active_storage.service = :test + + # config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/spec/support/rails_app_6_1/config/initializers/application_controller_renderer.rb b/spec/support/rails_app_6_1/config/initializers/application_controller_renderer.rb new file mode 100644 index 0000000..20e7366 --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/application_controller_renderer.rb @@ -0,0 +1,9 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# ActiveSupport::Reloader.to_prepare do +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) +# end diff --git a/spec/support/rails_app_6_1/config/initializers/backtrace_silencers.rb b/spec/support/rails_app_6_1/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..3bde375 --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/backtrace_silencers.rb @@ -0,0 +1,8 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/spec/support/rails_app_6_1/config/initializers/cors.rb b/spec/support/rails_app_6_1/config/initializers/cors.rb new file mode 100644 index 0000000..fb21526 --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/cors.rb @@ -0,0 +1,17 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Avoid CORS issues when API is called from the frontend app. +# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests. + +# Read more: https://github.com/cyu/rack-cors + +# Rails.application.config.middleware.insert_before 0, Rack::Cors do +# allow do +# origins 'example.com' +# +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end +# end diff --git a/spec/support/rails_app_6_1/config/initializers/filter_parameter_logging.rb b/spec/support/rails_app_6_1/config/initializers/filter_parameter_logging.rb new file mode 100644 index 0000000..aedda83 --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,5 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/spec/support/rails_app_6_1/config/initializers/inflections.rb b/spec/support/rails_app_6_1/config/initializers/inflections.rb new file mode 100644 index 0000000..66592ee --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/inflections.rb @@ -0,0 +1,17 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/spec/support/rails_app_6_1/config/initializers/mime_types.rb b/spec/support/rails_app_6_1/config/initializers/mime_types.rb new file mode 100644 index 0000000..fa8c326 --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/spec/support/rails_app_6_1/config/initializers/wrap_parameters.rb b/spec/support/rails_app_6_1/config/initializers/wrap_parameters.rb new file mode 100644 index 0000000..e47cfdd --- /dev/null +++ b/spec/support/rails_app_6_1/config/initializers/wrap_parameters.rb @@ -0,0 +1,15 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/spec/support/rails_app_6_1/config/locales/en.yml b/spec/support/rails_app_6_1/config/locales/en.yml new file mode 100644 index 0000000..decc5a8 --- /dev/null +++ b/spec/support/rails_app_6_1/config/locales/en.yml @@ -0,0 +1,33 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# The following keys must be escaped otherwise they will not be retrieved by +# the default I18n backend: +# +# true, false, on, off, yes, no +# +# Instead, surround them with single quotes. +# +# en: +# 'true': 'foo' +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/spec/support/rails_app_6_1/config/routes.rb b/spec/support/rails_app_6_1/config/routes.rb new file mode 100644 index 0000000..841b2ec --- /dev/null +++ b/spec/support/rails_app_6_1/config/routes.rb @@ -0,0 +1,4 @@ +# typed: strict +Rails.application.routes.draw do + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html +end diff --git a/spec/support/rails_app_6_1/config/spring.rb b/spec/support/rails_app_6_1/config/spring.rb new file mode 100644 index 0000000..96b4745 --- /dev/null +++ b/spec/support/rails_app_6_1/config/spring.rb @@ -0,0 +1,7 @@ +# typed: false +%w[ + .ruby-version + .rbenv-vars + tmp/restart.txt + tmp/caching-dev.txt +].each { |path| Spring.watch(path) } diff --git a/spec/support/rails_app_6_1/config/storage.yml b/spec/support/rails_app_6_1/config/storage.yml new file mode 100644 index 0000000..d32f76e --- /dev/null +++ b/spec/support/rails_app_6_1/config/storage.yml @@ -0,0 +1,34 @@ +test: + service: Disk + root: <%= Rails.root.join("tmp/storage") %> + +local: + service: Disk + root: <%= Rails.root.join("storage") %> + +# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) +# amazon: +# service: S3 +# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> +# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> +# region: us-east-1 +# bucket: your_own_bucket + +# Remember not to checkin your GCS keyfile to a repository +# google: +# service: GCS +# project: your_project +# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> +# bucket: your_own_bucket + +# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) +# microsoft: +# service: AzureStorage +# storage_account_name: your_account_name +# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> +# container: your_container_name + +# mirror: +# service: Mirror +# primary: local +# mirrors: [ amazon, google, microsoft ] diff --git a/spec/support/rails_app_6_1/log/.keep b/spec/support/rails_app_6_1/log/.keep new file mode 100644 index 0000000..e69de29 diff --git a/spec/support/rails_app_6_1/public/robots.txt b/spec/support/rails_app_6_1/public/robots.txt new file mode 100644 index 0000000..37b576a --- /dev/null +++ b/spec/support/rails_app_6_1/public/robots.txt @@ -0,0 +1 @@ +# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file diff --git a/spec/support/rails_app_7_0/.gitignore b/spec/support/rails_app_7_0/.gitignore new file mode 100644 index 0000000..791326f --- /dev/null +++ b/spec/support/rails_app_7_0/.gitignore @@ -0,0 +1,27 @@ +# See https://help.github.com/articles/ignoring-files for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile '~/.gitignore_global' + +# Ignore bundler config. +/.bundle + +# Ignore the default SQLite database. +/db/*.sqlite3 +/db/*.sqlite3-journal + +# Ignore all logfiles and tempfiles. +/log/* +/tmp/* +!/log/.keep +!/tmp/.keep + +# Ignore uploaded files in development +/storage/* +!/storage/.keep + +.byebug_history + +# Ignore master key for decrypting credentials and more. +/config/master.key diff --git a/spec/support/rails_app_7_0/.ruby-version b/spec/support/rails_app_7_0/.ruby-version new file mode 100644 index 0000000..49cdd66 --- /dev/null +++ b/spec/support/rails_app_7_0/.ruby-version @@ -0,0 +1 @@ +2.7.6 diff --git a/spec/support/rails_app_7_0/Gemfile b/spec/support/rails_app_7_0/Gemfile new file mode 100644 index 0000000..d8efac3 --- /dev/null +++ b/spec/support/rails_app_7_0/Gemfile @@ -0,0 +1,25 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '2.7.6' + +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 7.0.0' +# Use sqlite3 as the database for Active Record +gem 'sqlite3' + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] +end + +group :development do + # gem 'listen', '>= 3.0.5', '< 3.2' + # # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + # gem 'spring' + # gem 'spring-watcher-listen', '~> 2.0.0' +end + + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/spec/support/rails_app_7_0/Gemfile.lock b/spec/support/rails_app_7_0/Gemfile.lock new file mode 100644 index 0000000..a6cd0ef --- /dev/null +++ b/spec/support/rails_app_7_0/Gemfile.lock @@ -0,0 +1,149 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.4.3) + actionpack (= 5.2.4.3) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.4.3) + actionpack (= 5.2.4.3) + actionview (= 5.2.4.3) + activejob (= 5.2.4.3) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.4.3) + actionview (= 5.2.4.3) + activesupport (= 5.2.4.3) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.4.3) + activesupport (= 5.2.4.3) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.4.3) + activesupport (= 5.2.4.3) + globalid (>= 0.3.6) + activemodel (5.2.4.3) + activesupport (= 5.2.4.3) + activerecord (5.2.4.3) + activemodel (= 5.2.4.3) + activesupport (= 5.2.4.3) + arel (>= 9.0) + activestorage (5.2.4.3) + actionpack (= 5.2.4.3) + activerecord (= 5.2.4.3) + marcel (~> 0.3.1) + activesupport (5.2.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + arel (9.0.0) + bootsnap (1.4.7) + msgpack (~> 1.0) + builder (3.2.4) + byebug (11.1.3) + concurrent-ruby (1.1.6) + crass (1.0.6) + erubi (1.9.0) + ffi (1.13.1) + globalid (0.4.2) + activesupport (>= 4.2.0) + i18n (1.8.5) + concurrent-ruby (~> 1.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + loofah (2.6.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) + method_source (1.0.0) + mimemagic (0.3.5) + mini_mime (1.0.2) + mini_portile2 (2.4.0) + minitest (5.14.1) + msgpack (1.3.3) + nio4r (2.5.2) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + puma (3.12.6) + rack (2.2.3) + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (5.2.4.3) + actioncable (= 5.2.4.3) + actionmailer (= 5.2.4.3) + actionpack (= 5.2.4.3) + actionview (= 5.2.4.3) + activejob (= 5.2.4.3) + activemodel (= 5.2.4.3) + activerecord (= 5.2.4.3) + activestorage (= 5.2.4.3) + activesupport (= 5.2.4.3) + bundler (>= 1.3.0) + railties (= 5.2.4.3) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.3.0) + loofah (~> 2.3) + railties (5.2.4.3) + actionpack (= 5.2.4.3) + activesupport (= 5.2.4.3) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.0.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + ruby_dep (1.5.0) + spring (2.1.0) + spring-watcher-listen (2.0.1) + listen (>= 2.7, < 4.0) + spring (>= 1.2, < 3.0) + sprockets (4.0.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.4.2) + thor (1.0.1) + thread_safe (0.3.6) + tzinfo (1.2.7) + thread_safe (~> 0.1) + websocket-driver (0.7.3) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + +PLATFORMS + ruby + +DEPENDENCIES + bootsnap (>= 1.1.0) + byebug + listen (>= 3.0.5, < 3.2) + puma (~> 3.11) + rails (~> 5.2.4, >= 5.2.4.3) + spring + spring-watcher-listen (~> 2.0.0) + sqlite3 + tzinfo-data + +RUBY VERSION + ruby 2.6.3p62 + +BUNDLED WITH + 2.0.2 diff --git a/spec/support/rails_app_7_0/README.md b/spec/support/rails_app_7_0/README.md new file mode 100644 index 0000000..7db80e4 --- /dev/null +++ b/spec/support/rails_app_7_0/README.md @@ -0,0 +1,24 @@ +# README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... diff --git a/spec/support/rails_app_7_0/Rakefile b/spec/support/rails_app_7_0/Rakefile new file mode 100644 index 0000000..e85f913 --- /dev/null +++ b/spec/support/rails_app_7_0/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require_relative 'config/application' + +Rails.application.load_tasks diff --git a/spec/support/rails_app_7_0/app/assets/config/manifest.js b/spec/support/rails_app_7_0/app/assets/config/manifest.js new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/spec/support/rails_app_7_0/app/assets/config/manifest.js @@ -0,0 +1 @@ +{} diff --git a/spec/support/rails_app_7_0/app/models/application_record.rb b/spec/support/rails_app_7_0/app/models/application_record.rb new file mode 100644 index 0000000..159db87 --- /dev/null +++ b/spec/support/rails_app_7_0/app/models/application_record.rb @@ -0,0 +1,4 @@ +# typed: strict +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/spec/support/rails_app_7_0/app/models/book.rb b/spec/support/rails_app_7_0/app/models/book.rb new file mode 100644 index 0000000..0adfeba --- /dev/null +++ b/spec/support/rails_app_7_0/app/models/book.rb @@ -0,0 +1,3 @@ +# typed: strict +class Book < ApplicationRecord +end diff --git a/spec/support/rails_app_7_0/app/models/concerns/.keep b/spec/support/rails_app_7_0/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/spec/support/rails_app_7_0/bin/bundle b/spec/support/rails_app_7_0/bin/bundle new file mode 100755 index 0000000..f19acf5 --- /dev/null +++ b/spec/support/rails_app_7_0/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +load Gem.bin_path('bundler', 'bundle') diff --git a/spec/support/rails_app_7_0/bin/rails b/spec/support/rails_app_7_0/bin/rails new file mode 100755 index 0000000..5badb2f --- /dev/null +++ b/spec/support/rails_app_7_0/bin/rails @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/spec/support/rails_app_7_0/bin/rake b/spec/support/rails_app_7_0/bin/rake new file mode 100755 index 0000000..d87d5f5 --- /dev/null +++ b/spec/support/rails_app_7_0/bin/rake @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/spec/support/rails_app_7_0/bin/setup b/spec/support/rails_app_7_0/bin/setup new file mode 100755 index 0000000..a334d86 --- /dev/null +++ b/spec/support/rails_app_7_0/bin/setup @@ -0,0 +1,33 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # cp 'config/database.yml.sample', 'config/database.yml' + # end + + puts "\n== Preparing database ==" + system! 'bin/rails db:setup' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/spec/support/rails_app_7_0/bin/spring b/spec/support/rails_app_7_0/bin/spring new file mode 100755 index 0000000..d89ee49 --- /dev/null +++ b/spec/support/rails_app_7_0/bin/spring @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby + +# This file loads Spring without using Bundler, in order to be fast. +# It gets overwritten when you run the `spring binstub` command. + +unless defined?(Spring) + require 'rubygems' + require 'bundler' + + lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) + spring = lockfile.specs.detect { |spec| spec.name == 'spring' } + if spring + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path + gem 'spring', spring.version + require 'spring/binstub' + end +end diff --git a/spec/support/rails_app_7_0/bin/update b/spec/support/rails_app_7_0/bin/update new file mode 100755 index 0000000..67d0d49 --- /dev/null +++ b/spec/support/rails_app_7_0/bin/update @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a way to update your development environment automatically. + # Add necessary update steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + puts "\n== Updating database ==" + system! 'bin/rails db:migrate' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/spec/support/rails_app_7_0/config.ru b/spec/support/rails_app_7_0/config.ru new file mode 100644 index 0000000..f7ba0b5 --- /dev/null +++ b/spec/support/rails_app_7_0/config.ru @@ -0,0 +1,5 @@ +# This file is used by Rack-based servers to start the application. + +require_relative 'config/environment' + +run Rails.application diff --git a/spec/support/rails_app_7_0/config/application.rb b/spec/support/rails_app_7_0/config/application.rb new file mode 100644 index 0000000..07818be --- /dev/null +++ b/spec/support/rails_app_7_0/config/application.rb @@ -0,0 +1,36 @@ +# typed: strict +require_relative 'boot' + +require "rails" +# Pick the frameworks you want: +require "active_model/railtie" +require "active_job/railtie" +require "active_record/railtie" +require "active_storage/engine" +# require "action_controller/railtie" +# require "action_mailer/railtie" +# require "action_view/railtie" +# require "action_cable/engine" +# require "sprockets/railtie" +# require "rails/test_unit/railtie" + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) + +module Dummy + class Application < Rails::Application + # Initialize configuration defaults for originally generated Rails version. + config.load_defaults 7.0 + + # Settings in config/environments/* take precedence over those specified here. + # Application configuration can go into files in config/initializers + # -- all .rb files in that directory are automatically loaded after loading + # the framework and any gems in your application. + + # Only loads a smaller set of middleware suitable for API only apps. + # Middleware like session, flash, cookies can be added back manually. + # Skip views, helpers and assets when generating a new resource. + config.api_only = true + end +end diff --git a/spec/support/rails_app_7_0/config/boot.rb b/spec/support/rails_app_7_0/config/boot.rb new file mode 100644 index 0000000..90ecb64 --- /dev/null +++ b/spec/support/rails_app_7_0/config/boot.rb @@ -0,0 +1,5 @@ +# typed: strict +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) + +require 'bundler/setup' # Set up gems listed in the Gemfile. +# require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/spec/support/rails_app_7_0/config/cable.yml b/spec/support/rails_app_7_0/config/cable.yml new file mode 100644 index 0000000..1cd0f83 --- /dev/null +++ b/spec/support/rails_app_7_0/config/cable.yml @@ -0,0 +1,10 @@ +development: + adapter: async + +test: + adapter: async + +production: + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + channel_prefix: dummy_production diff --git a/spec/support/rails_app_7_0/config/credentials.yml.enc b/spec/support/rails_app_7_0/config/credentials.yml.enc new file mode 100644 index 0000000..f9a2912 --- /dev/null +++ b/spec/support/rails_app_7_0/config/credentials.yml.enc @@ -0,0 +1 @@ +XM2w9gtrfNyQZdFcDPQeRYMoPHzgjWv0aO5WIoD7HxWrKCNN6Uyk6h/QM8iLwACJu1gUd7pXjdF97LcLz9Q7Y4kmU+rbLfUd11K8klYifSVEjVwQTT5VydVN8eb15kzYPhGhCq5Ut32mf3NLVJAFH6+NUV/SBjpti3sEVrVC0bawZHdr66aADGpAPyy93ZLARzycJ0lH4Ft2x265Fd3/8Y1a49R9503NRTwS5Y5RNzo7HqZN//ZQcX45MKnTU/85/XP0sPrPuFlhuhI8ChTmqldqvvhhUJJ5WaB3XlQiOrwjal+CngNH2yTLaI9irMsApYY6OKDX9FEGJunsmwZ64xiwjWrLAdWsZFwhKYt5AyrTRjhTaFxCovoCwy4KXwi59bJ0whqltwsjcGOWMv1Fs2n5XHBu2S2dHpYc--fspjdpyaC3ikWmh3--zwzbjSn0GpqA5oO8sEWJXA== \ No newline at end of file diff --git a/spec/support/rails_app_7_0/config/database.yml b/spec/support/rails_app_7_0/config/database.yml new file mode 100644 index 0000000..0d02f24 --- /dev/null +++ b/spec/support/rails_app_7_0/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/spec/support/rails_app_7_0/config/environment.rb b/spec/support/rails_app_7_0/config/environment.rb new file mode 100644 index 0000000..a4d4835 --- /dev/null +++ b/spec/support/rails_app_7_0/config/environment.rb @@ -0,0 +1,6 @@ +# typed: strict +# Load the Rails application. +require_relative 'application' + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/spec/support/rails_app_7_0/config/environments/development.rb b/spec/support/rails_app_7_0/config/environments/development.rb new file mode 100644 index 0000000..16740e4 --- /dev/null +++ b/spec/support/rails_app_7_0/config/environments/development.rb @@ -0,0 +1,55 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports. + config.consider_all_requests_local = true + + # Enable/disable caching. By default caching is disabled. + # Run rails dev:cache to toggle caching. + if Rails.root.join('tmp', 'caching-dev.txt').exist? + config.action_controller.perform_caching = true + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{2.days.to_i}" + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # # Don't care if the mailer can't send. + # config.action_mailer.raise_delivery_errors = false + + # config.action_mailer.perform_caching = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true + + # # Use an evented file watcher to asynchronously detect changes in source code, + # # routes, locales, etc. This feature depends on the listen gem. + # config.file_watcher = ActiveSupport::EventedFileUpdateChecker +end diff --git a/spec/support/rails_app_7_0/config/environments/production.rb b/spec/support/rails_app_7_0/config/environments/production.rb new file mode 100644 index 0000000..5021337 --- /dev/null +++ b/spec/support/rails_app_7_0/config/environments/production.rb @@ -0,0 +1,86 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # Mount Action Cable outside main process or domain + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug + + # Prepend all log lines with the following tags. + config.log_tags = [ :request_id ] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "dummy_#{Rails.env}" + + # config.action_mailer.perform_caching = false + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Use a different logger for distributed setups. + # require 'syslog/logger' + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/spec/support/rails_app_7_0/config/environments/test.rb b/spec/support/rails_app_7_0/config/environments/test.rb new file mode 100644 index 0000000..9fdab26 --- /dev/null +++ b/spec/support/rails_app_7_0/config/environments/test.rb @@ -0,0 +1,47 @@ +# typed: strict +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + } + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Store uploaded files on the local file system in a temporary directory + config.active_storage.service = :test + + # config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/spec/support/rails_app_7_0/config/initializers/application_controller_renderer.rb b/spec/support/rails_app_7_0/config/initializers/application_controller_renderer.rb new file mode 100644 index 0000000..20e7366 --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/application_controller_renderer.rb @@ -0,0 +1,9 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# ActiveSupport::Reloader.to_prepare do +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) +# end diff --git a/spec/support/rails_app_7_0/config/initializers/backtrace_silencers.rb b/spec/support/rails_app_7_0/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..3bde375 --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/backtrace_silencers.rb @@ -0,0 +1,8 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/spec/support/rails_app_7_0/config/initializers/cors.rb b/spec/support/rails_app_7_0/config/initializers/cors.rb new file mode 100644 index 0000000..fb21526 --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/cors.rb @@ -0,0 +1,17 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Avoid CORS issues when API is called from the frontend app. +# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests. + +# Read more: https://github.com/cyu/rack-cors + +# Rails.application.config.middleware.insert_before 0, Rack::Cors do +# allow do +# origins 'example.com' +# +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end +# end diff --git a/spec/support/rails_app_7_0/config/initializers/filter_parameter_logging.rb b/spec/support/rails_app_7_0/config/initializers/filter_parameter_logging.rb new file mode 100644 index 0000000..aedda83 --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,5 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/spec/support/rails_app_7_0/config/initializers/inflections.rb b/spec/support/rails_app_7_0/config/initializers/inflections.rb new file mode 100644 index 0000000..66592ee --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/inflections.rb @@ -0,0 +1,17 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/spec/support/rails_app_7_0/config/initializers/mime_types.rb b/spec/support/rails_app_7_0/config/initializers/mime_types.rb new file mode 100644 index 0000000..fa8c326 --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/spec/support/rails_app_7_0/config/initializers/wrap_parameters.rb b/spec/support/rails_app_7_0/config/initializers/wrap_parameters.rb new file mode 100644 index 0000000..e47cfdd --- /dev/null +++ b/spec/support/rails_app_7_0/config/initializers/wrap_parameters.rb @@ -0,0 +1,15 @@ +# typed: strict +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/spec/support/rails_app_7_0/config/locales/en.yml b/spec/support/rails_app_7_0/config/locales/en.yml new file mode 100644 index 0000000..decc5a8 --- /dev/null +++ b/spec/support/rails_app_7_0/config/locales/en.yml @@ -0,0 +1,33 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# The following keys must be escaped otherwise they will not be retrieved by +# the default I18n backend: +# +# true, false, on, off, yes, no +# +# Instead, surround them with single quotes. +# +# en: +# 'true': 'foo' +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/spec/support/rails_app_7_0/config/routes.rb b/spec/support/rails_app_7_0/config/routes.rb new file mode 100644 index 0000000..841b2ec --- /dev/null +++ b/spec/support/rails_app_7_0/config/routes.rb @@ -0,0 +1,4 @@ +# typed: strict +Rails.application.routes.draw do + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html +end diff --git a/spec/support/rails_app_7_0/config/spring.rb b/spec/support/rails_app_7_0/config/spring.rb new file mode 100644 index 0000000..96b4745 --- /dev/null +++ b/spec/support/rails_app_7_0/config/spring.rb @@ -0,0 +1,7 @@ +# typed: false +%w[ + .ruby-version + .rbenv-vars + tmp/restart.txt + tmp/caching-dev.txt +].each { |path| Spring.watch(path) } diff --git a/spec/support/rails_app_7_0/config/storage.yml b/spec/support/rails_app_7_0/config/storage.yml new file mode 100644 index 0000000..d32f76e --- /dev/null +++ b/spec/support/rails_app_7_0/config/storage.yml @@ -0,0 +1,34 @@ +test: + service: Disk + root: <%= Rails.root.join("tmp/storage") %> + +local: + service: Disk + root: <%= Rails.root.join("storage") %> + +# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) +# amazon: +# service: S3 +# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> +# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> +# region: us-east-1 +# bucket: your_own_bucket + +# Remember not to checkin your GCS keyfile to a repository +# google: +# service: GCS +# project: your_project +# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> +# bucket: your_own_bucket + +# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) +# microsoft: +# service: AzureStorage +# storage_account_name: your_account_name +# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> +# container: your_container_name + +# mirror: +# service: Mirror +# primary: local +# mirrors: [ amazon, google, microsoft ] diff --git a/spec/support/rails_app_7_0/log/.keep b/spec/support/rails_app_7_0/log/.keep new file mode 100644 index 0000000..e69de29 diff --git a/spec/support/rails_app_7_0/public/robots.txt b/spec/support/rails_app_7_0/public/robots.txt new file mode 100644 index 0000000..37b576a --- /dev/null +++ b/spec/support/rails_app_7_0/public/robots.txt @@ -0,0 +1 @@ +# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file