class Volay::Config

Config class

Attributes

logger[R]
mixer[R]
options[R]

Public Class Methods

config_file() click to toggle source

Get config file

@return [String]

# File lib/volay/config.rb, line 45
def self.config_file
  File.expand_path('~/.volay')
end
get(option) click to toggle source

Get option

@return [Mixed]

# File lib/volay/config.rb, line 24
def self.get(option)
  @options ||= {}
  @options[option.to_sym] if @options.key?(option.to_sym)
end
init_config() click to toggle source

Get option

@return [Mixed]

# File lib/volay/config.rb, line 14
def self.init_config
  File.write(config_file, '') unless File.exist?(config_file)
  logger.level = get(:log_level)
end
logger() click to toggle source

Get logger

@return [Logger]

# File lib/volay/config.rb, line 54
def self.logger
  @logger ||= Logger.new(STDOUT)
end
mixer() click to toggle source

Initialize mixer for controlling volume

# File lib/volay/config.rb, line 61
def self.mixer
  raise MixerNotFound unless which('pacmd')

  @mixer ||= Volay::Mixer::Pulse.new
end
set(option, value) click to toggle source

Set option

@param [String|Symbol] option Option key @param [Mixed] value Option value

# File lib/volay/config.rb, line 35
def self.set(option, value)
  @options ||= {}
  @options[option.to_sym] = value
end
which(cmd) click to toggle source

Cross-platform way of finding an executable in the $PATH.

Example:

which('ruby') #=> /usr/bin/ruby
which('foo') #=> nil

@param [String] cmd Which command @return [String|NilClass]

# File lib/volay/config.rb, line 77
def self.which(cmd)
  exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
  ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
    exts.each do |ext|
      exe = File.join(path, "#{cmd}#{ext}")
      return exe if File.executable?(exe) && !File.directory?(exe)
    end
  end

  nil
end