paperclip 4.2.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +1066 -0
  3. data/.rubocop.yml +1 -0
  4. data/.travis.yml +18 -15
  5. data/Appraisals +20 -12
  6. data/CONTRIBUTING.md +19 -8
  7. data/Gemfile +4 -9
  8. data/LICENSE +1 -1
  9. data/NEWS +101 -31
  10. data/README.md +243 -159
  11. data/RELEASING.md +17 -0
  12. data/Rakefile +1 -1
  13. data/UPGRADING +12 -9
  14. data/features/basic_integration.feature +8 -4
  15. data/features/migration.feature +0 -24
  16. data/features/step_definitions/attachment_steps.rb +27 -21
  17. data/features/step_definitions/html_steps.rb +2 -2
  18. data/features/step_definitions/rails_steps.rb +11 -17
  19. data/features/step_definitions/s3_steps.rb +2 -2
  20. data/features/step_definitions/web_steps.rb +1 -103
  21. data/features/support/file_helpers.rb +2 -2
  22. data/gemfiles/4.2.awsv2.0.gemfile +17 -0
  23. data/gemfiles/4.2.awsv2.1.gemfile +17 -0
  24. data/gemfiles/{4.1.gemfile → 4.2.awsv2.gemfile} +4 -3
  25. data/gemfiles/5.0.awsv2.0.gemfile +17 -0
  26. data/gemfiles/5.0.awsv2.1.gemfile +17 -0
  27. data/gemfiles/{4.2.gemfile → 5.0.awsv2.gemfile} +4 -3
  28. data/lib/paperclip/attachment.rb +19 -16
  29. data/lib/paperclip/attachment_registry.rb +3 -2
  30. data/lib/paperclip/callbacks.rb +8 -6
  31. data/lib/paperclip/content_type_detector.rb +27 -11
  32. data/lib/paperclip/errors.rb +3 -1
  33. data/lib/paperclip/file_command_content_type_detector.rb +6 -8
  34. data/lib/paperclip/geometry_parser_factory.rb +1 -1
  35. data/lib/paperclip/glue.rb +1 -1
  36. data/lib/paperclip/has_attached_file.rb +9 -2
  37. data/lib/paperclip/helpers.rb +14 -10
  38. data/lib/paperclip/interpolations/plural_cache.rb +6 -5
  39. data/lib/paperclip/interpolations.rb +18 -13
  40. data/lib/paperclip/io_adapters/abstract_adapter.rb +1 -0
  41. data/lib/paperclip/io_adapters/http_url_proxy_adapter.rb +1 -1
  42. data/lib/paperclip/io_adapters/uri_adapter.rb +3 -1
  43. data/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +4 -4
  44. data/lib/paperclip/media_type_spoof_detector.rb +2 -2
  45. data/lib/paperclip/rails_environment.rb +25 -0
  46. data/lib/paperclip/schema.rb +3 -9
  47. data/lib/paperclip/storage/fog.rb +21 -12
  48. data/lib/paperclip/storage/s3.rb +51 -50
  49. data/lib/paperclip/thumbnail.rb +2 -3
  50. data/lib/paperclip/validators/attachment_size_validator.rb +1 -7
  51. data/lib/paperclip/version.rb +3 -1
  52. data/lib/paperclip.rb +15 -4
  53. data/lib/tasks/paperclip.rake +17 -1
  54. data/paperclip.gemspec +18 -15
  55. data/spec/paperclip/attachment_definitions_spec.rb +1 -1
  56. data/spec/paperclip/attachment_processing_spec.rb +2 -4
  57. data/spec/paperclip/attachment_registry_spec.rb +84 -13
  58. data/spec/paperclip/attachment_spec.rb +91 -31
  59. data/spec/paperclip/content_type_detector_spec.rb +8 -1
  60. data/spec/paperclip/file_command_content_type_detector_spec.rb +0 -1
  61. data/spec/paperclip/geometry_spec.rb +1 -1
  62. data/spec/paperclip/glue_spec.rb +44 -0
  63. data/spec/paperclip/has_attached_file_spec.rb +24 -8
  64. data/spec/paperclip/integration_spec.rb +4 -3
  65. data/spec/paperclip/interpolations_spec.rb +16 -13
  66. data/spec/paperclip/io_adapters/abstract_adapter_spec.rb +2 -1
  67. data/spec/paperclip/io_adapters/file_adapter_spec.rb +4 -1
  68. data/spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb +12 -0
  69. data/spec/paperclip/io_adapters/stringio_adapter_spec.rb +4 -0
  70. data/spec/paperclip/io_adapters/uri_adapter_spec.rb +27 -0
  71. data/spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb +10 -0
  72. data/spec/paperclip/media_type_spoof_detector_spec.rb +34 -11
  73. data/spec/paperclip/paperclip_spec.rb +4 -29
  74. data/spec/paperclip/plural_cache_spec.rb +17 -16
  75. data/spec/paperclip/rails_environment_spec.rb +33 -0
  76. data/spec/paperclip/storage/fog_spec.rb +42 -3
  77. data/spec/paperclip/storage/s3_live_spec.rb +8 -4
  78. data/spec/paperclip/storage/s3_spec.rb +255 -180
  79. data/spec/paperclip/tempfile_factory_spec.rb +4 -0
  80. data/spec/paperclip/thumbnail_spec.rb +16 -0
  81. data/spec/paperclip/url_generator_spec.rb +1 -1
  82. data/spec/paperclip/validators/attachment_size_validator_spec.rb +26 -20
  83. data/spec/paperclip/validators_spec.rb +3 -3
  84. data/spec/spec_helper.rb +6 -1
  85. data/spec/support/assertions.rb +7 -0
  86. data/spec/support/fake_model.rb +4 -0
  87. data/spec/support/fixtures/empty.xlsx +0 -0
  88. data/spec/support/matchers/have_column.rb +11 -2
  89. data/spec/support/model_reconstruction.rb +9 -1
  90. data/spec/support/reporting.rb +11 -0
  91. metadata +105 -54
  92. data/RUNNING_TESTS.md +0 -4
  93. data/cucumber/paperclip_steps.rb +0 -6
  94. data/gemfiles/3.2.gemfile +0 -19
  95. data/gemfiles/4.0.gemfile +0 -19
  96. data/lib/paperclip/locales/de.yml +0 -18
  97. data/lib/paperclip/locales/es.yml +0 -18
  98. data/lib/paperclip/locales/ja.yml +0 -18
  99. data/lib/paperclip/locales/pt-BR.yml +0 -18
  100. data/lib/paperclip/locales/zh-CN.yml +0 -18
  101. data/lib/paperclip/locales/zh-HK.yml +0 -18
  102. data/lib/paperclip/locales/zh-TW.yml +0 -18
  103. data/spec/support/mock_model.rb +0 -2
  104. data/spec/support/rails_helpers.rb +0 -7
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: .hound.yml
data/.travis.yml CHANGED
@@ -1,23 +1,26 @@
1
1
  rvm:
