Module: Vips::Process::ClassMethods

Defined in:
lib/vips-process.rb

Instance Method Summary collapse

Instance Method Details

#version(name, deps = [], &block) ⇒ Object

Define a version

Parameters:

  • name

    String the version’s name

  • deps (defaults to: [])

    the version’s dependencies, it’s a list of version names

  • &block

    block if you send a block to it



86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/vips-process.rb', line 86

def version(name, deps = [], &block)
  throw :need_block_or_deps unless block_given? || !deps.empty?

  @@_versions ||= {}
  @@_versions[name] = {deps: deps, block: block}

  define_method "#{name}_version" do |new_dst=nil|
    @dst = new_dst if new_dst
    @@_versions[name][:deps].each { |dep| instance_eval &@@_versions[dep][:block] }
    instance_eval &@@_versions[name][:block]
    process!
  end
end