class Bastion::Config

Config class

Constants

ENVVAR
SYSTEM
USER

Public Class Methods

new(options) click to toggle source
# File lib/bastion/config.rb, line 10
def initialize(options)
  @system = read(SYSTEM)
  @user   = read(USER)
  @env    = ENV[ENVVAR]
  @option = options[:host]
  @host   = @option || @env || @user || @system
  save @host if options[:save]
end

Public Instance Methods

info() click to toggle source
# File lib/bastion/config.rb, line 19
def info
  puts "System : #{@system}"
  puts "User   : #{@user}"
  puts "Env    : #{@env}"
  puts "Option : #{@option}"
  puts "Using  : #{@host}"
end
method_missing(name) click to toggle source
# File lib/bastion/config.rb, line 40
def method_missing(name)
  instance_variable_get :"@#{name}"
end
read(file, default = nil) click to toggle source
# File lib/bastion/config.rb, line 27
def read(file, default = nil)
  return default unless File.exist?(file)
  value = File.read(file)
  value.empty? ? nil : value
end
save(value) click to toggle source
# File lib/bastion/config.rb, line 33
def save(value)
  dir = File.dirname(USER)
  Dir.mkdir(dir) unless Dir.exist?(dir)
  File.write USER, value
  File.read USER
end