2
- - 1.9.3
3
- - jruby-19mode
4
- - rbx-2
5
- - 2.0.0
6
- - 2.1.1
2
+ - 2.1
3
+ - 2.2.2
7
4
 
8
- install:
9
- - "travis_retry bundle install"
10
-
11
- before_script: "sudo ntpdate -ub ntp.ubuntu.com pool.ntp.org; true"
12
5
  script: "bundle exec rake clean spec cucumber"
13
6
 
14
7
  gemfile:
15
- - gemfiles/3.2.gemfile
16
- - gemfiles/4.0.gemfile
17
- - gemfiles/4.1.gemfile
8
+ - gemfiles/4.2.awsv2.0.gemfile
9
+ - gemfiles/4.2.awsv2.1.gemfile
10
+ - gemfiles/5.0.awsv2.0.gemfile
11
+ - gemfiles/5.0.awsv2.1.gemfile
18
12
 
19
13
  matrix:
20
14
  fast_finish: true
21
- allow_failures:
22
- - rvm: jruby-19mode
23
- - rvm: rbx-2
15
+ exclude:
16
+ - gemfile: gemfiles/5.0.awsv2.0.gemfile
17
+ rvm: 2.0
18
+ - gemfile: gemfiles/5.0.awsv2.1.gemfile
19
+ rvm: 2.0
20
+ - gemfile: gemfiles/5.0.awsv2.0.gemfile
21
+ rvm: 2.1
22
+ - gemfile: gemfiles/5.0.awsv2.1.gemfile
23
+ rvm: 2.1
24
+
25
+ sudo: false
26
+ cache: bundler
data/Appraisals CHANGED
@@ -1,19 +1,27 @@
1
- appraise "3.2" do
2
- gem "rails", "~> 3.2.15"
3
- gem "paperclip", :path => "../"
1
+ appraise "4.2.awsv2.0" do
2
+ gem "rails", "~> 4.2.0"
3
+ gem "aws-sdk", "~> 2.0.0"
4
4
  end
