def parse(string)
return true if string == "true"
return false if string == "false"
- raise ArgumentError, "#{string} does not match either 'true' or 'false'"
+ if string =~ /^-?\d+$/
+ return string.to_i != 0
+ end
+ raise ArgumentError, "#{string} does not match either 'true' or 'false', and it's not an integer either"
+ end
+ def get
+ r = super
+ if r.kind_of?(Integer)
+ return r != 0
+ else
+ return r
+ end
end
end
class BotConfigIntegerValue < BotConfigValue
def parse(string)
+ return 1 if string == "true"
+ return 0 if string == "false"
raise ArgumentError, "not an integer: #{string}" unless string =~ /^-?\d+$/
string.to_i
end
+ def get
+ r = super
+ if r.kind_of?(Integer)
+ return r
+ else
+ return r ? 1 : 0
+ end
+ end
end
class BotConfigFloatValue < BotConfigValue
string
end
def desc
- _("#{@desc} [valid values are: #{values.join(', ')}]")
+ _("%{desc} [valid values are: %{values}]") % {:desc => @desc, :values => values.join(', ')}
end
end
}
return
rescue
- error _("failed to read conf.yaml: #{$!}")
+ error "failed to read conf.yaml: #{$!}"
end
end
# if we got here, we need to run the first-run wizard
"#{@bot.botclass}/conf.yaml")
@changed = false
rescue => e
- error _("failed to write configuration file conf.yaml! #{$!}")
+ error "failed to write configuration file conf.yaml! #{$!}"
error "#{e.class}: #{e}"
error e.backtrace.join("\n")
end