lib/image_processing/chainable.rb in image_processing-1.4.0 vs lib/image_processing/chainable.rb in image_processing-1.5.0
- old
+ new
@@ -14,14 +14,10 @@
def saver(**options)
branch saver: options
end
- def custom(&block)
- operation :custom, block
- end
-
def apply(operations)
operations.inject(self) do |builder, (name, argument)|
if argument == true || argument == nil
builder.send(name)
elsif argument.is_a?(Array)
@@ -30,19 +26,19 @@
builder.send(name, argument)
end
end
end
- def method_missing(name, *args)
+ def method_missing(name, *args, &block)
return super if name.to_s.end_with?("?")
- return send(name.to_s.chomp("!"), *args).call if name.to_s.end_with?("!")
+ return send(name.to_s.chomp("!"), *args, &block).call if name.to_s.end_with?("!")
- operation name, *args
+ operation(name, *args, &block)
end
- def operation(name, *args)
- branch operations: [[name, args]]
+ def operation(name, *args, &block)
+ branch operations: [[name, args, *block]]
end
def call(file = nil, destination: nil, **call_options)
options = {}
options = options.merge(source: file) if file
@@ -55,23 +51,23 @@
options = respond_to?(:options) ? self.options : DEFAULT_OPTIONS
options = options.merge(loader: options[:loader].merge(loader)) if loader
options = options.merge(saver: options[:saver].merge(saver)) if saver
options = options.merge(operations: options[:operations] + operations) if operations
- options = options.merge(processor_class: self::Processor) unless self.is_a?(Builder)
+ options = options.merge(processor: self::Processor) unless self.is_a?(Builder)
options = options.merge(other_options)
options.freeze
Builder.new(options)
end
DEFAULT_OPTIONS = {
- source: nil,
- loader: {},
- saver: {},
- format: nil,
- operations: [],
- processor_class: nil,
+ source: nil,
+ loader: {},
+ saver: {},
+ format: nil,
+ operations: [],
+ processor: nil,
}.freeze
end
end