Commit d97a6c6f by Tute Costa

Merge pull request #1976 from thoughtbot/add-rails-master-appraisals

Add Rails master appraisals in preparation for Rails 5
parents 65ef0d34 799845ec
rvm:
- 2.1
- 2.2
- 2.2.2
script: "bundle exec rake clean spec cucumber"
gemfile:
- gemfiles/4.2.awsv2.1.gemfile
- gemfiles/4.2.awsv2.0.gemfile
- gemfiles/4.2.awsv2.1.gemfile
- gemfiles/5.0.awsv2.0.gemfile
- gemfiles/5.0.awsv2.1.gemfile
matrix:
fast_finish: true
exclude:
- gemfile: gemfiles/5.0.awsv2.0.gemfile
rvm: 2.0
- gemfile: gemfiles/5.0.awsv2.1.gemfile
rvm: 2.0
- gemfile: gemfiles/5.0.awsv2.0.gemfile
rvm: 2.1
- gemfile: gemfiles/5.0.awsv2.1.gemfile
rvm: 2.1
sudo: false
cache: bundler
appraise "4.2.awsv2.0" do
gem "rails", "~> 4.2.0"
gem "aws-sdk", "~> 2.0.0"
end
appraise "4.2.awsv2.1" do
gem "rails", "~> 4.2.0"
gem "aws-sdk", "~> 2.1.0"
......@@ -7,11 +12,16 @@ appraise "4.2.awsv2.1" do
end
end
appraise "4.2.awsv2.0" do
gem "rails", "~> 4.2.0"
appraise "5.0.awsv2.0" do
gem "rails", "5.0.0.beta3"
gem "aws-sdk", "~> 2.0.0"
group :development, :test do
gem 'mime-types', '>= 1.16', '< 4'
end
end
appraise "5.0.awsv2.1" do
gem "rails", "5.0.0.beta3"
gem "aws-sdk", "~> 2.1.0"
end
Paperclip
=========
## Documentation valid for `master` branch
Please check the documentation for the paperclip version you are using:
https://github.com/thoughtbot/paperclip/releases
---
[![Build Status](https://secure.travis-ci.org/thoughtbot/paperclip.svg?branch=master)](http://travis-ci.org/thoughtbot/paperclip)
[![Dependency Status](https://gemnasium.com/thoughtbot/paperclip.svg?travis)](https://gemnasium.com/thoughtbot/paperclip)
[![Code Climate](https://codeclimate.com/github/thoughtbot/paperclip.svg)](https://codeclimate.com/github/thoughtbot/paperclip)
......@@ -71,9 +78,8 @@ Requirements
### Ruby and Rails
Paperclip now requires Ruby version **>= 2.0.0** and Rails version **3.2, >= 4.1** (Only if you're going to use Paperclip with Ruby on Rails.)
If you're still on Ruby 1.8.7 or Ruby on Rails 2.3.x, you can still use Paperclip 2.7.x with your project. Also, everything in this README might not apply to your version of Paperclip, and you should read [the README for version 2.7](http://www.rubydoc.info/gems/paperclip/2.7.0) instead.
Paperclip now requires Ruby version **>= 2.1** and Rails version **>= 4.2**
(only if you're going to use Paperclip with Ruby on Rails.)
### Image Processor
......@@ -100,7 +106,7 @@ to install GhostScript. On Mac OS X, you can also install that using Homebrew:
brew install gs
If you're on Ubuntu (or any Debian base Linux distribution), you'll want to run
If you are on Ubuntu (or any Debian base Linux distribution), you'll want to run
the following with apt-get:
sudo apt-get install imagemagick -y
......@@ -153,7 +159,7 @@ Paperclip is distributed as a gem, which is how it should be used in your app.
Include the gem in your Gemfile:
```ruby
gem "paperclip", "~> 4.3"
gem "paperclip", "~> 5.0"
```
Or, if you want to get the latest, you can get master from the main paperclip repository:
......
......@@ -2,16 +2,16 @@
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", platforms: :ruby
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "pry"
gem "rails", "~> 4.2.0"
gem "aws-sdk", "~> 2.0.0"
group :development, :test do
gem "activerecord-import"
gem "mime-types", ">= 1.16", "< 4"
gem "mime-types"
gem "builder"
gem "rubocop", :require => false
end
gemspec path: "../"
gemspec :path => "../"
......@@ -2,7 +2,7 @@
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", platforms: :ruby
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "pry"
gem "rails", "~> 4.2.0"
gem "aws-sdk", "~> 2.1.0"
......@@ -14,4 +14,4 @@ group :development, :test do
gem "rubocop", :require => false
end
gemspec path: "../"
gemspec :path => "../"
# This file was generated by Appraisal
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "jruby-openssl", :platforms => :jruby
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
gem "rubysl", :platforms => :rbx
gem "racc", :platforms => :rbx
gem "pry"
gem "rails", "~> 4.2.0"
gem "aws-sdk", "~> 2.0"
group :development, :test do
gem "mime-types", "~> 1.16"
gem "builder"
gem "rubocop", :require => false
end
gemspec :path => "../"
# This file was generated by Appraisal
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "pry"
gem "rails", "5.0.0.beta3"
gem "aws-sdk", "~> 2.0.0"
group :development, :test do
gem "activerecord-import"
gem "mime-types", ">= 1.16", "< 4"
gem "builder"
gem "rubocop", :require => false
end
gemspec :path => "../"
# This file was generated by Appraisal
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "pry"
gem "rails", "5.0.0.beta3"
gem "aws-sdk", "~> 2.1.0"
group :development, :test do
gem "activerecord-import"
gem "mime-types"
gem "builder"
gem "rubocop", :require => false
end
gemspec :path => "../"
# This file was generated by Appraisal
source "https://rubygems.org"
gem "sqlite3", "~> 1.3.8", :platforms => :ruby
gem "jruby-openssl", :platforms => :jruby
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
gem "rubysl", :platforms => :rbx
gem "racc", :platforms => :rbx
gem "pry"
gem "rails", :github => "rails/rails"
gem "sprockets-rails", :github => "rails/sprockets-rails"
gem "sprockets", :github => "rails/sprockets"
gem "sass-rails", :github => "rails/sass-rails"
gem "arel", :github => "rails/arel"
gem "rack", :github => "rack/rack"
gem "aws-sdk", "~> 2.0"
group :development, :test do
gem "mime-types", "~> 1.16"
gem "builder"
gem "rubocop", :require => false
end
gemspec :path => "../"
......@@ -501,7 +501,7 @@ module Paperclip
instance.run_paperclip_callbacks(:post_process) do
instance.run_paperclip_callbacks(:"#{name}_post_process") do
unless @options[:check_validity_before_processing] && instance.errors.any?
if !@options[:check_validity_before_processing] || !instance.errors.any?
post_process_styles(*style_args)
end
end
......
......@@ -7,7 +7,7 @@ module Paperclip
module Defining
def define_paperclip_callbacks(*callbacks)
define_callbacks(*[callbacks, {:terminator => callback_terminator}].flatten)
define_callbacks(*[callbacks, { terminator: hasta_la_vista_baby }].flatten)
callbacks.each do |callback|
eval <<-end_callbacks
def before_#{callback}(*args, &blk)
......@@ -22,11 +22,13 @@ module Paperclip
private
def callback_terminator
if ::ActiveSupport::VERSION::STRING >= '4.1'
lambda { |target, result| result == false }
def hasta_la_vista_baby
lambda do |_, result|
if result.respond_to?(:call)
result.call == false
else
'result == false'
result == false
end
end
end
end
......
......@@ -64,12 +64,11 @@ describe Paperclip::Validators do
assert_raises(RuntimeError){ dummy.valid? }
end
it 'allows you to attach a file that does not violates these validations' do
it 'allows you to attach a file that does not violate these validations' do
dummy = Dummy.new(avatar: File.new(fixture_file('rotated.jpg')))
expect(dummy.errors.keys).to match_array []
expect(dummy.errors.full_messages).to be_empty
assert dummy.valid?
end
end
context "using the helper with a conditional" do
......
......@@ -36,6 +36,7 @@ RSpec.configure do |config|
config.include Assertions
config.include ModelReconstruction
config.include TestData
config.include Reporting
config.extend VersionHelper
config.mock_framework = :mocha
config.before(:all) do
......
......@@ -10,7 +10,15 @@ module ModelReconstruction
klass.reset_column_information
klass.connection_pool.clear_table_cache!(klass.table_name) if klass.connection_pool.respond_to?(:clear_table_cache!)
klass.connection.schema_cache.clear_table_cache!(klass.table_name) if klass.connection.respond_to?(:schema_cache)
if klass.connection.respond_to?(:schema_cache)
if ActiveRecord::VERSION::STRING >= "5.0"
klass.connection.schema_cache.clear_data_source_cache!(klass.table_name)
else
klass.connection.schema_cache.clear_table_cache!(klass.table_name)
end
end
klass
end
......
module Reporting
def silence_stream(stream)
old_stream = stream.dup
stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
stream.sync = true
yield
ensure
stream.reopen(old_stream)
old_stream.close
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment