mini_magick 4.2.10 → 4.3.1

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.

Potentially problematic release.


This version of mini_magick might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21c28d5cb2938a6c126985b362544f64858220aa
4
- data.tar.gz: 94bdee8c2c92bc7d9e5548202397dff054bd99bc
3
+ metadata.gz: ea018518f84a24383054e66dfd339b36d004f3f0
4
+ data.tar.gz: 90b0ab0e59ce32941f9d804915ce29ddbbaa247f
5
5
  SHA512:
6
- metadata.gz: 907e11e72c97a02dcc8eaeb80d8c1bdee96561c8ae0134a14a2c00b4385e2dd6b1d9526dead4f523b4df219fe78c09fc1472609e87983a6d0b3d674aa21f8033
7
- data.tar.gz: d7f00b1e55cd0e5ab4abfaccd62fa220a34adbc03556a5b92626aa68dc41bd4c3dd61ac1fd0e7a4664a6e6e70971e95227350a11700dccb1ced09914edd782b7
6
+ metadata.gz: 12c91ebcb9b87f12a9ee2b55e3857d8b75ef840a5c941ea36cb284c949f026f819b2aeabdcf4172f22a9f656a7db9536ac5223bb7caaa0ce120d100bf0120c0d
7
+ data.tar.gz: 537dd43b9e236ad805faa32a12d6d30a94c36f761719002c73a145fcf5ca35f8b5028c3e42182e396a6bab8ada521439297a34327cf07e8b2063355926fcd7d0
@@ -114,8 +114,6 @@ module MiniMagick
114
114
  "processor has to be set to either \"mogrify\" or \"gm\"" \
115
115
  ", was set to #{@processor.inspect}"
116
116
  end
117
-
118
- reload_tools
119
117
  end
120
118
 
121
119
  def cli
@@ -131,20 +129,11 @@ module MiniMagick
131
129
  def cli=(value)
132
130
  @cli = value
133
131
 
134
- case @cli
135
- when :imagemagick
136
- Utilities.which("mogrify") or
137
- raise MiniMagick::Error, "ImageMagick is not installed or CLI is not found"
138
- when :graphicsmagick
139
- Utilities.which("gm") or
140
- raise MiniMagick::Error, "GraphicsMagick is not installed or CLI is not found"
141
- else
132
+ if not [:imagemagick, :graphicsmagick].include?(@cli)
142
133
  raise ArgumentError,
143
134
  "CLI has to be set to either :imagemagick or :graphicsmagick" \
144
135
  ", was set to #{@cli.inspect}"
145
136
  end
146
-
147
- reload_tools
148
137
  end
149
138
 
150
139
  def cli_path
@@ -155,8 +144,9 @@ module MiniMagick
155
144
  @logger || MiniMagick::Logger.new($stdout)
156
145
  end
157
146
 
147
+ # Backwards compatibility
158
148
  def reload_tools
159
- MiniMagick::Tool::OptionMethods.instances.each(&:reload_methods)
149
+ warn "[MiniMagick] MiniMagick.reload_tools is deprecated because it is no longer necessary"
160
150
  end
161
151
 
162
152
  end
@@ -121,7 +121,7 @@ module MiniMagick
121
121
  #
122
122
  def self.attribute(name, key = name.to_s)
123
123
  define_method(name) do |*args|
124
- if args.any? && MiniMagick::Tool::Mogrify.instance_methods.include?(name)
124
+ if args.any? && name != :resolution
125
125
  mogrify { |b| b.send(name, *args) }
126
126
  else
127
127
  @info[key, *args]
@@ -387,16 +387,12 @@ module MiniMagick
387
387
  #
388
388
  def method_missing(name, *args)
389
389
  mogrify do |builder|
390
- if builder.respond_to?(name)
391
- builder.send(name, *args)
392
- else
393
- super
394
- end
390
+ builder.send(name, *args)
395
391
  end
396
392
  end
397
393
 
398
394
  def respond_to_missing?(method_name, include_private = false)
399
- MiniMagick::Tool::Mogrify.new.respond_to?(method_name, include_private)
395
+ true
400
396
  end
401
397
 
402
398
  ##
@@ -103,6 +103,7 @@ module MiniMagick
103
103
  details_string = identify(&:verbose)
104
104
  key_stack = []
105
105
  details_string.lines.to_a[1..-1].each_with_object({}) do |line, details_hash|
106
+ next if line.strip.length.zero?
106
107
  level = line[/^\s*/].length / 2 - 1
107
108
  key_stack.pop until key_stack.size <= level
108
109
 
@@ -15,11 +15,10 @@ module MiniMagick
15
15
  #
16
16
  class Tool
17
17
 
