Index: head/devel/rubygem-clamp/files/patch-i18n =================================================================== --- head/devel/rubygem-clamp/files/patch-i18n (revision 382671) +++ head/devel/rubygem-clamp/files/patch-i18n (revision 382672) @@ -1,217 +1,215 @@ -diff --git a/clamp-0.6.4.gemspec b/clamp-0.6.4.gemspec -index 8f51cc3..acab485 100644 ---- clamp-0.6.4.gemspec -+++ clamp-0.6.4.gemspec -@@ -43,6 +43,7 @@ - - lib/clamp/command.rb - - lib/clamp/errors.rb - - lib/clamp/help.rb -+- lib/clamp/messages.rb - - lib/clamp/option/declaration.rb - - lib/clamp/option/definition.rb - - lib/clamp/option/parsing.rb - +--- clamp.gemspec.orig 2015-02-28 19:33:22.833353000 +0000 ++++ clamp.gemspec 2015-02-28 19:33:51.000931000 +0000 +@@ -11,7 +11,7 @@ + s.date = "2015-02-26" + s.description = "Clamp provides an object-model for command-line utilities.\nIt handles parsing of command-line options, and generation of usage help.\n" + s.email = "mdub@dogbiscuit.org" +- s.files = [".autotest", ".gitignore", ".rspec", ".travis.yml", "CHANGES.md", "Gemfile", "LICENSE", "README.md", "Rakefile", "clamp.gemspec", "examples/admin", "examples/flipflop", "examples/fubar", "examples/gitdown", "examples/scoop", "examples/speak", "lib/clamp.rb", "lib/clamp/attribute/declaration.rb", "lib/clamp/attribute/definition.rb", "lib/clamp/attribute/instance.rb", "lib/clamp/command.rb", "lib/clamp/errors.rb", "lib/clamp/help.rb", "lib/clamp/option/declaration.rb", "lib/clamp/option/definition.rb", "lib/clamp/option/parsing.rb", "lib/clamp/parameter/declaration.rb", "lib/clamp/parameter/definition.rb", "lib/clamp/parameter/parsing.rb", "lib/clamp/subcommand/declaration.rb", "lib/clamp/subcommand/definition.rb", "lib/clamp/subcommand/execution.rb", "lib/clamp/subcommand/parsing.rb", "lib/clamp/truthy.rb", "lib/clamp/version.rb", "spec/clamp/command_group_spec.rb", "spec/clamp/command_spec.rb", "spec/clamp/option/definition_spec.rb", "spec/clamp/option_module_spec.rb", "spec/clamp/parameter/definition_spec.rb", "spec/spec_helper.rb"] ++ s.files = [".autotest", ".gitignore", ".rspec", ".travis.yml", "CHANGES.md", "Gemfile", "LICENSE", "README.md", "Rakefile", "clamp.gemspec", "examples/admin", "examples/flipflop", "examples/fubar", "examples/gitdown", "examples/scoop", "examples/speak", "lib/clamp.rb", "lib/clamp/attribute/declaration.rb", "lib/clamp/attribute/definition.rb", "lib/clamp/attribute/instance.rb", "lib/clamp/command.rb", "lib/clamp/errors.rb", "lib/clamp/help.rb", "lib/clamp/messages.rb", "lib/clamp/option/declaration.rb", "lib/clamp/option/definition.rb", "lib/clamp/option/parsing.rb", "lib/clamp/parameter/declaration.rb", "lib/clamp/parameter/definition.rb", "lib/clamp/parameter/parsing.rb", "lib/clamp/subcommand/declaration.rb", "lib/clamp/subcommand/definition.rb", "lib/clamp/subcommand/execution.rb", "lib/clamp/subcommand/parsing.rb", "lib/clamp/truthy.rb", "lib/clamp/version.rb", "spec/clamp/command_group_spec.rb", "spec/clamp/command_spec.rb", "spec/clamp/option/definition_spec.rb", "spec/clamp/option_module_spec.rb", "spec/clamp/parameter/definition_spec.rb", "spec/spec_helper.rb"] + s.homepage = "http://github.com/mdub/clamp" + s.licenses = ["MIT"] + s.rubygems_version = "2.4.5" diff --git a/lib/clamp/attribute/instance.rb b/lib/clamp/attribute/instance.rb index 8f51cc3..acab485 100644 --- lib/clamp/attribute/instance.rb +++ lib/clamp/attribute/instance.rb @@ -69,7 +69,7 @@ def default_from_environment begin take(value) rescue ArgumentError => e - command.send(:signal_usage_error, "$#{attribute.environment_variable}: #{e.message}") + command.send(:signal_usage_error, Clamp.message(:env_argument_error, :env => attribute.environment_variable, :message => e.message)) end end diff --git a/lib/clamp/command.rb b/lib/clamp/command.rb index c6c50f4..52187ab 100644 --- lib/clamp/command.rb +++ lib/clamp/command.rb @@ -1,3 +1,4 @@ +require 'clamp/messages' require 'clamp/errors' require 'clamp/help' require 'clamp/option/declaration' @@ -91,7 +92,7 @@ def help def handle_remaining_arguments unless remaining_arguments.empty? - signal_usage_error "too many arguments" + signal_usage_error Clamp.message(:too_many_arguments) end end diff --git a/lib/clamp/help.rb b/lib/clamp/help.rb index e09731a..1e57530 100644 --- lib/clamp/help.rb +++ lib/clamp/help.rb @@ -1,4 +1,5 @@ require 'stringio' +require 'clamp/messages' module Clamp @@ -41,12 +42,12 @@ def help(invocation_path, builder = Builder.new) help.add_usage(invocation_path, usage_descriptions) help.add_description(description) if has_parameters? - help.add_list("Parameters", parameters) + help.add_list(Clamp.message(:parameters_heading), parameters) end if has_subcommands? - help.add_list("Subcommands", recognised_subcommands) + help.add_list(Clamp.message(:subcommands_heading), recognised_subcommands) end - help.add_list("Options", recognised_options) + help.add_list(Clamp.message(:options_heading), recognised_options) help.string end @@ -61,7 +62,7 @@ def string end def add_usage(invocation_path, usage_descriptions) - puts "Usage:" + puts usage_heading usage_descriptions.each do |usage| puts " #{invocation_path} #{usage}".rstrip end @@ -87,6 +88,12 @@ def add_list(heading, items) end end + protected + + def usage_heading + Clamp.message(:usage_heading) + ":" + end + private def puts(*args) diff --git a/lib/clamp/messages.rb b/lib/clamp/messages.rb new file mode 100644 index 0000000..61cce94 --- /dev/null +++ lib/clamp/messages.rb @@ -0,0 +1,43 @@ +module Clamp + + def self.messages=(messages) + @user_defined_messages = messages + end + + def self.message(key, options={}) + @user_defined_messages ||= {} + msg = @user_defined_messages[key] || messages[key] + format_string(msg, options) + end + + def self.messages + { + :too_many_arguments => "too many arguments", + :option_required => "option '%