kt-paperclip 7.0.1 → 7.1.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.
data/Gemfile CHANGED
@@ -12,7 +12,8 @@ group :development, :test do
12
12
  gem "builder"
13
13
  gem "listen", "~> 3.0.8"
14
14
  gem "rspec"
15
- gem "rubocop", require: false
15
+ # Hound only supports certain versions of Rubocop -- 1.22.1 is currently the most recent one supported.
16
+ gem "rubocop", "1.22.1", require: false
16
17
  gem "rubocop-rails"
17
18
  gem "sprockets", "3.7.2"
18
19
  end
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "sqlite3", "~> 1.4", platforms: :ruby
7
+ gem "aruba", "~> 1.0", ">= 1.0.4"
8
+ gem "rails", "~> 7.0.0"
9
+
10
+ group :development, :test do
11
+ gem "activerecord-import"
12
+ gem "bootsnap", require: false
13
+ gem "builder"
14
+ gem "listen", "~> 3.0.8"
15
+ gem "rspec"
16
+ gem "rubocop", require: false
17
+ gem "rubocop-rails"
18
+ gem "sprockets", "3.7.2"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -67,9 +67,13 @@ module Paperclip
67
67
  end
68
68
 
69
69
  def type_from_marcel
70
- @type_from_marcel ||= File.open(@filepath) do |file|
71
- Marcel::Magic.by_magic(file).try(:type)
72
- end
70
+ return @type_from_marcel if defined? @type_from_marcel
71
+
72
+ @type_from_marcel = Marcel::MimeType.for Pathname.new(@filepath),
73
+ name: @filepath
74
+ # Marcel::MineType returns 'application/octet-stream' if it can't find
75
+ # a valid type.
76
+ @type_from_marcel = nil if @type_from_marcel == SENSIBLE_DEFAULT
73
77
  end
74
78
 
75
79
  def type_from_file_command
@@ -35,8 +35,9 @@ module Paperclip
35
35
  options.slice(*AVAILABLE_CHECKS).each do |option, option_value|
36
36
  option_value = option_value.call(record) if option_value.is_a?(Proc)
37
37
  option_value = extract_option_value(option, option_value)
38
-
39
- unless value.send(CHECKS[option], option_value)
38
+ operator = Rails::VERSION::MAJOR >= 7 ? COMPARE_CHECKS[option] : CHECKS[option]
39
+
40
+ unless value.send(operator, option_value)
40
41
  error_message_key = options[:in] ? :in_between : option
41
42
  error_attrs.each do |error_attr_name|
42
43
  record.errors.add(error_attr_name, error_message_key, **filtered_options(value).merge(
@@ -1,3 +1,3 @@
1
1
  module Paperclip
2
- VERSION = "7.0.1" unless defined?(Paperclip::VERSION)
2
+ VERSION = "7.1.0" unless defined?(Paperclip::VERSION)
3
3
  end
@@ -7,6 +7,13 @@ describe Paperclip::ContentTypeDetector do
7
7
  Paperclip::ContentTypeDetector.new(file.path).detect
8
8
  end
9
9
 
10
+ it 'returns a more specific content type based on the filename if it matches
11
+ multiple content types' do
12
+ file = File.new(fixture_file('sample.xlsm'))
13
+ assert_equal 'application/vnd.ms-excel.sheet.macroenabled.12',
14
+ Paperclip::ContentTypeDetector.new(file.path).detect
15
+ end
16
+
10
17
  it "gives a sensible default when the name is empty" do
11
18
  assert_equal "application/octet-stream", Paperclip::ContentTypeDetector.new("").detect
12
19
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kt-paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Surendra Singhi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-06 00:00:00.000000000 Z
11
+ date: 2022-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -394,6 +394,7 @@ files:
394
394
  - gemfiles/5.2.gemfile
395
395
  - gemfiles/6.0.gemfile
396
396
  - gemfiles/6.1.gemfile
397
+ - gemfiles/7.0.gemfile
397
398
  - lib/generators/paperclip/USAGE
398
399
  - lib/generators/paperclip/paperclip_generator.rb
399
400
  - lib/generators/paperclip/templates/paperclip_migration.rb.erb
@@ -533,6 +534,7 @@ files:
533
534
  - spec/support/fixtures/fog.yml
534
535
  - spec/support/fixtures/rotated.jpg
535
536
  - spec/support/fixtures/s3.yml
537
+ - spec/support/fixtures/sample.xlsm
536
538
  - spec/support/fixtures/spaced file.jpg
537
539
  - spec/support/fixtures/spaced file.png
538
540
  - spec/support/fixtures/text.txt