Sha256: 4812b8eb6303ea906e7f724a898df2229d4d4fa47f0af4f73d087bef5566c954

Contents?: true

Size: 1020 Bytes

Versions: 1

Compression:

Stored size: 1020 Bytes

Contents

require 'chaussettes/common_options'

module Chaussettes

  # Represents the output of an operation
  class Output
    include CommonOptions

    def initialize(dest = nil, device: nil)
      @dest = _translate_dest(dest) ||
              _translate_device(device) ||
              raise(ArgumentError, 'unsupported dest/device')

      @arguments = []
    end

    def _translate_dest(dest)
      dest ? dest.to_s : nil
    end

    def _translate_device(device)
      if device == :pipe
        '--sox-pipe'
      elsif device == :default
        '--default-device'
      elsif device.nil? || device == :null
        '--null'
      elsif device == :stdout
        '-'
      end
    end

    def commands
      [ *@arguments, @dest ]
    end

    def add_comment(text)
      @arguments << '--add-comment' << text
      self
    end

    def comment(text)
      @arguments << '--comment' << text
      self
    end

    def compression(factor)
      @arguments << '--compression' << factor
      self
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chaussettes-1.0.0 lib/chaussettes/output.rb