paperclip-vips 1.1.0 → 1.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25b4601f012a9e1916a415fb83af8ea29e4f5d0a1a961bdd2a8780fb9eb09891
4
- data.tar.gz: 07e04b8e2b8de1bdef06679ccfd759a1e13d88ad7c5a739710c9903e857297e4
3
+ metadata.gz: 7ae2f6d67f0b4f56d5fe0a24af01b01c424d54a16ddc0b9e7d0b8abef95e3bfe
4
+ data.tar.gz: 8db36f72a48bea6b6e071fb65daf65112a67d5bf46d641f45c9bb2538a25aa82
5
5
  SHA512:
6
- metadata.gz: 78c286fd9428cee69a9c9e87edf2808e45eebd611f1e87e2cb48bb0f554548d82c1ddfd78dcaffc6de621cae4095bbdf257327cf0dc7330dc741169f36d2d16e
7
- data.tar.gz: 8e1349c141065d91940c6ef4b504ea9bfd8e11dcf139f73b92304e9f8ca55436e43346bc8301e24f1d63a00e34590b48a881d799ce4740d0bf8e27808204f2fe
6
+ metadata.gz: 1a9b022534d9463681394514795cc6966d85798c0c28da2fae5dc4f7f9f2d3d8ab6341c6f99fcd80c745413b7e85edf39105b45819e271b375420d32b4d4c388
7
+ data.tar.gz: 0d282b14f4ca78798509ef4ddfee89803cca46647e99c0c893879b4ae66a8603adb565d3557c64657d773a0374ea1dd3205dab73c54a22b364492bcf26f9f35d
data/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ ## [1.2.2] - 2022-04-13
2
+
3
+ - Add support for `auto_orient` option
4
+
5
+ ## [1.2.1] - 2022-01-31
6
+
7
+ - Update dev dependencies
8
+
9
+ ## [1.2.0] - 2022-01-31
10
+
11
+ - Update ruby-vips and dependencies
12
+
13
+ ## [1.1.0] - 2019-06-06
14
+
15
+ - Check paperclip filename to get file format
16
+
17
+ ## [1.0.0] - 2019-05-31
18
+
19
+ - Setup the initial project and base components.
data/Gemfile.lock CHANGED
@@ -1,59 +1,65 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paperclip-vips (1.1.0)
4
+ paperclip-vips (1.2.2)
5
5
  paperclip (>= 5.0.0)
6
- ruby-vips (~> 2.0.13)
6
+ ruby-vips (~> 2.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (5.2.3)
12
- activesupport (= 5.2.3)
13
- activesupport (5.2.3)
11
+ activemodel (6.1.4.4)
12
+ activesupport (= 6.1.4.4)
13
+ activesupport (6.1.4.4)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (>= 0.7, < 2)
16
- minitest (~> 5.1)
17
- tzinfo (~> 1.1)
18
- byebug (11.0.1)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
19
+ byebug (11.1.3)
19
20
  climate_control (0.2.0)
20
- concurrent-ruby (1.1.5)
21
- diff-lcs (1.3)
22
- ffi (1.11.1)
23
- i18n (1.6.0)
21
+ concurrent-ruby (1.1.9)
22
+ diff-lcs (1.5.0)
23
+ ffi (1.15.5)
24
+ i18n (1.9.1)
24
25
  concurrent-ruby (~> 1.0)
25
- mime-types (3.2.2)
26
+ mime-types (3.4.1)
26
27
  mime-types-data (~> 3.2015)
27
- mime-types-data (3.2019.0331)
28
- mimemagic (0.3.3)
29
- minitest (5.11.3)
28
+ mime-types-data (3.2022.0105)
29
+ mimemagic (0.3.10)
30
+ nokogiri (~> 1)
31
+ rake
32
+ minitest (5.15.0)
33
+ nokogiri (1.12.5)
34
+ racc (~> 1.4)
30
35
  paperclip (6.1.0)
31
36
  activemodel (>= 4.2.0)
32
37
  activesupport (>= 4.2.0)
33
38
  mime-types
34
39
  mimemagic (~> 0.3.0)
35
40
  terrapin (~> 0.6.0)
36
- rake (10.5.0)
37
- rspec (3.8.0)
38
- rspec-core (~> 3.8.0)
39
- rspec-expectations (~> 3.8.0)
40
- rspec-mocks (~> 3.8.0)
41
- rspec-core (3.8.0)
42
- rspec-support (~> 3.8.0)
43
- rspec-expectations (3.8.3)
41
+ racc (1.6.0)
42
+ rake (13.0.6)
43
+ rspec (3.10.0)
44
+ rspec-core (~> 3.10.0)
45
+ rspec-expectations (~> 3.10.0)
46
+ rspec-mocks (~> 3.10.0)
47
+ rspec-core (3.10.2)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-expectations (3.10.2)
44
50
  diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.8.0)
46
- rspec-mocks (3.8.0)
51
+ rspec-support (~> 3.10.0)
52
+ rspec-mocks (3.10.3)
47
53
  diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-support (3.8.0)
