From 364dbaa8ae9486866d3042d8448d97404f45e72f Mon Sep 17 00:00:00 2001 From: Yonah Forst Date: Mon, 29 Oct 2018 15:38:33 +0100 Subject: [PATCH] accept proc as input/output value --- lib/paperclip/av/transcoder/version.rb | 2 +- .../paperclip_processors/transcoder.rb | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/paperclip/av/transcoder/version.rb b/lib/paperclip/av/transcoder/version.rb index ce319b6..4423927 100644 --- a/lib/paperclip/av/transcoder/version.rb +++ b/lib/paperclip/av/transcoder/version.rb @@ -1,7 +1,7 @@ module Paperclip module Av module Transcoder - VERSION = "0.6.4" + VERSION = "0.6.5" end end end diff --git a/lib/paperclip/paperclip_processors/transcoder.rb b/lib/paperclip/paperclip_processors/transcoder.rb index d67efea..787a529 100755 --- a/lib/paperclip/paperclip_processors/transcoder.rb +++ b/lib/paperclip/paperclip_processors/transcoder.rb @@ -17,6 +17,8 @@ def initialize file, options = {}, attachment = nil @convert_options = set_convert_options(options) + @attachment = attachment + @format = options[:format] @geometry = options[:geometry] @@ -36,7 +38,19 @@ def initialize file, options = {}, attachment = nil @convert_options[:output][:s] = format_geometry(@geometry) if @geometry.present? - attachment.instance_write(:meta, @meta) if attachment + @attachment.instance_write(:meta, @meta) if @attachment + end + + def process_param param + key = param[0] + value = param[1] + + return param if !value.is_a? Proc + + new_value = value.call(@attachment.instance) + puts "#{key} has new value: #{new_value}" + + return [ key, new_value ] if new_value.present? end # Performs the transcoding of the +file+ into a thumbnail/video. Returns the Tempfile @@ -62,12 +76,14 @@ def make if @convert_options.present? if @convert_options[:input] @convert_options[:input].each do |h| - @cli.add_input_param h + param = process_param(h) + @cli.add_input_param(param) if param.present? end end if @convert_options[:output] @convert_options[:output].each do |h| - @cli.add_output_param h + param = process_param(h) + @cli.add_output_param(param) if param.present? end end end