Sha256: a987e32e36685f8a3543e87a188aef736ed6ce57ada67e290a4ac53c6042af14

Contents?: true

Size: 1.62 KB

Versions: 8

Compression:

Stored size: 1.62 KB

Contents

require "airbrussh/colors"
require "airbrussh/console_formatter"
require "airbrussh/log_file_formatter"

module Airbrussh
  class Configuration
    attr_accessor :log_file, :monkey_patch_rake, :color, :truncate, :banner,
                  :command_output

    def initialize
      self.log_file = nil
      self.monkey_patch_rake = false
      self.color = :auto
      self.truncate = :auto
      self.banner = :auto
      self.command_output = false
    end

    def apply_options(options)
      return self if options.nil?

      options.each do |key, value|
        if respond_to?(writer = "#{key}=")
          public_send(writer, value)
        else
          warn_unrecognized_key(key)
        end
      end
      self
    end

    def banner_message
      return nil unless banner
      return banner unless banner == :auto
      msg = "Using airbrussh format."
      if log_file
        msg << "\n"
        msg << "Verbose output is being written to #{Colors.blue(log_file)}."
      end
      msg
    end

    # This returns an array of formatters appropriate for the configuration.
    # Depending on whether a log file is configured, this could be just the
    # Airbrussh:ConsoleFormatter, or that plus the LogFileFormatter.
    def formatters(io)
      fmts = [Airbrussh::ConsoleFormatter.new(io, self)]
      fmts.unshift(Airbrussh::LogFileFormatter.new(log_file)) if log_file
      fmts
    end

    def show_command_output?(sym)
      command_output == true || Array(command_output).include?(sym)
    end

    private

    def warn_unrecognized_key(key)
      $stderr.puts("Ignoring unrecognized Airbrussh option: #{key}")
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
airbrussh-1.2.0 lib/airbrussh/configuration.rb
airbrussh-1.1.2 lib/airbrussh/configuration.rb
airbrussh-1.1.1 lib/airbrussh/configuration.rb
airbrussh-1.1.0 lib/airbrussh/configuration.rb
airbrussh-1.0.2 lib/airbrussh/configuration.rb
airbrussh-1.0.1 lib/airbrussh/configuration.rb
airbrussh-1.0.0 lib/airbrussh/configuration.rb
airbrussh-1.0.0.beta1 lib/airbrussh/configuration.rb