50
- ruby-vips (2.0.13)
51
- ffi (~> 1.9)
54
+ rspec-support (~> 3.10.0)
55
+ rspec-support (3.10.3)
56
+ ruby-vips (2.1.4)
57
+ ffi (~> 1.12)
52
58
  terrapin (0.6.0)
53
59
  climate_control (>= 0.0.3, < 1.0)
54
- thread_safe (0.3.6)
55
- tzinfo (1.2.5)
56
- thread_safe (~> 0.1)
60
+ tzinfo (2.0.4)
61
+ concurrent-ruby (~> 1.0)
62
+ zeitwerk (2.5.4)
57
63
 
58
64
  PLATFORMS
59
65
  ruby
@@ -62,8 +68,8 @@ DEPENDENCIES
62
68
  bundler (~> 2.0)
63
69
  byebug (~> 11.0)
64
70
  paperclip-vips!
65
- rake (~> 10.0)
71
+ rake (~> 13.0)
66
72
  rspec (~> 3.0)
67
73
 
68
74
  BUNDLED WITH
69
- 2.0.1
75
+ 2.0.2
@@ -1,7 +1,7 @@
1
1
  module Paperclip
2
2
  class Vips < Processor
3
- attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options,
4
- :source_file_options, :auto_orient
3
+ attr_accessor :auto_orient, :convert_options, :current_geometry, :format, :source_file_options,
4
+ :target_geometry, :whiny
5
5
 
6
6
  def initialize(file, options = {}, attachment = nil)
7
7
  super
@@ -11,7 +11,10 @@ module Paperclip
11
11
  @target_geometry = options.fetch(:string_geometry_parser, Geometry).parse(geometry)
12
12
  @current_geometry = options.fetch(:file_geometry_parser, Geometry).from_file(@file)
13
13
  @whiny = options.fetch(:whiny, true)
14
-
14
+
15
+ @auto_orient = options.fetch(:auto_orient, true)
16
+ @convert_options = options[:convert_options]
17
+
15
18
  @current_format = current_format(file).downcase
16
19
  @format = options[:format] || @current_format
17
20
 
@@ -67,8 +70,8 @@ module Paperclip
67
70
  end
68
71
 
69
72
  def process_convert_options(image)
70
- if image && @options[:convert_options].present?
71
- commands = JSON.parse(@options[:convert_options], symbolize_names: true)
73
+ if image
74
+ commands = parsed_convert_commands(@convert_options)
72
75
  commands.each do |cmd|
73
76
  image = ::Vips::Operation.call(cmd[:cmd], [image, *cmd[:args]], cmd[:optional] || {})
74
77
  end
@@ -77,6 +80,20 @@ module Paperclip
77
80
  return image
78
81
  end
79
82
 
83
+ def parsed_convert_commands(convert_options)
84
+ begin
85
+ commands = JSON.parse(convert_options, symbolize_names: true)
86
+ rescue
87
+ commands = []
88
+ end
89
+
90
+ if @auto_orient && commands.exclude?({ cmd: "autorot" })
91
+ commands.unshift({ cmd: "autorot" })
92
+ end
93
+
94
+ return commands
95
+ end
96
+
80
97
  def save_thumbnail(thumbnail, path)
81
98
  case @current_format
82
99
  when ".jpeg", ".jpg"
@@ -1,3 +1,3 @@
1
1
  module PaperclipVips
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -22,11 +22,11 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_runtime_dependency 'paperclip', '>= 5.0.0'
26
- spec.add_runtime_dependency "ruby-vips", "~> 2.0.13"
25
+ spec.add_runtime_dependency 'paperclip', ">= 5.0.0"
26
+ spec.add_runtime_dependency "ruby-vips", "~> 2.1"
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 2.0"
29
- spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rake", "~> 13.0"
30
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
31
  spec.add_development_dependency "byebug", "~> 11.0"
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-vips
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Greeff
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-06 00:00:00.000000000 Z
11
+ date: 2022-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: paperclip
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.0.13
33
+ version: '2.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.13
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '11.0'
97
- description:
97
+ description:
98
98
  email:
99
99
  - ken@kengreeff.com
100
100
  executables: []
@@ -104,6 +104,7 @@ files:
104
104
  - ".gitignore"
105
105
  - ".rspec"
106
106
  - ".travis.yml"
107
+ - CHANGELOG.md
107
108
  - CODE_OF_CONDUCT.md
108
109
  - Gemfile
109
110
  - Gemfile.lock
@@ -120,7 +121,7 @@ homepage: https://github.com/realhub/paperclip-vips
120
121
  licenses:
121
122
  - MIT
122
123
  metadata: {}
123
- post_install_message:
124
+ post_install_message:
124
125
  rdoc_options: []
125
126
  require_paths:
126
127
  - lib
@@ -135,9 +136,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
136
  - !ruby/object:Gem::Version
136
137
  version: '0'
137
138
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.7.6.2
140
- signing_key:
139
+ rubyforge_project:
140
+ rubygems_version: 2.7.10
141
+ signing_key:
141
142
  specification_version: 4
142
143
  summary: Uses Ruby Vips to when creating thumbnails for faster generation.
143
144
  test_files: []