diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 957d4624ef..e57abcad8f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,53 +8,33 @@ jobs: strategy: fail-fast: false matrix: - ruby: [ 2.6, 2.7, jruby ] - gemfile: [ gemfiles/rails_6.0.gemfile ] + ruby: [ 2.6, 2.7, 3.0, jruby ] + gemfile: [ gemfiles/rails_6.1.gemfile ] orm: [ active_record ] adapter: [ sqlite3 ] include: - - ruby: 2.2 - gemfile: gemfiles/rails_5.0.gemfile - orm: active_record - adapter: sqlite3 - - ruby: 2.3 - gemfile: gemfiles/rails_5.1.gemfile - orm: active_record - adapter: sqlite3 - - ruby: 2.4 - gemfile: gemfiles/rails_5.2.gemfile - orm: active_record - adapter: sqlite3 - ruby: 2.5 - gemfile: gemfiles/rails_5.2.gemfile - orm: active_record - adapter: sqlite3 - - ruby: 2.7 - gemfile: gemfiles/rails_6.1.gemfile + gemfile: gemfiles/rails_6.0.gemfile orm: active_record adapter: sqlite3 - - ruby: 2.7 + - ruby: 3.0 gemfile: gemfiles/rails_6.1.gemfile orm: active_record adapter: mysql2 - - ruby: 2.7 - gemfile: gemfiles/rails_6.1.gemfile - orm: active_record - adapter: postgresql - ruby: 3.0 gemfile: gemfiles/rails_6.1.gemfile orm: active_record - adapter: sqlite3 - - ruby: 2.6 - gemfile: gemfiles/rails_5.2.gemfile - orm: mongoid - adapter: sqlite3 + adapter: postgresql - ruby: 2.7 gemfile: gemfiles/rails_6.0.gemfile orm: mongoid adapter: sqlite3 + - ruby: 3.1 + gemfile: gemfiles/rails_6.1.gemfile + orm: mongoid + adapter: sqlite3 - ruby: jruby - gemfile: gemfiles/rails_6.0.gemfile + gemfile: gemfiles/rails_6.1.gemfile orm: mongoid adapter: sqlite3 runs-on: ubuntu-16.04 diff --git a/Appraisals b/Appraisals index 6ef1bb30f5..cce3ac7a3f 100644 --- a/Appraisals +++ b/Appraisals @@ -1,104 +1,3 @@ -appraise "rails-5.0" do - gem 'rails', '~> 5.0.0' - gem 'sassc-rails', '~> 2.1' - gem 'devise', '~> 4.0' - - group :test do - gem 'cancancan', '~> 2.0' - gem 'paperclip', ['>= 3.4', '!= 4.3.0'] - gem 'mimemagic', '< 0.3.10' - gem 'shrine', '~> 2.13.0' - gem 'shrine-memory' - end - - group :active_record do - gem 'paper_trail', '>= 5.0' - - platforms :ruby, :mswin, :mingw, :x64_mingw do - gem 'sqlite3', '~> 1.3.0' - end - - platforms :jruby do - gem 'activerecord-jdbcmysql-adapter', '~> 50.0' - gem 'activerecord-jdbcpostgresql-adapter', '~> 50.0' - gem 'activerecord-jdbcsqlite3-adapter', '~> 50.0' - end - end - - group :mongoid do - gem 'mongoid', '~> 6.1' - gem 'kaminari-mongoid' - gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' - gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' - gem 'cancancan-mongoid' - gem 'shrine-mongoid', '~> 0.2.4' - end -end - -appraise "rails-5.1" do - gem 'rails', '~> 5.1.0' - gem 'sassc-rails', '~> 2.1' - gem 'devise', '~> 4.0' - - group :test do - gem 'cancancan', '~> 2.0' - gem 'paperclip', ['>= 3.4', '!= 4.3.0'] - gem 'shrine', '~> 3.0' - end - - group :active_record do - gem 'pg', '~> 0.14', platforms: :ruby - gem 'paper_trail', '>= 5.0' - - platforms :jruby do - gem 'activerecord-jdbcmysql-adapter', '~> 51.0' - gem 'activerecord-jdbcpostgresql-adapter', '~> 51.0' - gem 'activerecord-jdbcsqlite3-adapter', '~> 51.0' - end - end - - group :mongoid do - gem 'mongoid', '~> 7.0' - gem 'kaminari-mongoid' - gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' - gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' - gem 'cancancan-mongoid' - gem 'shrine-mongoid', '~> 1.0' - end -end - -appraise "rails-5.2" do - gem 'rails', '~> 5.2.0' - gem 'sassc-rails', '~> 2.1' - gem 'devise', '~> 4.4' - - group :test do - gem 'cancancan', '~> 2.0' - gem 'paperclip', ['>= 3.4', '!= 4.3.0'] - gem 'shrine', '~> 3.0' - end - - group :active_record do - gem 'pg', '>= 1.0.0', platforms: :ruby - gem 'paper_trail', '>= 5.0' - - platforms :jruby do - gem 'activerecord-jdbcmysql-adapter', '~> 52.0' - gem 'activerecord-jdbcpostgresql-adapter', '~> 52.0' - gem 'activerecord-jdbcsqlite3-adapter', '~> 52.0' - end - end - - group :mongoid do - gem 'mongoid', '~> 7.0' - gem 'kaminari-mongoid' - gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' - gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' - gem 'cancancan-mongoid' - gem 'shrine-mongoid', '~> 1.0' - end -end - appraise "rails-6.0" do gem 'rails', '~> 6.0.0' gem 'haml' @@ -138,7 +37,6 @@ appraise "rails-6.1" do gem 'haml' gem 'sassc-rails', '~> 2.1' gem 'devise', '~> 4.7' - gem 'webrick', '~> 1.7' group :test do gem 'cancancan', '~> 3.2' @@ -151,4 +49,13 @@ appraise "rails-6.1" do gem 'pg', '>= 1.0.0', platforms: :ruby gem 'paper_trail', '>= 5.0' end + + group :mongoid do + gem 'mongoid', '~> 7.0' + gem 'kaminari-mongoid' + gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' + gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' + gem 'cancancan-mongoid' + gem 'shrine-mongoid', '~> 1.0' + end end diff --git a/Gemfile b/Gemfile index 42f96c2ea6..e157b312b6 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,7 @@ gem 'appraisal', '>= 2.0' gem 'rails' gem 'haml' gem 'devise' +gem 'webrick', '~> 1.7' group :active_record do gem 'paper_trail' diff --git a/gemfiles/rails_5.0.gemfile b/gemfiles/rails_5.0.gemfile deleted file mode 100644 index c432cf3038..0000000000 --- a/gemfiles/rails_5.0.gemfile +++ /dev/null @@ -1,70 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", ">= 2.0" -gem "rails", "~> 5.0.0" -gem "haml" -gem "devise", "~> 4.0" -gem "sassc-rails", "~> 2.1" - -group :active_record do - gem "paper_trail", ">= 5.0" - - platforms :ruby, :mswin, :mingw, :x64_mingw do - gem "mysql2", ">= 0.3.14" - gem "sqlite3", "~> 1.3.0" - end - - platforms :jruby do - gem "activerecord-jdbcmysql-adapter", "~> 50.0" - gem "activerecord-jdbcpostgresql-adapter", "~> 50.0" - gem "activerecord-jdbcsqlite3-adapter", "~> 50.0" - end -end - -group :development, :test do - gem "pry", ">= 0.9" -end - -group :test do - gem "cancancan", "~> 2.0" - gem "carrierwave", [">= 2.0.0.rc", "< 3"] - gem "database_cleaner", [">= 1.2", "!= 1.4.0", "!= 1.5.0", "< 2.0"] - gem "dragonfly", "~> 1.0" - gem "factory_bot", ">= 4.2" - gem "generator_spec", ">= 0.8" - gem "launchy", ">= 2.2" - gem "mini_magick", ">= 3.4" - gem "poltergeist", "~> 1.5" - gem "pundit" - gem "rack-cache", require: "rack/cache" - gem "rspec-rails", ">= 2.14" - gem "rspec-expectations", "!= 3.8.3" - gem "rspec-retry" - gem "rubocop", "~> 0.68.1", require: false - gem "rubocop-performance", require: false - gem "simplecov", ">= 0.9", require: false - gem "simplecov-lcov", require: false - gem "timecop", ">= 0.5" - gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] - gem "paperclip", [">= 3.4", "!= 4.3.0"] - gem "mimemagic", "< 0.3.10" - gem "shrine", "~> 2.13.0" - gem "shrine-memory" - - platforms :ruby_19 do - gem "tins", "~> 1.6.0", require: false - end -end - -group :mongoid do - gem "mongoid", "~> 6.1" - gem "kaminari-mongoid" - gem "mongoid-paperclip", ">= 0.0.8", require: "mongoid_paperclip" - gem "carrierwave-mongoid", ">= 0.6.3", require: "carrierwave/mongoid" - gem "cancancan-mongoid" - gem "shrine-mongoid", "~> 0.2.4" -end - -gemspec path: "../" diff --git a/gemfiles/rails_5.1.gemfile b/gemfiles/rails_5.1.gemfile deleted file mode 100644 index 2ffc3b516a..0000000000 --- a/gemfiles/rails_5.1.gemfile +++ /dev/null @@ -1,69 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", ">= 2.0" -gem "rails", "~> 5.1.0" -gem "haml" -gem "devise", "~> 4.0" -gem "sassc-rails", "~> 2.1" - -group :active_record do - gem "paper_trail", ">= 5.0" - gem "pg", "~> 0.14", platforms: :ruby - - platforms :ruby, :mswin, :mingw, :x64_mingw do - gem "mysql2", ">= 0.3.14" - gem "sqlite3", ">= 1.3" - end - - platforms :jruby do - gem "activerecord-jdbcmysql-adapter", "~> 51.0" - gem "activerecord-jdbcpostgresql-adapter", "~> 51.0" - gem "activerecord-jdbcsqlite3-adapter", "~> 51.0" - end -end - -group :development, :test do - gem "pry", ">= 0.9" -end - -group :test do - gem "cancancan", "~> 2.0" - gem "carrierwave", [">= 2.0.0.rc", "< 3"] - gem "database_cleaner", [">= 1.2", "!= 1.4.0", "!= 1.5.0", "< 2.0"] - gem "dragonfly", "~> 1.0" - gem "factory_bot", ">= 4.2" - gem "generator_spec", ">= 0.8" - gem "launchy", ">= 2.2" - gem "mini_magick", ">= 3.4" - gem "poltergeist", "~> 1.5" - gem "pundit" - gem "rack-cache", require: "rack/cache" - gem "rspec-rails", ">= 2.14" - gem "rspec-expectations", "!= 3.8.3" - gem "rspec-retry" - gem "rubocop", "~> 0.68.1", require: false - gem "rubocop-performance", require: false - gem "simplecov", ">= 0.9", require: false - gem "simplecov-lcov", require: false - gem "timecop", ">= 0.5" - gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] - gem "paperclip", [">= 3.4", "!= 4.3.0"] - gem "shrine", "~> 3.0" - - platforms :ruby_19 do - gem "tins", "~> 1.6.0", require: false - end -end - -group :mongoid do - gem "mongoid", "~> 7.0" - gem "kaminari-mongoid" - gem "mongoid-paperclip", ">= 0.0.8", require: "mongoid_paperclip" - gem "carrierwave-mongoid", ">= 0.6.3", require: "carrierwave/mongoid" - gem "cancancan-mongoid" - gem "shrine-mongoid", "~> 1.0" -end - -gemspec path: "../" diff --git a/gemfiles/rails_5.2.gemfile b/gemfiles/rails_5.2.gemfile deleted file mode 100644 index 77114acb11..0000000000 --- a/gemfiles/rails_5.2.gemfile +++ /dev/null @@ -1,69 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", ">= 2.0" -gem "rails", "~> 5.2.0" -gem "haml" -gem "devise", "~> 4.4" -gem "sassc-rails", "~> 2.1" - -group :active_record do - gem "paper_trail", ">= 5.0" - gem "pg", ">= 1.0.0", platforms: :ruby - - platforms :ruby, :mswin, :mingw, :x64_mingw do - gem "mysql2", ">= 0.3.14" - gem "sqlite3", ">= 1.3" - end - - platforms :jruby do - gem "activerecord-jdbcmysql-adapter", "~> 52.0" - gem "activerecord-jdbcpostgresql-adapter", "~> 52.0" - gem "activerecord-jdbcsqlite3-adapter", "~> 52.0" - end -end - -group :development, :test do - gem "pry", ">= 0.9" -end - -group :test do - gem "cancancan", "~> 2.0" - gem "carrierwave", [">= 2.0.0.rc", "< 3"] - gem "database_cleaner", [">= 1.2", "!= 1.4.0", "!= 1.5.0", "< 2.0"] - gem "dragonfly", "~> 1.0" - gem "factory_bot", ">= 4.2" - gem "generator_spec", ">= 0.8" - gem "launchy", ">= 2.2" - gem "mini_magick", ">= 3.4" - gem "poltergeist", "~> 1.5" - gem "pundit" - gem "rack-cache", require: "rack/cache" - gem "rspec-rails", ">= 2.14" - gem "rspec-expectations", "!= 3.8.3" - gem "rspec-retry" - gem "rubocop", "~> 0.68.1", require: false - gem "rubocop-performance", require: false - gem "simplecov", ">= 0.9", require: false - gem "simplecov-lcov", require: false - gem "timecop", ">= 0.5" - gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] - gem "paperclip", [">= 3.4", "!= 4.3.0"] - gem "shrine", "~> 3.0" - - platforms :ruby_19 do - gem "tins", "~> 1.6.0", require: false - end -end - -group :mongoid do - gem "mongoid", "~> 7.0" - gem "kaminari-mongoid" - gem "mongoid-paperclip", ">= 0.0.8", require: "mongoid_paperclip" - gem "carrierwave-mongoid", ">= 0.6.3", require: "carrierwave/mongoid" - gem "cancancan-mongoid" - gem "shrine-mongoid", "~> 1.0" -end - -gemspec path: "../" diff --git a/gemfiles/rails_6.0.gemfile b/gemfiles/rails_6.0.gemfile index 19e0fbc54c..500a45b878 100644 --- a/gemfiles/rails_6.0.gemfile +++ b/gemfiles/rails_6.0.gemfile @@ -6,6 +6,7 @@ gem "appraisal", ">= 2.0" gem "rails", "~> 6.0.0" gem "haml" gem "devise", "~> 4.7" +gem "webrick", "~> 1.7" gem "sassc-rails", "~> 2.1" group :active_record do diff --git a/gemfiles/rails_6.1.gemfile b/gemfiles/rails_6.1.gemfile index c3a116ca2c..3faf38bbc1 100644 --- a/gemfiles/rails_6.1.gemfile +++ b/gemfiles/rails_6.1.gemfile @@ -6,8 +6,8 @@ gem "appraisal", ">= 2.0" gem "rails", "~> 6.1.0" gem "haml" gem "devise", "~> 4.7" -gem "sassc-rails", "~> 2.1" gem "webrick", "~> 1.7" +gem "sassc-rails", "~> 2.1" group :active_record do gem "paper_trail", ">= 5.0" @@ -52,4 +52,13 @@ group :test do end end +group :mongoid do + gem "mongoid", "~> 7.0" + gem "kaminari-mongoid" + gem "mongoid-paperclip", ">= 0.0.8", require: "mongoid_paperclip" + gem "carrierwave-mongoid", ">= 0.6.3", require: "carrierwave/mongoid" + gem "cancancan-mongoid" + gem "shrine-mongoid", "~> 1.0" +end + gemspec path: "../" diff --git a/lib/rails_admin/config/fields/types/active_storage.rb b/lib/rails_admin/config/fields/types/active_storage.rb index 2b47919e1d..e3f1f7f1f3 100644 --- a/lib/rails_admin/config/fields/types/active_storage.rb +++ b/lib/rails_admin/config/fields/types/active_storage.rb @@ -8,11 +8,7 @@ class ActiveStorage < RailsAdmin::Config::Fields::Types::FileUpload RailsAdmin::Config::Fields::Types.register(self) register_instance_option :thumb_method do - if ::ActiveStorage::VERSION::MAJOR >= 6 - {resize_to_limit: [100, 100]} - else - {resize: '100x100>'} - end + {resize_to_limit: [100, 100]} end register_instance_option :delete_method do diff --git a/lib/rails_admin/config/fields/types/multiple_active_storage.rb b/lib/rails_admin/config/fields/types/multiple_active_storage.rb index 7c95eb18c0..9cc59caa6b 100644 --- a/lib/rails_admin/config/fields/types/multiple_active_storage.rb +++ b/lib/rails_admin/config/fields/types/multiple_active_storage.rb @@ -9,11 +9,7 @@ class MultipleActiveStorage < RailsAdmin::Config::Fields::Types::MultipleFileUpl class ActiveStorageAttachment < RailsAdmin::Config::Fields::Types::MultipleFileUpload::AbstractAttachment register_instance_option :thumb_method do - if ::ActiveStorage::VERSION::MAJOR >= 6 - {resize_to_limit: [100, 100]} - else - {resize: '100x100>'} - end + {resize_to_limit: [100, 100]} end register_instance_option :delete_value do diff --git a/spec/dummy_app/config/application.rb b/spec/dummy_app/config/application.rb index 0f07c37b86..2f350cf301 100644 --- a/spec/dummy_app/config/application.rb +++ b/spec/dummy_app/config/application.rb @@ -10,8 +10,8 @@ rescue LoadError # rubocop:disable Lint/HandleExceptions end -require 'active_storage/engine' if Rails.version >= '5.2.0' && CI_ORM == :active_record -require 'action_text/engine' if Rails.version >= '6.0.0' && CI_ORM == :active_record +require 'active_storage/engine' if CI_ORM == :active_record +require 'action_text/engine' if CI_ORM == :active_record # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. @@ -22,12 +22,11 @@ class Application < Rails::Application # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. - config.load_defaults Rails.version[0, 3] if Rails.version >= '5.1.0' + config.load_defaults Rails.version[0, 3] config.eager_load_paths.reject! { |p| p =~ %r{/app/(\w+)$} && !%w(controllers helpers views).push(CI_ORM).include?(Regexp.last_match[1]) } config.autoload_paths += %W(#{config.root}/app/#{CI_ORM} #{config.root}/app/#{CI_ORM}/concerns #{config.root}/lib) config.i18n.load_path += Dir[Rails.root.join('app', 'locales', '*.{rb,yml}').to_s] config.active_record.time_zone_aware_types = [:datetime, :time] if CI_ORM == :active_record - config.active_record.sqlite3.represent_boolean_as_integer = true if CI_ORM == :active_record && Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR == 2 config.active_storage.service = :local if defined?(ActiveStorage) end end diff --git a/spec/dummy_app/db/migrate/20120928075608_create_images.rb b/spec/dummy_app/db/migrate/20120928075608_create_images.rb index 00b5cf1458..93f6c010c5 100644 --- a/spec/dummy_app/db/migrate/20120928075608_create_images.rb +++ b/spec/dummy_app/db/migrate/20120928075608_create_images.rb @@ -1,7 +1,10 @@ class CreateImages < ActiveRecord::Migration[5.0] def change create_table :images do |t| - t.attachment :file + t.string :file_file_name + t.string :file_content_type + t.bigint :file_file_size + t.datetime :file_updated_at t.timestamps null: false end end diff --git a/spec/integration/history/rails_admin_paper_trail_spec.rb b/spec/integration/history/rails_admin_paper_trail_spec.rb index 25db77da9a..7dfc358915 100644 --- a/spec/integration/history/rails_admin_paper_trail_spec.rb +++ b/spec/integration/history/rails_admin_paper_trail_spec.rb @@ -3,7 +3,6 @@ RSpec.describe 'RailsAdmin PaperTrail history', active_record: true do before(:each) do - skip 'Requires Ruby >= 2.3' if Rails::VERSION::STRING >= '5.2' && RUBY_VERSION =~ /^2\.2/ RailsAdmin.config do |config| config.audit_with :paper_trail, 'User', 'PaperTrail::Version' end diff --git a/spec/rails_admin/config/fields/association_spec.rb b/spec/rails_admin/config/fields/association_spec.rb index 7c3c660c6e..aa220e21e8 100644 --- a/spec/rails_admin/config/fields/association_spec.rb +++ b/spec/rails_admin/config/fields/association_spec.rb @@ -4,7 +4,7 @@ describe '#pretty_value' do let(:player) { FactoryBot.create(:player, name: '
', team: FactoryBot.create(:team)) } let(:field) { RailsAdmin.config('Team').fields.detect { |f| f.name == :players } } - let(:view) { (ActionView.version.to_s >= '6' ? ActionView::Base.empty : ActionView::Base.new).tap { |d| allow(d).to receive(:action).and_return(nil) } } + let(:view) { ActionView::Base.empty.tap { |d| allow(d).to receive(:action).and_return(nil) } } subject { field.with(object: player.team, view: view).pretty_value } context 'when the link is disabled' do diff --git a/spec/rails_admin/config/fields/types/active_storage_spec.rb b/spec/rails_admin/config/fields/types/active_storage_spec.rb index 9e60eb8328..391d204235 100644 --- a/spec/rails_admin/config/fields/types/active_storage_spec.rb +++ b/spec/rails_admin/config/fields/types/active_storage_spec.rb @@ -12,11 +12,7 @@ describe '#thumb_method' do it 'returns corresponding value which is to be passed to image_processing(ActiveStorage >= 6.0) or mini_magick(ActiveStorage 5.2)' do - if ::ActiveStorage::VERSION::MAJOR >= 6 - expect(field.thumb_method).to eq(resize_to_limit: [100, 100]) - else - expect(field.thumb_method).to eq(resize: '100x100>') - end + expect(field.thumb_method).to eq(resize_to_limit: [100, 100]) end end diff --git a/spec/rails_admin/config/fields/types/multiple_active_storage_spec.rb b/spec/rails_admin/config/fields/types/multiple_active_storage_spec.rb index 72808d14f0..6afb772319 100644 --- a/spec/rails_admin/config/fields/types/multiple_active_storage_spec.rb +++ b/spec/rails_admin/config/fields/types/multiple_active_storage_spec.rb @@ -19,11 +19,7 @@ subject { field.attachments[0] } it 'returns corresponding value which is to be passed to image_processing(ActiveStorage >= 6.0) or mini_magick(ActiveStorage 5.2)' do - if ::ActiveStorage::VERSION::MAJOR >= 6 - expect(subject.thumb_method).to eq(resize_to_limit: [100, 100]) - else - expect(subject.thumb_method).to eq(resize: '100x100>') - end + expect(subject.thumb_method).to eq(resize_to_limit: [100, 100]) end end