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 '%