Drop support for Ruby < 2.5 and Rails 5.x

This commit is contained in:
M.Shibuya 2021-05-30 18:11:04 +09:00
parent a08538cfcf
commit 229594fb2a
No known key found for this signature in database
GPG Key ID: 76087F03B4FB52E7
8 changed files with 11 additions and 90 deletions

View File

@ -8,21 +8,12 @@ jobs:
strategy:
fail-fast: false
matrix:
ruby: [ 2.5, 2.6, 2.7, jruby ]
gemfile: [ gemfiles/rails-6-0.gemfile ]
ruby: [ 2.5, 2.6, 2.7, 3.0, jruby ]
gemfile: [ gemfiles/rails-6-1.gemfile ]
experimental: [ false ]
include:
- ruby: 2.2
gemfile: gemfiles/rails-5-0.gemfile
experimental: false
- ruby: 2.3
gemfile: gemfiles/rails-5-1.gemfile
experimental: false
- ruby: 2.4
gemfile: gemfiles/rails-5-2.gemfile
experimental: false
- ruby: 3.0
gemfile: gemfiles/rails-6-1.gemfile
gemfile: gemfiles/rails-6-0.gemfile
experimental: false
- ruby: 3.0
gemfile: gemfiles/rails-master.gemfile
@ -31,7 +22,7 @@ jobs:
gemfile: gemfiles/rails-6-1.gemfile
experimental: true
- ruby: jruby-head
gemfile: gemfiles/rails-6-0.gemfile
gemfile: gemfiles/rails-6-1.gemfile
experimental: false
runs-on: ubuntu-20.04
env:
@ -62,7 +53,5 @@ jobs:
- name: Run RSpec
run: bundle exec rake spec || [ "$EXPERIMENTAL" == "true" ] && true
- name: Run Cucumber
# Workaround for OpenSSL 'undefined symbol: SSLv2_method' error
if: ${{ matrix.ruby > 2.3 || contains(matrix.ruby, 'ruby') }}
run: bundle exec rake features || [ "$EXPERIMENTAL" == "true" ] && true

View File

@ -19,15 +19,15 @@ Gem::Specification.new do |s|
s.require_paths = ["lib"]
s.licenses = ["MIT"]
s.required_ruby_version = ">= 2.2.2"
s.required_ruby_version = ">= 2.5.0"
s.add_dependency "activesupport", ">= 5.0.0"
s.add_dependency "activemodel", ">= 5.0.0"
s.add_dependency "activesupport", ">= 6.0.0"
s.add_dependency "activemodel", ">= 6.0.0"
s.add_dependency "image_processing", "~> 1.1"
s.add_dependency "marcel", "~> 1.0.0"
s.add_dependency "addressable", "~> 2.6"
s.add_dependency "ssrf_filter", "~> 1.0"
s.add_development_dependency "rails", ">= 5.0.0"
s.add_development_dependency "rails", ">= 6.0.0"
s.add_development_dependency "cucumber", "~> 2.3"
s.add_development_dependency "rspec", "~> 3.4"
s.add_development_dependency "rspec-retry"

View File

@ -1,11 +0,0 @@
source "https://rubygems.org"
gem "rails", "~> 5.0.0"
gem "activemodel-serializers-xml"
if RUBY_VERSION < '2.3'
gem "ruby-vips", "2.0.13"
end
gem 'sqlite3', '~> 1.3.6', platforms: :ruby
gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby, :truffleruby]
gemspec :path => "../"

View File

@ -1,8 +0,0 @@
source "https://rubygems.org"
gem "rails", "~> 5.1.0"
gem "activemodel-serializers-xml"
gem 'sqlite3', '~> 1.3.6', platforms: :ruby
gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby, :truffleruby]
gemspec :path => "../"

View File

@ -1,8 +0,0 @@
source "https://rubygems.org"
gem "rails", "~> 5.2.0"
gem "activemodel-serializers-xml"
gem 'sqlite3', platforms: :ruby
gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby, :truffleruby]
gemspec :path => "../"

View File

@ -195,8 +195,7 @@ module CarrierWave
end
def store_previous_changes_for_#{column}
attribute_changes = ::ActiveRecord.version.to_s.to_f >= 5.1 ? saved_changes : changes
@_previous_changes_for_#{column} = attribute_changes[_mounter(:#{column}).serialization_column]
@_previous_changes_for_#{column} = saved_changes[_mounter(:#{column}).serialization_column]
end
def reset_previous_changes_for_#{column}
@ -359,8 +358,7 @@ module CarrierWave
end
def store_previous_changes_for_#{column}
attribute_changes = ::ActiveRecord.version.to_s.to_f >= 5.1 ? saved_changes : changes
@_previous_changes_for_#{column} = attribute_changes[_mounter(:#{column}).serialization_column]
@_previous_changes_for_#{column} = saved_changes[_mounter(:#{column}).serialization_column]
end
def reset_previous_changes_for_#{column}

View File

@ -18,13 +18,7 @@ end
def reset_class(class_name)
Object.send(:remove_const, class_name) rescue nil
klass = Object.const_set(class_name, Class.new(ActiveRecord::Base))
# TODO Remove when Rails 5.2 is dropped
klass.class_eval do
attribute :images, :json
attribute :textfiles, :json
end
klass
Object.const_set(class_name, Class.new(ActiveRecord::Base))
end
describe CarrierWave::ActiveRecord do

View File

@ -5,36 +5,3 @@ Bundler.require
ActiveRecord::Base.establish_connection({ adapter: 'sqlite3', database: ':memory:' })
ActiveRecord::Migration.verbose = false
if ActiveRecord.version < Gem::Version.new("5.2")
module ActiveRecord
module Type
class Json < ActiveModel::Type::Value
include ActiveModel::Type::Helpers::Mutable
def type
:json
end
def deserialize(value)
return value unless value.is_a?(::String)
ActiveSupport::JSON.decode(value) rescue nil
end
def serialize(value)
ActiveSupport::JSON.encode(value) unless value.nil?
end
def changed_in_place?(raw_old_value, new_value)
deserialize(raw_old_value) != new_value
end
def accessor
ActiveRecord::Store::StringKeyedHashAccessor
end
end
end
end
ActiveRecord::Type.register(:json, ActiveRecord::Type::Json, override: false)
end