Module: MiniMagick::Configuration
- Included in:
- MiniMagick
- Defined in:
- lib/mini_magick/configuration.rb
Constant Summary collapse
- CLI_DETECTION =
{ imagemagick7: "magick", imagemagick: "mogrify", graphicsmagick: "gm", }
Instance Attribute Summary collapse
-
#cli_path ⇒ String
If you set the path of CLI tools, you can get the path of the executables.
-
#cli_prefix ⇒ String+
Adds a prefix to the CLI command.
-
#debug ⇒ Boolean
When get to ‘true`, it outputs each command to STDOUT in their shell version.
-
#logger ⇒ Logger
Logger for #debug, default is ‘MiniMagick::Logger.new(STDOUT)`, but you can override it, for example if you want the logs to be written to a file.
- #processor_path ⇒ Object
-
#shell_api ⇒ String
Instructs MiniMagick how to execute the shell commands.
-
#timeout ⇒ Integer
If you don’t want commands to take too long, you can set a timeout (in seconds).
-
#tmpdir ⇒ String
Temporary directory used by MiniMagick, default is ‘Dir.tmpdir`, but you can override it.
-
#validate_on_create ⇒ Boolean
If set to ‘true`, it will `identify` every newly created image, and raise `MiniMagick::Invalid` if the image is not valid.
-
#validate_on_write ⇒ Boolean
If set to ‘true`, it will `identify` every image that gets written (with Image#write), and raise `MiniMagick::Invalid` if the image is not valid.
-
#whiny ⇒ Boolean
If set to ‘false`, it will not raise errors when ImageMagick returns status code different than 0.
Class Method Summary collapse
Instance Method Summary collapse
-
#cli ⇒ Symbol
Get [ImageMagick](www.imagemagick.org) or [GraphicsMagick](www.graphicsmagick.org).
-
#cli=(value) ⇒ Object
Set whether you want to use [ImageMagick](www.imagemagick.org) or [GraphicsMagick](www.graphicsmagick.org).
- #configure {|self| ... } ⇒ Object
- #processor ⇒ Object
- #processor=(processor) ⇒ Object
-
#reload_tools ⇒ Object
Backwards compatibility.
Instance Attribute Details
#cli_path ⇒ String
If you set the path of CLI tools, you can get the path of the executables.
173 174 175 176 177 178 179 180 181 |
# File 'lib/mini_magick/configuration.rb', line 173 def cli_path if instance_variable_defined?("@cli_path") instance_variable_get("@cli_path") else processor_path = instance_variable_get("@processor_path") if instance_variable_defined?("@processor_path") instance_variable_set("@cli_path", processor_path) end end |
#cli_prefix ⇒ String+
Adds a prefix to the CLI command. For example, you could use ‘firejail` to run all commands in a sandbox. Can be a string, or an array of strings. e.g. ’firejail’, or [‘firejail’, ‘–force’]
24 25 26 |
# File 'lib/mini_magick/configuration.rb', line 24 def cli_prefix @cli_prefix end |
#debug ⇒ Boolean
When get to ‘true`, it outputs each command to STDOUT in their shell version.
39 40 41 |
# File 'lib/mini_magick/configuration.rb', line 39 def debug @debug end |
#logger ⇒ Logger
Logger for #debug, default is ‘MiniMagick::Logger.new(STDOUT)`, but you can override it, for example if you want the logs to be written to a file.
47 48 49 |
# File 'lib/mini_magick/configuration.rb', line 47 def logger @logger end |
#processor_path ⇒ Object
13 14 15 |
# File 'lib/mini_magick/configuration.rb', line 13 def processor_path @processor_path end |
#shell_api ⇒ String
Instructs MiniMagick how to execute the shell commands. Available APIs are “open3” (default) and “posix-spawn” (requires the “posix-spawn” gem).
89 90 91 |
# File 'lib/mini_magick/configuration.rb', line 89 def shell_api @shell_api end |
#timeout ⇒ Integer
If you don’t want commands to take too long, you can set a timeout (in seconds).
32 33 34 |
# File 'lib/mini_magick/configuration.rb', line 32 def timeout @timeout end |
#tmpdir ⇒ String
Temporary directory used by MiniMagick, default is ‘Dir.tmpdir`, but you can override it.
54 55 56 |
# File 'lib/mini_magick/configuration.rb', line 54 def tmpdir @tmpdir end |
#validate_on_create ⇒ Boolean
If set to ‘true`, it will `identify` every newly created image, and raise `MiniMagick::Invalid` if the image is not valid. Useful for validating user input, although it adds a bit of overhead. Defaults to `true`.
63 64 65 |
# File 'lib/mini_magick/configuration.rb', line 63 def validate_on_create @validate_on_create end |
#validate_on_write ⇒ Boolean
If set to ‘true`, it will `identify` every image that gets written (with Image#write), and raise `MiniMagick::Invalid` if the image is not valid. Useful for validating that processing was sucessful, although it adds a bit of overhead. Defaults to `true`.
72 73 74 |
# File 'lib/mini_magick/configuration.rb', line 72 def validate_on_write @validate_on_write end |
#whiny ⇒ Boolean
If set to ‘false`, it will not raise errors when ImageMagick returns status code different than 0. Defaults to `true`.
80 81 82 |
# File 'lib/mini_magick/configuration.rb', line 80 def whiny @whiny end |
Class Method Details
.extended(base) ⇒ Object
91 92 93 94 95 96 97 98 |
# File 'lib/mini_magick/configuration.rb', line 91 def self.extended(base) base.tmpdir = Dir.tmpdir base.validate_on_create = true base.validate_on_write = true base.whiny = true base.shell_api = "open3" base.logger = Logger.new($stdout).tap { |l| l.level = Logger::INFO } end |
Instance Method Details
#cli ⇒ Symbol
Get [ImageMagick](www.imagemagick.org) or [GraphicsMagick](www.graphicsmagick.org).
142 143 144 145 146 147 148 149 150 151 |
# File 'lib/mini_magick/configuration.rb', line 142 def cli if instance_variable_defined?("@cli") instance_variable_get("@cli") else cli = CLI_DETECTION.key(processor) or fail MiniMagick::Error, "You must have ImageMagick or GraphicsMagick installed" instance_variable_set("@cli", cli) end end |
#cli=(value) ⇒ Object
Set whether you want to use [ImageMagick](www.imagemagick.org) or [GraphicsMagick](www.graphicsmagick.org).
157 158 159 160 161 162 163 164 165 |
# File 'lib/mini_magick/configuration.rb', line 157 def cli=(value) @cli = value if not CLI_DETECTION.key?(@cli) raise ArgumentError, "CLI has to be set to either :imagemagick, :imagemagick7 or :graphicsmagick" \ ", was set to #{@cli.inspect}" end end |
#configure {|self| ... } ⇒ Object
108 109 110 |
# File 'lib/mini_magick/configuration.rb', line 108 def configure yield self end |
#processor ⇒ Object
119 120 121 122 123 |
# File 'lib/mini_magick/configuration.rb', line 119 def processor @processor ||= CLI_DETECTION.values.detect do |processor| MiniMagick::Utilities.which(processor) end end |
#processor=(processor) ⇒ Object
126 127 128 129 130 131 132 133 134 |
# File 'lib/mini_magick/configuration.rb', line 126 def processor=(processor) @processor = processor.to_s unless CLI_DETECTION.value?(@processor) raise ArgumentError, "processor has to be set to either \"magick\", \"mogrify\" or \"gm\"" \ ", was set to #{@processor.inspect}" end end |
#reload_tools ⇒ Object
Backwards compatibility
193 194 195 |
# File 'lib/mini_magick/configuration.rb', line 193 def reload_tools warn "MiniMagick.reload_tools is deprecated because it is no longer necessary" end |