class Mycmd::Configuration

Constants

CONFIG_FILE
VALID_OPTIONS_KEYS

Attributes

path[R]
tasks[RW]

Public Class Methods

config_find(path = File.expand_path(".")) click to toggle source
# File lib/mycmd/configuration.rb, line 80
def config_find(path = File.expand_path("."))
  file = File.join(path, CONFIG_FILE)
  if File.exists?(file)
    file
  else
    if path == "/"
      file = File.join(ENV["HOME"], CONFIG_FILE)
      File.exists?(file) ? file : nil
    else
      config_find(File.expand_path("..", path))
    end
  end
end
connect() click to toggle source
# File lib/mycmd/configuration.rb, line 65
def connect
  conf = Configuration.new
  conf.connect
end
get_variables() click to toggle source
# File lib/mycmd/configuration.rb, line 70
def get_variables
  sql = "SELECT GV.* FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES AS GV"
  client = self.connect
  variables = {}
  client.query(sql).each do |row|
    variables.store(row["VARIABLE_NAME"].downcase.to_sym, row["VARIABLE_VALUE"])
  end
  variables
end
new() click to toggle source
# File lib/mycmd/configuration.rb, line 27
def initialize
  reset
end

Public Instance Methods

connect() click to toggle source
# File lib/mycmd/configuration.rb, line 45
def connect
  Mysql2::Client.new(to_hash)
end
default() click to toggle source
# File lib/mycmd/configuration.rb, line 58
def default
  self.host = "localhost"
  self.port = 3306
  self.username = "root"
end
merge(params) click to toggle source
# File lib/mycmd/configuration.rb, line 31
def merge(params)
  default
  params.each do |k,v|
    self.send("#{k.to_s}=", v)
  end
end
reset() click to toggle source
# File lib/mycmd/configuration.rb, line 49
def reset
  @path = Configuration.config_find
  if @path
    merge YAML.load_file(@path)
  else
    default
  end
end
to_hash() click to toggle source
# File lib/mycmd/configuration.rb, line 38
def to_hash
  VALID_OPTIONS_KEYS.inject({}) do |c,k|
    c.store(k.to_sym, self.send(k.to_s)) unless self.send(k.to_s).nil?
    c
  end
end