18
- # @private
19
- def self.inherited(child)
20
- child_name = child.name.split("::").last.downcase
21
- child.send :include, MiniMagick::Tool::OptionMethods.new(child_name)
22
- end
18
+ CREATION_OPERATORS = %w[
19
+ xc canvas logo rose gradient radial-gradient plasma tile pattern label
20
+ caption text
21
+ ]
23
22
 
24
23
  ##
25
24
  # Aside from classic instantiation, it also accepts a block, and then
@@ -173,89 +172,36 @@ module MiniMagick
173
172
  end
174
173
 
175
174
  ##
176
- # Dynamically generates modules with dynamically generated option methods
177
- # for each command-line tool. It uses the `-help` page of a command-line
178
- # tool and generates methods from it. It then includes the generated
179
- # module into the tool class.
175
+ # Define creator operator methods
180
176
  #
181
- # @private
177
+ # mogrify = MiniMagick::Tool.new("mogrify")
178
+ # mogrify.canvas("khaki")
179
+ # mogrify.command.join(" ") #=> "mogrify canvas:khaki"
182
180
  #
183
- class OptionMethods < Module # think about it for a minute
184
-
185
- def self.instances
186
- @instances ||= []
187
- end
188
-
189
- def initialize(tool_name)
190
- @tool_name = tool_name
191
- reload_methods
192
- self.class.instances << self
193
- end
194
-
195
- def to_s
196
- "OptionMethods(#{@tool_name})"
197
- end
198
-
199
- ##
200
- # Dynamically generates operator methods from the "-help" page.
201
- #
202
- def reload_methods
203
- instance_methods(false).each { |method| undef_method(method) }
204
- creation_operator *creation_operators
205
- option *cli_options
206
- end
207
-
208
- ##
209
- # Creates method based on command-line option's name.
210
- #
211
- # mogrify = MiniMagick::Tool.new("mogrify")
212
- # mogrify.antialias
213
- # mogrify.depth(8)
214
- # mogrify.resize("500x500")
215
- # mogrify.command.join(" ")
216
- # #=> "mogrify -antialias -depth 8 -resize 500x500"
217
- #
218
- def option(*options)
219
- options.each do |option|
220
- define_method(option[1..-1].tr('-', '_')) do |*values|
221
- self << option
222
- self.merge!(values)
223
- self
224
- end
225
- end
181
+ CREATION_OPERATORS.each do |operator|
182
+ define_method(operator.gsub('-', '_')) do |value = nil|
183
+ self << "#{operator}:#{value}"
184
+ self
226
185
  end
186
+ end
227
187
 
228
- ##
229
- # Creates method based on creation operator's name.
230
- #
231
- # mogrify = MiniMagick::Tool.new("mogrify")
232
- # mogrify.canvas("khaki")
233
- # mogrify.command.join(" ") #=> "mogrify canvas:khaki"
234
- #
235
- def creation_operator(*operators)
236
- operators.each do |operator|
237
- define_method(operator.gsub('-', '_')) do |value = nil|
238
- self << "#{operator}:#{value}"
239
- self
240
- end
241
- end
242
- end
243
-
244
- def creation_operators
245
- %w[xc canvas logo rose gradient radial-gradient
246
- plasma tile pattern label caption text]
247
- end
248
-
249
- def cli_options
250
- tool = MiniMagick::Tool.new(@tool_name)
251
- tool << "-help"
252
- help_page = tool.call(false, stderr: false)
253
-
254
- cli_options = help_page.scan(/^\s+-[a-z\-]+/).map(&:strip)
255
- cli_options << "-gravity" if @tool_name == "mogrify" && MiniMagick.graphicsmagick?
256
- cli_options
257
- end
188
+ ##
189
+ # Any undefined method will be transformed into a CLI option
190
+ #
191
+ # mogrify = MiniMagick::Tool.new("mogrify")
192
+ # mogrify.adaptive_blur("...")
193
+ # mogrify.foo_bar
194
+ # mogrify.command.join(" ") "mogrify -adaptive-blur ... -foo-bar"
195
+ #
196
+ def method_missing(name, *args)
197
+ option = "-#{name.to_s.tr('_', '-')}"
198
+ self << option
199
+ self.merge!(args)
200
+ self
201
+ end
258
202
 
203
+ def respond_to_missing?(method_name, include_private = false)
204
+ true
259
205
  end
260
206
 
261
207
  end
@@ -8,8 +8,8 @@ module MiniMagick
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 4
11
- MINOR = 2
12
- TINY = 10
11
+ MINOR = 3
12
+ TINY = 1
13
13
  PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_magick
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.10
4
+ version: 4.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Johnson
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2015-08-08 00:00:00.000000000 Z
16
+ date: 2015-09-03 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rake