Sha256: 9726a89bda578cf9e9399d55c840f21e0ca23700fa558f82ea6aa34e5fd5b18f

Contents?: true

Size: 1017 Bytes

Versions: 3

Compression:

Stored size: 1017 Bytes

Contents

require 'thor'

module Ffmprb

  class Execution < Thor

    def self.exit_on_failure?; true; end

    class_option :debug, :type => :boolean, :default => false
    class_option :verbose, :aliases => '-v', :type => :boolean, :default => false
    class_option :quiet, :aliases => '-q', :type => :boolean, :default => false

    default_task :process

    desc :process, "Reads an ffmprb script from STDIN and carries it out. See #{GEM_GITHUB_URL}"
    def process(*ios)
      script = eval("lambda{#{STDIN.read}}")
      Ffmprb.log_level =
        if options[:debug]
          Logger::DEBUG
        elsif options[:verbose]
          Logger::INFO
        elsif options[:quiet]
          Logger::ERROR
        else
          Logger::WARN
        end
      Ffmprb.process *ios, ignore_broken_pipes: false, &script
    end

    # NOTE a hack from http://stackoverflow.com/a/23955971/714287
    def method_missing(method, *args)
      args = [:process, method.to_s] + args
      self.class.start(args)
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ffmprb-0.11.4 lib/ffmprb/execution.rb
ffmprb-0.11.3 lib/ffmprb/execution.rb
ffmprb-0.11.2 lib/ffmprb/execution.rb