class Forward::Command::Config

Constants

CONFIGURABLE_SETTINGS
FALESY_REGEX
TRUTHY_REGEX

Public Instance Methods

get(*args) click to toggle source
# File lib/forward/command/config.rb, line 29
def get(*args)
  @setting = args.first

  validate :setting
  config.load
  exit_with_message "#{@setting} is currently #{config.send(@setting)}"
end
set(*args) click to toggle source
# File lib/forward/command/config.rb, line 8
def set(*args)
  @setting = args[0]
  @value   = args[1]

  validate :setting, :value
  config.load
  config.send("#{@setting}=", @value)
  config.write
  exit_with_message "#{@setting} is now #{config.send(@setting)}"
end
unset(*args) click to toggle source
# File lib/forward/command/config.rb, line 19
def unset(*args)
  @setting = args.first

  validate :setting
  config.load
  default_value = config.set_default!(@setting)
  config.write
  exit_with_message "#{@setting} is now set to the default `#{default_value}'"
end

Private Instance Methods

booleanize_value() click to toggle source
# File lib/forward/command/config.rb, line 50
def booleanize_value
  return @value = true if @value =~ TRUTHY_REGEX
  return @value = false if @value =~ FALESY_REGEX

  raise ValidationError, "#{@setting} cannot be set to `#{@value}'"
end
validate_setting() click to toggle source
# File lib/forward/command/config.rb, line 57
def validate_setting
  unless CONFIGURABLE_SETTINGS.include?(@setting)
    raise ValidationError, "`#{@setting}' is an unknown setting"
  end
end
validate_value() click to toggle source
# File lib/forward/command/config.rb, line 39
def validate_value
  @value = @value.dup.strip

  case @setting
  when 'auto_copy'
    booleanize_value
  when 'auto_open'
    booleanize_value
  end
end