Sha256: 27796ae575de4efe404cf3484fd39cdff56b3f75edd4cd7e00e7427a052cd93a

Contents?: true

Size: 1.87 KB

Versions: 11

Compression:

Stored size: 1.87 KB

Contents

class Options

  ATTRIBUTES = [:error, :message, :api_key, :host, :port, :auth_token, :name,
                :account, :rails_env, :scm_revision, :scm_repository, :local_username]

  ATTRIBUTES.each do |attribute|
    attr_reader attribute
  end

  private

  # You should not write to this from outside
  ATTRIBUTES.each do |attribute|
    attr_writer attribute
  end

  public

  # Parses all the options passed and stores them in attributes
  def initialize(array = [])
    opts = Hash[*array]
    self.error          = opts.delete("-e") || opts.delete("--error")   { RuntimeError }
    self.message        = opts.delete("-m") || opts.delete("--message") { "I've made a huge mistake" }
    self.api_key        = opts.delete("-k") || opts.delete("--api-key")        || config_from_file.api_key || ENV["AIRBRAKE_API_KEY"]
    self.host           = opts.delete("-h") || opts.delete("--host")           || config_from_file.host
    self.port           = opts.delete("-p") || opts.delete("--port")           || config_from_file.port
    self.auth_token     = opts.delete("-t") || opts.delete("--auth-token")     || ENV["AIRBRAKE_AUTH_TOKEN"]
    self.name           = opts.delete("-n") || opts.delete("--name")
    self.account        = opts.delete("-a") || opts.delete("--account")        || ENV["AIRBRAKE_ACCOUNT"]
    self.rails_env      = opts.delete("-E") || opts.delete("--rails-env")      || ENV["RAILS_ENV"] || "production"
    self.scm_revision   = opts.delete("-r") || opts.delete("--scm-revision")   || ENV["REVISION"]
    self.scm_repository = opts.delete("-R") || opts.delete("--scm-repository") || ENV["REPO"]
    self.local_username = opts.delete("-u") || opts.delete("--local-username") || ENV["USER"]
    opts
  end

  # Fallback to read from the initializer
  def config_from_file
    begin
      load "config/initializers/airbrake.rb"
    rescue LoadError
    end
    Airbrake.configuration
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
airbrakeV4rails5-4.3.8 lib/airbrake/cli/options.rb
airbrake-4.3.8 lib/airbrake/cli/options.rb
airbrake-4.3.7 lib/airbrake/cli/options.rb
airbrake-4.3.6 lib/airbrake/cli/options.rb
airbrake-4.3.5 lib/airbrake/cli/options.rb
airbrake-4.3.4 lib/airbrake/cli/options.rb
airbrake-4.3.3 lib/airbrake/cli/options.rb
airbrake-4.3.2 lib/airbrake/cli/options.rb
airbrake-4.3.1 lib/airbrake/cli/options.rb
airbrake-4.3.0 lib/airbrake/cli/options.rb
airbrake-4.2.1 lib/airbrake/cli/options.rb