leifcr-refile-mini_magick 0.2.1 → 0.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 +4 -4
- data/lib/refile/mini_magick.rb +47 -54
- data/lib/refile/mini_magick/version.rb +1 -1
- data/refile-mini_magick.gemspec +3 -3
- data/spec/refile/mini_magick_spec.rb +39 -0
- metadata +13 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7a205a530752fc9b909fa15a168a3aea6046b6c
|
4
|
+
data.tar.gz: d8d66c11ca574ed633f77d73d2a19bba3bd2e4b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 757c16cc18b7e9e0b9c512724eaf8b6cb9bd3349ff3b1ce7a45d556cc62b173391657692f63aef39c70a6e0d3a6164aa5e2e533341e6a2ca05e59d1dafd2b202
|
7
|
+
data.tar.gz: 03b68ee2bb606d5d34080b0c8bdbadca1ed8d09f7df3adcd1f418c1a3a800b3e0713946ffed8de22e1c2ebcf7decba19c1dc9847f5aa6ffaab7de49955bafdd3
|
data/lib/refile/mini_magick.rb
CHANGED
@@ -13,12 +13,11 @@ module Refile
|
|
13
13
|
# Changes the image encoding format to the given format
|
14
14
|
#
|
15
15
|
# @see http://www.imagemagick.org/script/command-line-options.php#format
|
16
|
-
# @param [
|
17
|
-
# @param [String] format
|
18
|
-
# @
|
19
|
-
|
20
|
-
|
21
|
-
processor.convert!(img, format, &block)
|
16
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
17
|
+
# @param [String] format the format to convert to
|
18
|
+
# @return [Tempfile]
|
19
|
+
def convert(pipeline, format)
|
20
|
+
pipeline.convert!(format)
|
22
21
|
end
|
23
22
|
|
24
23
|
# Resize the image to fit within the specified dimensions while retaining
|
@@ -27,13 +26,13 @@ module Refile
|
|
27
26
|
# narrower than specified in either dimension but will not be larger than
|
28
27
|
# the specified values.
|
29
28
|
#
|
30
|
-
# @param [
|
31
|
-
# @param [#to_s] width
|
32
|
-
# @param [#to_s] height
|
33
|
-
# @yield [MiniMagick::Tool::
|
34
|
-
# @return [
|
35
|
-
def limit(
|
36
|
-
|
29
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
30
|
+
# @param [#to_s] width the maximum width
|
31
|
+
# @param [#to_s] height the maximum height
|
32
|
+
# @yield [MiniMagick::Tool::Convert]
|
33
|
+
# @return [Tempfile]
|
34
|
+
def limit(pipeline, width, height)
|
35
|
+
pipeline.resize_to_limit!(width || "!", height || "!")
|
37
36
|
end
|
38
37
|
|
39
38
|
# Resize the image to fit within the specified dimensions while retaining
|
@@ -41,13 +40,12 @@ module Refile
|
|
41
40
|
# specified in the smaller dimension but will not be larger than the
|
42
41
|
# specified values.
|
43
42
|
#
|
44
|
-
# @param [
|
45
|
-
# @param [#to_s] width
|
46
|
-
# @param [#to_s] height
|
47
|
-
# @
|
48
|
-
|
49
|
-
|
50
|
-
processor.resize_to_fit!(img, width, height, &block)
|
43
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
44
|
+
# @param [#to_s] width the width to fit into
|
45
|
+
# @param [#to_s] height the height to fit into
|
46
|
+
# @return [Tempfile]
|
47
|
+
def fit(pipeline, width, height)
|
48
|
+
pipeline.resize_to_fit!(width, height)
|
51
49
|
end
|
52
50
|
|
53
51
|
# Resize the image so that it is at least as large in both dimensions as
|
@@ -59,15 +57,14 @@ module Refile
|
|
59
57
|
# By default, the center part of the image is kept, and the remainder
|
60
58
|
# cropped off, but this can be changed via the `gravity` option.
|
61
59
|
#
|
62
|
-
# @param [
|
63
|
-
# @param [#to_s] width
|
64
|
-
# @param [#to_s] height
|
65
|
-
# @param [String] gravity
|
66
|
-
# @
|
67
|
-
# @return [File, Tempfile]
|
60
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
61
|
+
# @param [#to_s] width the width to fill out
|
62
|
+
# @param [#to_s] height the height to fill out
|
63
|
+
# @param [String] gravity which part of the image to focus on
|
64
|
+
# @return [Tempfile]
|
68
65
|
# @see http://www.imagemagick.org/script/command-line-options.php#gravity
|
69
|
-
def fill(
|
70
|
-
|
66
|
+
def fill(pipeline, width, height, gravity = "Center")
|
67
|
+
pipeline.resize_to_fill!(width, height, gravity: gravity)
|
71
68
|
end
|
72
69
|
|
73
70
|
# Resize the image to fit within the specified dimensions while retaining
|
@@ -82,17 +79,16 @@ module Refile
|
|
82
79
|
# By default, the image will be placed in the center but this can be
|
83
80
|
# changed via the `gravity` option.
|
84
81
|
#
|
85
|
-
# @param [
|
86
|
-
# @param [#to_s] width
|
87
|
-
# @param [#to_s] height
|
88
|
-
# @param [string] background
|
89
|
-
# @param [string] gravity
|
90
|
-
# @
|
91
|
-
# @return [File, Tempfile]
|
82
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
83
|
+
# @param [#to_s] width the width to fill out
|
84
|
+
# @param [#to_s] height the height to fill out
|
85
|
+
# @param [string] background the color to use as a background
|
86
|
+
# @param [string] gravity which part of the image to focus on
|
87
|
+
# @return [Tempfile]
|
92
88
|
# @see http://www.imagemagick.org/script/color.php
|
93
89
|
# @see http://www.imagemagick.org/script/command-line-options.php#gravity
|
94
|
-
def pad(
|
95
|
-
|
90
|
+
def pad(pipeline, width, height, background = "transparent", gravity = "Center")
|
91
|
+
pipeline.resize_and_pad!(width, height, gravity: gravity, background: background)
|
96
92
|
end
|
97
93
|
|
98
94
|
# Resample the image to fit within the specified resolution while retaining
|
@@ -101,14 +97,13 @@ module Refile
|
|
101
97
|
# The resulting image will always be the same pixel size as the source with
|
102
98
|
# an adjusted resolution dimensions.
|
103
99
|
#
|
104
|
-
# @param [
|
105
|
-
# @param [#to_s] width
|
106
|
-
# @param [#to_s] height
|
107
|
-
# @
|
108
|
-
# @return [File, Tempfile]
|
100
|
+
# @param [ImageProcesing::Pipeline] pipeline processing pipeline to call
|
101
|
+
# @param [#to_s] width the dpi width
|
102
|
+
# @param [#to_s] height the dpi height
|
103
|
+
# @return [Tempfile]
|
109
104
|
# @see http://www.imagemagick.org/script/command-line-options.php#resample
|
110
|
-
def resample(
|
111
|
-
|
105
|
+
def resample(pipeline, width, height)
|
106
|
+
pipeline.resample!("#{width}x#{height}")
|
112
107
|
end
|
113
108
|
|
114
109
|
# Process the given file. The file will be processed via one of the
|
@@ -117,18 +112,16 @@ module Refile
|
|
117
112
|
#
|
118
113
|
# If the format is given it will convert the image to the given file format.
|
119
114
|
#
|
120
|
-
# @param [
|
121
|
-
# @param [String] format
|
122
|
-
# @
|
115
|
+
# @param [File] file the file to manipulate
|
116
|
+
# @param [String] format the file format to convert to
|
117
|
+
# @yield [MiniMagick::Tool::Convert]
|
118
|
+
# @return [Tempfile] the processed file
|
123
119
|
def call(file, *args, format: nil, &block)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
private
|
120
|
+
pipeline = ImageProcessing::MiniMagick.source(file)
|
121
|
+
pipeline = pipeline.convert(format) if format
|
122
|
+
pipeline = pipeline.custom(&block)
|
129
123
|
|
130
|
-
|
131
|
-
ImageProcessing::MiniMagick
|
124
|
+
send(@method, pipeline, *args)
|
132
125
|
end
|
133
126
|
end
|
134
127
|
end
|
data/refile-mini_magick.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "refile", "~> 0.
|
21
|
-
spec.add_dependency "image_processing", "
|
22
|
-
spec.add_dependency "mini_magick", "
|
20
|
+
spec.add_dependency "refile", "~> 0.6"
|
21
|
+
spec.add_dependency "image_processing", "~> 1.1"
|
22
|
+
spec.add_dependency "mini_magick", "~> 4.0"
|
23
23
|
end
|
@@ -38,6 +38,45 @@ RSpec.describe Refile::MiniMagick do
|
|
38
38
|
expect { |b| Refile::MiniMagick.new(:limit).call(portrait, "400", "400", &b) }
|
39
39
|
.to yield_with_args(MiniMagick::Tool)
|
40
40
|
end
|
41
|
+
|
42
|
+
context "when width or height is nil" do
|
43
|
+
it "resizes the image up to only a width limit" do
|
44
|
+
file = Refile::MiniMagick.new(:limit).call(portrait, "400", nil)
|
45
|
+
result = ::MiniMagick::Image.new(file.path)
|
46
|
+
expect(result.width).to eq(400)
|
47
|
+
expect(result.height).to eq(800)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "resizes the image up to only a height limit" do
|
51
|
+
file = Refile::MiniMagick.new(:limit).call(portrait, nil, "400")
|
52
|
+
result = ::MiniMagick::Image.new(file.path)
|
53
|
+
expect(result.width).to eq(600)
|
54
|
+
expect(result.height).to eq(400)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context "when use '!' to limit a exact width or height" do
|
59
|
+
it "resizes the image up to only a width limit" do
|
60
|
+
file = Refile::MiniMagick.new(:limit).call(portrait, "400", "800!")
|
61
|
+
result = ::MiniMagick::Image.new(file.path)
|
62
|
+
expect(result.width).to eq(400)
|
63
|
+
expect(result.height).to eq(800)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "resizes the image up to only a height limit" do
|
67
|
+
file = Refile::MiniMagick.new(:limit).call(portrait, "600!", "400")
|
68
|
+
result = ::MiniMagick::Image.new(file.path)
|
69
|
+
expect(result.width).to eq(600)
|
70
|
+
expect(result.height).to eq(400)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "resizes the image but it doesn't go beyong the image dimensions" do
|
74
|
+
file = Refile::MiniMagick.new(:limit).call(portrait, "300", "1000!")
|
75
|
+
result = ::MiniMagick::Image.new(file.path)
|
76
|
+
expect(result.width).to eq(300)
|
77
|
+
expect(result.height).to eq(800)
|
78
|
+
end
|
79
|
+
end
|
41
80
|
end
|
42
81
|
|
43
82
|
describe "#fit" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leifcr-refile-mini_magick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Nicklas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: refile
|
@@ -16,48 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: image_processing
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.4.1
|
34
|
-
- - "<"
|
31
|
+
- - "~>"
|
35
32
|
- !ruby/object:Gem::Version
|
36
|
-
version: '1.
|
33
|
+
version: '1.1'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
|
-
- - "
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 0.4.1
|
44
|
-
- - "<"
|
38
|
+
- - "~>"
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
40
|
+
version: '1.1'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: mini_magick
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
|
-
- - "
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 4.
|
47
|
+
version: '4.0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
|
-
- - "
|
52
|
+
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 4.
|
54
|
+
version: '4.0'
|
61
55
|
description:
|
62
56
|
email:
|
63
57
|
- jonas.nicklas@gmail.com
|
@@ -96,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
90
|
version: '0'
|
97
91
|
requirements: []
|
98
92
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.6.
|
93
|
+
rubygems_version: 2.6.14
|
100
94
|
signing_key:
|
101
95
|
specification_version: 4
|
102
96
|
summary: Image processing via MiniMagick for Refile
|