Sha256: 7caf60c063754e46a87b1247b1ef0afabece7a8b007fd069cde2d5b47c46a48c
Contents?: true
Size: 669 Bytes
Versions: 2
Compression:
Stored size: 669 Bytes
Contents
module ImageProcessing class Processor def self.accumulator(name, klass) define_method(name) { @accumulator } protected(name) const_set(:ACCUMULATOR_CLASS, klass) end def self.apply_operation(accumulator, name, *args, &block) if (instance_methods - Object.instance_methods).include?(name) instance = new(accumulator) instance.public_send(name, *args, &block) else accumulator.send(name, *args, &block) end end def initialize(accumulator = nil) @accumulator = accumulator end def custom(&block) (block && block.call(@accumulator)) || @accumulator end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
image_processing-1.6.0 | lib/image_processing/processor.rb |
image_processing-1.5.0 | lib/image_processing/processor.rb |