diff --git a/Gemfile b/Gemfile index 991d8abe47..c9cce1e266 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,8 @@ group :mongoid do gem 'mongoid', '~> 4.0.0' gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' + + gem 'refile-mongoid', '>= 0.0.1' if RUBY_VERSION >= '2.1.0' end group :active_record do @@ -47,13 +49,15 @@ group :test do gem 'paperclip', ['>= 3.4', '!= 4.3.0'] gem 'poltergeist', '~> 1.5' gem 'rack-cache', require: 'rack/cache' - gem 'refile', '>= 0.5.5', require: 'refile/rails' - gem 'refile-mini_magick', '>= 0.1.0' - gem 'refile-mongoid', '>= 0.0.1' gem 'rspec-rails', '>= 2.14' gem 'rubocop', '~> 0.31.0' gem 'simplecov', '>= 0.9', require: false gem 'timecop', '>= 0.5' + + if RUBY_VERSION >= '2.1.0' + gem 'refile', '~> 0.5', require: 'refile/rails' + gem 'refile-mini_magick', '>= 0.1.0' + end end gemspec diff --git a/gemfiles/rails_4.0.gemfile b/gemfiles/rails_4.0.gemfile index 0759a9f598..bef2e484bd 100644 --- a/gemfiles/rails_4.0.gemfile +++ b/gemfiles/rails_4.0.gemfile @@ -5,12 +5,15 @@ source "https://rubygems.org" gem "appraisal", ">= 2.0" gem "devise", ">= 3.2" gem "rails", "~> 4.0.0" +gem "sass-rails", "~> 5.0" gem "test-unit" group :mongoid do gem "mongoid", "~> 4.0.0" gem "mongoid-paperclip", ">= 0.0.8", :require => "mongoid_paperclip" gem "carrierwave-mongoid", ">= 0.6.3", :require => "carrierwave/mongoid" + + gem "refile-mongoid", ">= 0.0.1" if RUBY_VERSION >= "2.1.0" end group :active_record do @@ -51,13 +54,15 @@ group :test do gem "paperclip", [">= 3.4", "!= 4.3.0"] gem "poltergeist", "~> 1.5" gem "rack-cache", :require => "rack/cache" - gem 'refile', '>= 0.5.5', require: 'refile/rails' - gem 'refile-mini_magick', '>= 0.1.0' - gem 'refile-mongoid', '>= 0.0.1' gem "rspec-rails", ">= 2.14" gem "rubocop", "~> 0.31.0" gem "simplecov", ">= 0.9", :require => false gem "timecop", ">= 0.5" + + if RUBY_VERSION >= "2.1.0" + gem "refile", "~> 0.5", :require => "refile/rails" + gem "refile-mini_magick", ">= 0.1.0" + end end gemspec :path => "../" diff --git a/gemfiles/rails_4.1.gemfile b/gemfiles/rails_4.1.gemfile index 442a4287df..a0b2847eb6 100644 --- a/gemfiles/rails_4.1.gemfile +++ b/gemfiles/rails_4.1.gemfile @@ -5,11 +5,14 @@ source "https://rubygems.org" gem "appraisal", ">= 2.0" gem "devise", ">= 3.2" gem "rails", "~> 4.1.0" +gem "sass-rails", "~> 5.0" group :mongoid do gem "mongoid", "~> 4.0.0" gem "mongoid-paperclip", ">= 0.0.8", :require => "mongoid_paperclip" gem "carrierwave-mongoid", ">= 0.6.3", :require => "carrierwave/mongoid" + + gem "refile-mongoid", ">= 0.0.1" if RUBY_VERSION >= "2.1.0" end group :active_record do @@ -50,13 +53,15 @@ group :test do gem "paperclip", [">= 3.4", "!= 4.3.0"] gem "poltergeist", "~> 1.5" gem "rack-cache", :require => "rack/cache" - gem 'refile', '>= 0.5.5', require: 'refile/rails' - gem 'refile-mini_magick', '>= 0.1.0' - gem 'refile-mongoid', '>= 0.0.1' gem "rspec-rails", ">= 2.14" gem "rubocop", "~> 0.31.0" gem "simplecov", ">= 0.9", :require => false gem "timecop", ">= 0.5" + + if RUBY_VERSION >= "2.1.0" + gem "refile", "~> 0.5", :require => "refile/rails" + gem "refile-mini_magick", ">= 0.1.0" + end end gemspec :path => "../" diff --git a/gemfiles/rails_4.2.gemfile b/gemfiles/rails_4.2.gemfile index 27c3e23734..8e330fba4b 100644 --- a/gemfiles/rails_4.2.gemfile +++ b/gemfiles/rails_4.2.gemfile @@ -11,6 +11,8 @@ group :mongoid do gem "mongoid", "~> 4.0.0" gem "mongoid-paperclip", ">= 0.0.8", :require => "mongoid_paperclip" gem "carrierwave-mongoid", ">= 0.6.3", :require => "carrierwave/mongoid" + + gem "refile-mongoid", ">= 0.0.1" if RUBY_VERSION >= "2.1.0" end group :active_record do @@ -51,13 +53,15 @@ group :test do gem "paperclip", [">= 3.4", "!= 4.3.0"] gem "poltergeist", "~> 1.5" gem "rack-cache", :require => "rack/cache" - gem 'refile', '>= 0.5.5', require: 'refile/rails' - gem 'refile-mini_magick', '>= 0.1.0' - gem 'refile-mongoid', '>= 0.0.1' gem "rspec-rails", ">= 2.14" gem "rubocop", "~> 0.31.0" gem "simplecov", ">= 0.9", :require => false gem "timecop", ">= 0.5" + + if RUBY_VERSION >= "2.1.0" + gem "refile", "~> 0.5", :require => "refile/rails" + gem "refile-mini_magick", ">= 0.1.0" + end end gemspec :path => "../" diff --git a/lib/rails_admin/config/fields.rb b/lib/rails_admin/config/fields.rb index 33e84a2a2d..b3b6e4a73f 100644 --- a/lib/rails_admin/config/fields.rb +++ b/lib/rails_admin/config/fields.rb @@ -82,5 +82,5 @@ def self.register_factory(&block) require 'rails_admin/config/fields/factories/paperclip' require 'rails_admin/config/fields/factories/dragonfly' require 'rails_admin/config/fields/factories/carrierwave' -require 'rails_admin/config/fields/factories/refile' +require 'rails_admin/config/fields/factories/refile' if RUBY_VERSION >= '2.1.0' require 'rails_admin/config/fields/factories/association' diff --git a/lib/rails_admin/config/fields/types/all.rb b/lib/rails_admin/config/fields/types/all.rb index 920b57c46f..57ae785c79 100644 --- a/lib/rails_admin/config/fields/types/all.rb +++ b/lib/rails_admin/config/fields/types/all.rb @@ -9,7 +9,7 @@ require 'rails_admin/config/fields/types/file_upload' require 'rails_admin/config/fields/types/paperclip' require 'rails_admin/config/fields/types/carrierwave' -require 'rails_admin/config/fields/types/refile' +require 'rails_admin/config/fields/types/refile' if RUBY_VERSION >= '2.1.0' require 'rails_admin/config/fields/types/float' require 'rails_admin/config/fields/types/has_and_belongs_to_many_association' require 'rails_admin/config/fields/types/has_many_association' diff --git a/spec/controllers/rails_admin/main_controller_spec.rb b/spec/controllers/rails_admin/main_controller_spec.rb index 445d2f2a27..b0610fa823 100644 --- a/spec/controllers/rails_admin/main_controller_spec.rb +++ b/spec/controllers/rails_admin/main_controller_spec.rb @@ -325,7 +325,7 @@ class TeamWithNumberedPlayers < Team field :paperclip_asset do delete_method :delete_paperclip_asset end - field :refile_asset + field :refile_asset if RUBY_VERSION >= '2.1.0' end controller.params = HashWithIndifferentAccess.new( 'field_test' => { @@ -337,10 +337,8 @@ class TeamWithNumberedPlayers < Team 'retained_dragonfly_asset' => 'test', 'paperclip_asset' => 'test', 'delete_paperclip_asset' => 'test', - 'refile_asset' => 'test', - 'remove_refile_asset' => 'test', 'should_not_be_here' => 'test', - }, + }.merge(RUBY_VERSION >= '2.1.0' ? {'refile_asset' => 'test', 'remove_refile_asset' => 'test'} : {}), ) controller.send(:sanitize_params_for!, :create, RailsAdmin.config(FieldTest), controller.params['field_test']) @@ -354,9 +352,7 @@ class TeamWithNumberedPlayers < Team 'retained_dragonfly_asset' => 'test', 'paperclip_asset' => 'test', 'delete_paperclip_asset' => 'test', - 'refile_asset' => 'test', - 'remove_refile_asset' => 'test', - }) + }.merge(RUBY_VERSION >= '2.1.0' ? {'refile_asset' => 'test', 'remove_refile_asset' => 'test'} : {})) end it 'allows for polymorphic associations parameters' do diff --git a/spec/dummy_app/Gemfile b/spec/dummy_app/Gemfile index 5e069ddc6a..1a7111e3ff 100644 --- a/spec/dummy_app/Gemfile +++ b/spec/dummy_app/Gemfile @@ -36,6 +36,8 @@ group :mongoid do gem 'mongoid', '~> 4.0.0.beta1' gem 'mongoid-paperclip', '>= 0.0.8', require: 'mongoid_paperclip' gem 'carrierwave-mongoid', '>= 0.6.3', require: 'carrierwave/mongoid' + + gem 'refile-mongoid', '>= 0.0.1' if RUBY_VERSION >= '2.1.0' end gem 'carrierwave', '>= 0.8' @@ -45,9 +47,11 @@ gem 'mini_magick', '>= 3.4' gem 'mlb', '>= 0.7' gem 'paperclip', '>= 3.4' gem 'rails_admin', path: '../../' -gem 'refile', '>= 0.5.5', require: 'refile/rails' -gem 'refile-mini_magick', '>= 0.1.0' -gem 'refile-mongoid', '>= 0.0.1' + +if RUBY_VERSION >= '2.1.0' + gem 'refile', '~> 0.5', require: 'refile/rails' + gem 'refile-mini_magick', '>= 0.1.0' +end # Gems used only for assets and not required # in production environments by default. diff --git a/spec/dummy_app/app/active_record/field_test.rb b/spec/dummy_app/app/active_record/field_test.rb index 2a282af435..1c6ef8eb74 100644 --- a/spec/dummy_app/app/active_record/field_test.rb +++ b/spec/dummy_app/app/active_record/field_test.rb @@ -11,5 +11,6 @@ class FieldTest < ActiveRecord::Base dragonfly_accessor :dragonfly_asset mount_uploader :carrierwave_asset, CarrierwaveUploader - attachment :refile_asset + + attachment :refile_asset if RUBY_VERSION >= '2.1.0' end diff --git a/spec/dummy_app/app/mongoid/field_test.rb b/spec/dummy_app/app/mongoid/field_test.rb index d0c63b1313..51e1e121f5 100644 --- a/spec/dummy_app/app/mongoid/field_test.rb +++ b/spec/dummy_app/app/mongoid/field_test.rb @@ -3,7 +3,6 @@ class FieldTest include Mongoid::Paperclip include ActiveModel::ForbiddenAttributesProtection extend Dragonfly::Model - extend Refile::Mongoid::Attachment field :name, type: String field :title, type: String @@ -51,10 +50,15 @@ class FieldTest field :dragonfly_asset_uid dragonfly_accessor :dragonfly_asset mount_uploader :carrierwave_asset, CarrierwaveUploader - field :refile_asset_filename - field :refile_asset_size - field :refile_asset_content_type - attachment :refile_asset + + if RUBY_VERSION >= '2.1.0' + extend Refile::Mongoid::Attachment + + field :refile_asset_filename + field :refile_asset_size + field :refile_asset_content_type + attachment :refile_asset + end validates :short_text, length: {maximum: 255} end diff --git a/spec/rails_admin/config/fields/base_spec.rb b/spec/rails_admin/config/fields/base_spec.rb index d247cb404b..370ad9c26e 100644 --- a/spec/rails_admin/config/fields/base_spec.rb +++ b/spec/rails_admin/config/fields/base_spec.rb @@ -92,9 +92,11 @@ class CommentReversed < Tableless end end - context 'of a Refile installation' do - it 'is a _id field' do - expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.children_fields).to eq([:refile_asset_id, :refile_asset_filename, :refile_asset_size, :refile_asset_content_type]) + if RUBY_VERSION >= '2.1.0' + context 'of a Refile installation' do + it 'is a _id field' do + expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.children_fields).to eq([:refile_asset_id, :refile_asset_filename, :refile_asset_size, :refile_asset_content_type]) + end end end end @@ -264,8 +266,10 @@ class CommentReversed < Tableless expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :carrierwave_asset }.searchable_columns.collect { |c| c[:column] }).to eq(['field_tests.carrierwave_asset']) end - it 'of refile should find the underlying column on the base table' do - expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.searchable_columns.collect { |c| c[:column] }).to eq(['field_tests.refile_asset_id']) + if RUBY_VERSION >= '2.1.0' + it 'of refile should find the underlying column on the base table' do + expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.searchable_columns.collect { |c| c[:column] }).to eq(['field_tests.refile_asset_id']) + end end end end @@ -299,9 +303,11 @@ class CommentReversed < Tableless expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :carrierwave_asset }.sortable).to eq(:carrierwave_asset) end - it 'of refile should target the first children field' do - expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.searchable).to eq(:refile_asset_id) - expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.sortable).to eq(:refile_asset_id) + if RUBY_VERSION >= '2.1.0' + it 'of refile should target the first children field' do + expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.searchable).to eq(:refile_asset_id) + expect(RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :refile_asset }.sortable).to eq(:refile_asset_id) + end end end end diff --git a/spec/rails_admin/config/fields/types/file_upload_spec.rb b/spec/rails_admin/config/fields/types/file_upload_spec.rb index 6caff94099..3aa051e324 100644 --- a/spec/rails_admin/config/fields/types/file_upload_spec.rb +++ b/spec/rails_admin/config/fields/types/file_upload_spec.rb @@ -18,7 +18,7 @@ expect(RailsAdmin.config(FieldTest).field(:carrierwave_asset).allowed_methods.collect(&:to_s)).to eq %w(carrierwave_asset remove_carrierwave_asset carrierwave_asset_cache) expect(RailsAdmin.config(FieldTest).field(:dragonfly_asset).allowed_methods.collect(&:to_s)).to eq %w(dragonfly_asset remove_dragonfly_asset retained_dragonfly_asset) expect(RailsAdmin.config(FieldTest).field(:paperclip_asset).allowed_methods.collect(&:to_s)).to eq %w(paperclip_asset delete_paperclip_asset) - expect(RailsAdmin.config(FieldTest).field(:refile_asset).allowed_methods.collect(&:to_s)).to eq %w(refile_asset remove_refile_asset) + expect(RailsAdmin.config(FieldTest).field(:refile_asset).allowed_methods.collect(&:to_s)).to eq %w(refile_asset remove_refile_asset) if RUBY_VERSION >= '2.1.0' end end