module Gjman module PDF class Merger < Base class << self def do(*args) opts = args.last.is_a?(Hash) ? args.pop : {} srcs = [args].flatten default_dest = srcs[0].sub(/\.pdf$/,'-m.pdf') dest = opts.delete(:to) || default_dest work(srcs, dest, default_dest) end private def work(srcs, dest, tmp_dest) merge(srcs) File.move(tmp_dest, dest) unless dest == tmp_dest dest end end end end end