5
5
 
6
- appraise "4.0" do
7
- gem "rails", "~> 4.0.0"
8
- gem "paperclip", :path => "../"
6
+ appraise "4.2.awsv2.1" do
7
+ gem "rails", "~> 4.2.0"
8
+ gem "aws-sdk", "~> 2.1.0"
9
+
10
+ group :development, :test do
11
+ gem 'mime-types', '>= 1.16', '< 4'
12
+ end
9
13
  end
10
14
 
11
- appraise "4.1" do
12
- gem "rails", "~> 4.1.0"
13
- gem "paperclip", :path => "../"
15
+ appraise "5.0.awsv2.0" do
16
+ gem "rails", "5.0.0.beta3"
17
+ gem "aws-sdk", "~> 2.0.0"
18
+
19
+ group :development, :test do
20
+ gem 'mime-types', '>= 1.16', '< 4'
21
+ end
14
22
  end
15
23
 
16
- appraise "4.2" do
17
- gem "rails", "~> 4.2.0.rc2"
18
- gem "paperclip", :path => "../"
24
+ appraise "5.0.awsv2.1" do
25
+ gem "rails", "5.0.0.beta3"
26
+ gem "aws-sdk", "~> 2.1.0"
19
27
  end
data/CONTRIBUTING.md CHANGED
@@ -1,20 +1,31 @@
1
1
  Contributing
2
2
  ============
3
3
 
4
- We love pull requests. Here's a quick guide:
4
+ We love pull requests from everyone. By participating in this project, you agree
5
+ to abide by the thoughtbot [code of conduct].
6
+
7
+ [code of conduct]: https://thoughtbot.com/open-source-code-of-conduct
8
+
9
+ Here's a quick guide for contributing:
5
10
 
6
11
  1. Fork the repo.
7
12
 
8
- 2. Run the tests. We only take pull requests with passing tests, and it's great
9
- to know that you have a clean slate: `bundle && rake`
13
+ 1. Make sure you have ImageMagick and Ghostscript installed. See [this section]
14
+ (./README.md#image-processor) of the README.
10
15
 
11
- 3. Add a test for your change. Only refactoring and documentation changes
16
+ 1. Run the tests. We only take pull requests with passing tests, and it's great
17
+ to know that you have a clean slate: `bundle && bundle exec rake`
18
+
19
+ 1. Add a test for your change. Only refactoring and documentation changes
12
20
  require no new tests. If you are adding functionality or fixing a bug, we need
13
21
  a test!
14
22
 
15
- 4. Make the test pass.
23
+ 1. Make the test pass.
24
+
25
+ 1. Mention how your changes affect the project to other developers and users in
26
+ the `NEWS.md` file.
16
27
 
17
- 5. Push to your fork and submit a pull request.
28
+ 1. Push to your fork and submit a pull request.
18
29
 
19
30
  At this point you're waiting on us. We like to at least comment on, if not
20
31
  accept, pull requests within seven business days (most of the work on Paperclip
@@ -43,14 +54,14 @@ will be asked to rewrite them before we'll accept.
43
54
  ### Bootstrapping your test suite:
44
55
 
45
56
  bundle install
46
- bundle exec rake appraisal:install
57
+ bundle exec appraisal install
47
58
 
48
59
  This will install all the required gems that requires to test against each
49
60
  version of Rails, which defined in `gemfiles/*.gemfile`.
50
61
 
51
62
  ### To run a full test suite:
52
63
 
53
- bundle exec rake
64
+ bundle exec appraisal rake
54
65
 
55
66
  This will run RSpec and Cucumber against all version of Rails
56
67
 
data/Gemfile CHANGED
@@ -2,19 +2,14 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'sqlite3', '1.3.8', :platforms => :ruby
6
-
7
- gem 'jruby-openssl', :platforms => :jruby
8
- gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
9
-
10
- gem 'rubysl', :platforms => :rbx
11
- gem 'racc', :platforms => :rbx
12
-
5
+ gem 'sqlite3', '~> 1.3.8', :platforms => :ruby
13
6
  gem 'pry'
14
7
 
15
8
  # Hinting at development dependencies
16
9
  # Prevents bundler from taking a long-time to resolve
17
10
  group :development, :test do
18
- gem 'mime-types', '~> 1.16'
11
+ gem 'activerecord-import'
12
+ gem 'mime-types'
19
13
  gem 'builder'
14
+ gem 'rubocop', require: false
20
15
  end
data/LICENSE CHANGED
@@ -3,7 +3,7 @@ LICENSE
3
3
 
4
4
  The MIT License
5
5
 
6
- Copyright (c) 2008-2014 Jon Yurek and thoughtbot, inc.
6
+ Copyright (c) 2008-2016 Jon Yurek and thoughtbot, inc.
7
7
 
8
8
  Permission is hereby granted, free of charge, to any person obtaining a copy
9
9
  of this software and associated documentation files (the "Software"), to deal
data/NEWS CHANGED
@@ -1,8 +1,78 @@
1
- New in 4.2.2:
1
+ master:
2
+
3
+ 5.0.0 (2016-07-01):
4
+
5
+ * Improvement: Add `read_timeout` configuration for URI Adapter download_content method.
6
+ * README adjustments for Ruby beginners (add links, elucidate model in Quick Start)
7
+ * Bugfix: Now it's possible to save images from URLs with special characters [#1932]
8
+ * Bugfix: Return false when file to copy is not present in cloud storage [#2173]
9
+ * Automatically close file while checking mime type [#2016]
10
+ * Add `read_timeout` option to `UriAdapter#download_content` method [#2232]
11
+ * Fix a nil error in content type validation matcher [#1910]
12
+ * Documentation improvements
13
+
14
+ 5.0.0.beta2 (2016-04-01):
15
+
16
+ * Bugfix: Dynamic fog directory option is now respected
17
+ * Bugfix: Fixes cocaine duplicated paths [#2169]
18
+ * Removal of dead code (older versions of Rails and AWS SDK)
19
+ * README adjustments
20
+
21
+ 5.0.0.beta1 (2016-03-13):
22
+
23
+ * Bug Fix: megabytes of mime-types info in logs when a spoofed media type is detected.
24
+ * Drop support to end-of-life'd ruby 2.0.
25
+ * Drop support for end-of-life'd Rails 3.2 and 4.1
26
+ * Drop support for AWS v1
27
+ * Remove tests for JRuby and Rubinius from Travis CI (they were failing)
28
+ * Improvement: Add `fog_options` configuration to send options to fog when
29
+ storing files.
30
+ * Extracted repository for locales only: https://github.com/thoughtbot/paperclip-i18n
31
+ * Bugfix: Original file could be unlinked during `post_process_style`, producing failures
32
+ * Bugfix for image magick scaling images up
33
+ * Memory consumption improvements
34
+ * `url` on a unpersisted record returns `default_url` rather than `nil`
35
+ * Improvement: aws-sdk v2 support
36
+ https://github.com/thoughtbot/paperclip/pull/1903
37
+
38
+ If your Gemfile contains aws-sdk (>= 2.0.0) and aws-sdk-v1, paperclip will use
39
+ aws-sdk v2. With aws-sdk v2, S3 storage requires you to set the s3_region.
40
+ s3_region may be nested in s3_credentials, and (if not nested in
41
+ s3_credentials) it may be a Proc.
42
+
43
+ 4.3
44
+
45
+ See patch versions in v4.3 NEWS:
46
+ https://github.com/thoughtbot/paperclip/blob/v4.3/NEWS
47
+
48
+ 4.3.0 (2015-06-18):
49
+
50
+ * Improvement: Update aws-sdk and cucumber gem versions.
51
+ * Improvement: Add `length` alias for `size` method in AbstractAdapter.
52
+ * Improvement: Removed some cruft
53
+ * Improvement: deep_merge! Attachment definitions
54
+ * Improvement: Switch to mimemagic gem for content-type detection
55
+ * Improvement: Allows multiple content types for spoof detector
56
+ * Bug Fix: Don't assume we have Rails.env if we have Rails
57
+ * Performance: Decrease Memory footprint
58
+ * Ruby Versioning: Drop support for 1.9.3 (EOL'ed)
59
+ * Rails Versioning: Drop support for 4.0.0 (EOL'ed)
60
+
61
+ 4.2.4 (2015-06-05):
62
+
63
+ * Rollback backwards incompatible change, allowing paperclip to run on
64
+ Ruby >= 1.9.2.
65
+
66
+ 4.2.3:
67
+
68
+ * Fix dependency specifications (didn't work with Rails 4.1)
69
+ * Fix paperclip tests in CI
70
+
71
+ 4.2.2:
2
72
 
3
73
  * Security fix: Fix a potential security issue with spoofing
4
74
 
5
- New in 4.2.1:
75
+ 4.2.1:
6
76
 
7
77
  * Improvement: Added `validate_media_type` options to allow/bypass spoof check
8
78
  * Improvement: Added incremental backoff when AWS gives us a SlowDown error.
@@ -12,14 +82,14 @@ New in 4.2.1:
12
82
  * Improvement: Better escaping for characters in URLs
13
83
  * Improvement: Honor `fog_credentials[:scheme]`
14
84
  * Improvement: Also look for custom processors in lib/paperclip
15
- * Improvement: id partitioning for string IDs works liks integer id
85
+ * Improvement: id partitioning for string IDs works like integer id
16
86
  * Improvement: Can pass options to DB adapters in migrations
17
87
  * Improvement: Update expiring_url creation for later versions of fog
18
88
  * Improvement: `path` can be a Proc in S3 attachments
19
89
  * Test Fix: Improves speed and reliability of the specs
20
90
  * Bug Fix: #original_filename= does not error when passed `nil`
21
91
 
22
- New in 4.2.0:
92
+ 4.2.0:
23
93
 
24
94
  * Improvement: Converted test suite from test/unit to RSpec
25
95
  * Improvement: Refactored Paperclip::Attachment#assign
@@ -35,7 +105,7 @@ New in 4.2.0:
35
105
  * Improvement: Allow `nil` geometry strings
36
106
  * Improvement: Use `eager_load!`
37
107
 
38
- New in 4.1.1:
108
+ 4.1.1:
39
109
 
40
110
  * Improvement: Add default translations for spoof validation
41
111
  * Bug Fix: Don't check for spoofs if the file hasn't changed
@@ -46,7 +116,7 @@ New in 4.1.1:
46
116
  * Improvement: Allow travis-ci to finish-fast
47
117
 
48
118
 
49
- New in 4.1.0:
119
+ 4.1.0:
50
120
 
51
121
  * Improvement: Add :content_type_mappings to correct for missing spoof types
52
122
  * Improvement: Credit Egor Homakov with discovering the content_type spoof bug
@@ -54,7 +124,7 @@ New in 4.1.0:
54
124
  * Improvement: Make MIME type optional for Data URIs.
55
125
  * Improvement: Add default format for styles
56
126
 
57
- New in 4.0.0:
127
+ 4.0.0:
58
128
 
59
129
  * Security: Attachments are checked to make sure they're not pulling a fast one.
60
130
  * Security: It is now *enforced* that every attachment has a file/mime validation.
@@ -62,7 +132,7 @@ New in 4.0.0:
62
132
  * Improvement: Added bullets to the 3.5.3 list of changes. Very important.
63
133
  * Improvement: Updated the copyright to 2014
64
134
 
65
- New in 3.5.3:
135
+ 3.5.3:
66
136
 
67
137
  * Improvement: After three long, hard years... we know how to upgrade
68
138
  * Bug Fix: #expiring_url returns 'missing' urls if nothing is attached
@@ -84,14 +154,14 @@ New in 3.5.3:
84
154
  * Test Improvement: Ensure more files are properly closed during tests
85
155
  * Test Bug Fix: Return the gemfile's syntax to normal
86
156
 
87
- New in 3.5.2:
157
+ 3.5.2:
88
158
 
89
159
  * Security: Force cocaine to at least 0.5.3 to include a security fix
90
160
  * Improvement: Fixed some README exmaples
91
161
  * Feature: Added HTTP URL Proxy Adapter, can assign string URLs as attachments
92
162
  * Improvement: Put validation errors on the base attribute and the sub-attribute
93
163
 
94
- New in 3.5.1:
164
+ 3.5.1:
95
165
 
96
166
  * Bug Fix: Returned the class-level `attachment_definitions` method for compatability.
97
167
  * Improvement: Ensured compatability with Rails 4
@@ -99,7 +169,7 @@ New in 3.5.1:
99
169
  * Bug Fix: #1296, where validations were generating errors
100
170
  * Improvement: Specify MIT license in the gemspec
101
171
 
102
- New in 3.5.0:
172
+ 3.5.0:
103
173
 
104
174
  * Feature: Handle Base64-encoded data URIs as uploads
105
175
  * Feature: Add a FilenameCleaner class to allow custom filename sanitation
@@ -115,7 +185,7 @@ New in 3.5.0:
115
185
  * Improvement: Added Ruby 2.0.0 as a supported platform and removed 1.8.7
116
186
  * Improvement: Fixed some incompatabilities in the test suite
117
187
 
118
- New in 3.4.2:
188
+ 3.4.2:
119
189
 
120
190
  * Improvement: Use https for Gemfile urls
121
191
  * Improvement: Updated and more correct documentation
@@ -125,7 +195,7 @@ New in 3.4.2:
125
195
  * Improvement: Remove path clash checking, as it's unnecessary
126
196
  * Bug Fix: Do not rely on checking version numbers for aws-sdk
127
197
 
128
- New in 3.4.1:
198
+ 3.4.1:
129
199
 
130
200
  * Improvement: Various documentation fixes and improvements
131
201
  * Bug Fix: Clearing an attachment with `preserve_files` on should still clear the attachment
@@ -138,7 +208,7 @@ New in 3.4.1:
138
208
  * Improvement: Update to latest cocaine
139
209
  * Improvement: Update copyrights, various typos
140
210
 
141
- New in 3.4.0:
211
+ 3.4.0:
142
212
 
143
213
  * Bug Fix: Allow UploadedFileAdapter to force the use of `file`
144
214
  * Bug Fix: Close the file handle when dealing with URIs
@@ -168,11 +238,11 @@ New In 3.3.1:
168
238
 
169
239
  * Bug Fix: Moved Filesystem's copy_to_local_file to the right place.
170
240
 
171
- New in 3.3.0:
241
+ 3.3.0:
172
242
 
173
243
  * Improvement: Upgrade cocaine to 0.4
174
244
 
175
- New in 3.2.0:
245
+ 3.2.0:
176
246
 
177
247
  * Bug Fix: Use the new correct Amazon S3 encryption header.
178
248
  * Bug Fix: The rake task respects the updated_at column.
@@ -181,14 +251,14 @@ New in 3.2.0:
181
251
  * Feature: Automatically rotate images.
182
252
  * Feature: Reduce class-oriented programming of the attachment definitions.
183
253
 
184
- New in 3.1.4:
254
+ 3.1.4:
185
255
 
186
256
  * Bug Fix: Allow user to be able to set path without `:style` attribute and not raising an error.
187
257
  This is a regression introduced in 3.1.3, and that feature will be postponed to another minor
188
258
  release instead.
189
259
  * Feature: Allow for URI Adapter as an optional paperclip io adapter.
190
260
 
191
- New in 3.1.3:
261
+ 3.1.3:
192
262
 
193
263
  * Bug Fix: Copy empty attachment between instances is now working.
194
264
  * Bug Fix: Correctly rescue Fog error.
@@ -200,17 +270,17 @@ New in 3.1.3:
200
270
  * Bug Fix: Paperclip now gracefully handles msising file command.
201
271
  * Bug Fix: `StringIOAdapter` now accepts content type.
202
272
 
203
- New in 3.1.2:
273
+ 3.1.2:
204
274
 
205
275
  * Bug Fix: #remove_attachment on 3.1.0 and 3.1.1 mistakenly trying to remove the column that has
206
276
  the same name as data type (such as :string, :datetime, :interger.) You're advised to update to
207
277
  Paperclip 3.1.2 as soon as possible.
208
278
 
209
- New in 3.1.1:
279
+ 3.1.1:
210
280
 
211
281
  * Bug Fix: Paperclip will only load Paperclip::Schema only when Active Record is available.
212
282
 
213
- New in 3.1.0:
283
+ 3.1.0:
214
284
 
215
285
  * Feature: Paperclip now support new migration syntax (sexy migration) that reads better:
216
286
 
@@ -249,11 +319,11 @@ New in 3.1.0:
249
319
  the best_content_type to throw an error on trying nil.content_type.
250
320
  * Bug Fix: Fix problem when the gem cannot be installed on the system that has Asepsis installed.
251
321
 
252
- New in 3.0.4:
322
+ 3.0.4:
253
323
 
254
324
  * Feature: Adds support for S3 scheme-less URL generation.
255
325
 
256
- New in 3.0.3:
326
+ 3.0.3:
257
327
 
258
328
  * Bug Fix: ThumbnailProcessor now correctly detects and preserve animated GIF.
259
329
  * Bug Fix: File extension is now preserved in generated Tempfile from adapter.
@@ -276,7 +346,7 @@ New in 3.0.3:
276
346
  * Bug Fix: Fix attachment.reprocess! when using storage providers fog and s3.
277
347
  * Bug Fix: Fix a problem with incorrect content_type detected with 'file' command for an empty file on Mac.
278
348
 
279
- New in 3.0.2:
349
+ 3.0.2:
280
350
 
281
351
  * API CHANGE: Generated migration class name is now plural (AddAttachmentToUsers instead of AddAttachmentToUser)
282
352
  * API CHANGE: Remove Rails plugin initialization code.
@@ -285,13 +355,13 @@ New in 3.0.2:
285
355
  * Bug Fix: Fix a problem when there's no logger specified.
286
356
  * Bug Fix: Fix a problem when attaching Rack::Test::UploadedFile instance.
287
357
 
288
- New in 3.0.1:
358
+ 3.0.1:
289
359
 
290
360
  * Feature: Introduce Paperlip IO adapter.
291
361
  * Bug Fix: Regression in AttachmentContentTypeValidator has been fixed.
292
362
  * API CHANGE: #to_file has been removed. Use the #copy_to_local_file method instead.
293
363
 
294
- New in 3.0.0:
364
+ 3.0.0:
295
365
 
296
366
  * API CHANGE: Paperclip now requires at least Ruby on Rails version 3.0.0
297
367
  * API CHANGE: The default :url and :path have changed. The new scheme avoids
@@ -310,7 +380,7 @@ New in 3.0.0:
310
380
  * Bug Fix: File given to S3 and Fog storage will now be rewinded after flush_write.
311
381
  * Feature: You can now pass addional parameter to S3 expiring URL, such as :content_type.
312
382
 
313
- New in 2.7.0:
383
+ 2.7.0:
314
384
 
315
385
  * Bug Fix: Checking the existence of a file on S3 handles all AWS errors.
316
386
  * Bug Fix: Clear the fingerprint when removing an attachment.
@@ -319,25 +389,25 @@ New in 2.7.0:
319
389
  * Compatibility: Support for ActiveSupport < 2.3.12.
320
390
  * Compatibility: Support for Rails 3.2.
321
391
 
322
- New in 2.6.0:
392
+ 2.6.0:
323
393
 
324
394
  * Bug Fix: Files are re-wound after reading.
325
395
  * Feature: Remove Rails dependency from specs that need Paperclip.
326
396
  * Feature: Validation matchers support conditionals.
327
397
 
328
- New in 2.5.2:
398
+ 2.5.2:
329
399
 
330
400
  * Bug Fix: Can be installed on Windows.
331
401
  * Feature: The Fog bucket name, authentication, and host can be determined at runtime via Proc.
332
402
  * Feature: Special characters are replaced with underscores in #url and #path.
333
403
 
334
- New in 2.5.1:
404
+ 2.5.1:
335
405
 
336
406
  * Feature: After we've computed the content type, pass it to Fog.
337
407
  * Feature: S3 encryption with the new :s3_server_side_encryption option.
338
408
  * Feature: Works without ActiveRecord, allowing for e.g. mongo backends.
339
409
 
340
- New in 2.5.0:
410
+ 2.5.0:
341
411
 
342
412
  * Performance: Only connect to S3 when absolutely needed.
343
413
  * Bug Fix: STI with cached classes respect new options.