Skip to content

Commit

Permalink
Some refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
mdub committed May 19, 2015
1 parent b72baec commit 3674d44
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions lib/clamp/messages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,39 @@ module Clamp

module Messages

def messages=(messages)
@user_defined_messages = messages
def messages=(new_messages)
messages.merge!(new_messages)
end

def message(key, options={})
@user_defined_messages ||= {}
msg = @user_defined_messages[key] || messages[key]
format_string(msg, options)
format_string(messages.fetch(key), options)
end

private

DEFAULTS = {
:too_many_arguments => "too many arguments",
:option_required => "option '%<option>s' is required",
:option_or_env_required => "option '%<option>s' (or env %<env>s) is required",
:option_argument_error => "option '%<switch>s': %<message>s",
:parameter_argument_error => "parameter '%<param>s': %<message>s",
:env_argument_error => "$%<env>s: %<message>s",
:unrecognised_option => "Unrecognised option '%<switch>s'",
:no_such_subcommand => "No such sub-command '%<name>s'",
:no_value_provided => "no value provided",
:usage_heading => "Usage",
:parameters_heading => "Parameters",
:subcommands_heading => "Subcommands",
:options_heading => "Options"
}

def messages
{
:too_many_arguments => "too many arguments",
:option_required => "option '%<option>s' is required",
:option_or_env_required => "option '%<option>s' (or env %<env>s) is required",
:option_argument_error => "option '%<switch>s': %<message>s",
:parameter_argument_error => "parameter '%<param>s': %<message>s",
:env_argument_error => "$%<env>s: %<message>s",
:unrecognised_option => "Unrecognised option '%<switch>s'",
:no_such_subcommand => "No such sub-command '%<name>s'",
:no_value_provided => "no value provided",
:usage_heading => "Usage",
:parameters_heading => "Parameters",
:subcommands_heading => "Subcommands",
:options_heading => "Options"
}
unless defined?(@messages)
@messages = DEFAULTS
end
@messages
end

private

if (("%{foo}" % {:foo => "bar"}) == "bar")

def format_string(format, params = {})
Expand Down

0 comments on commit 3674d44

Please sign in to comment.