lib/hammer_cli/options/normalizers.rb in hammer_cli-0.11.0 vs lib/hammer_cli/options/normalizers.rb in hammer_cli-0.12.0
- old
+ new
@@ -3,11 +3,10 @@
module HammerCLI
module Options
module Normalizers
-
class AbstractNormalizer
def description
""
end
@@ -18,18 +17,23 @@
def complete(val)
[]
end
end
+ class Default < AbstractNormalizer
+ def format(value)
+ value
+ end
+ end
class KeyValueList < AbstractNormalizer
PAIR_RE = '([^,=]+)=([^,\[]+|\[[^\[\]]*\])'
FULL_RE = "^((%s)[,]?)+$" % PAIR_RE
def description
- _("Comma-separated list of key=value.")
+ _("Comma-separated list of key=value")
end
def format(val)
return {} unless val.is_a?(String)
return {} if val.empty?
@@ -39,11 +43,11 @@
else
begin
formatter = JSONInput.new
formatter.format(val)
rescue ArgumentError
- raise ArgumentError, _("value must be defined as a comma-separated list of key=value or valid JSON")
+ raise ArgumentError, _("Value must be defined as a comma-separated list of key=value or valid JSON.")
end
end
end
private
@@ -95,11 +99,11 @@
def format(val)
if numeric?(val)
val.to_i
else
- raise ArgumentError, _("numeric value is required")
+ raise ArgumentError, _("Numeric value is required.")
end
end
def numeric?(val)
Integer(val) != nil rescue false
@@ -109,21 +113,21 @@
class Bool < AbstractNormalizer
def description
- _("One of true/false, yes/no, 1/0.")
+ _("One of true/false, yes/no, 1/0")
end
def format(bool)
bool = bool.to_s
if bool.downcase.match(/^(true|t|yes|y|1)$/i)
return true
elsif bool.downcase.match(/^(false|f|no|n|0)$/i)
return false
else
- raise ArgumentError, _("value must be one of true/false, yes/no, 1/0")
+ raise ArgumentError, _("Value must be one of true/false, yes/no, 1/0.")
end
end
def complete(value)
["yes ", "no "]
@@ -158,11 +162,11 @@
# '{ "units":[ { "name":"zip", "version":"9.0", "inclusion":"false" } ] }')
json_string = ::File.exist?(::File.expand_path(val)) ? super(val) : val
::JSON.parse(json_string)
rescue ::JSON::ParserError => e
- raise ArgumentError, _("Unable to parse JSON input")
+ raise ArgumentError, _("Unable to parse JSON input.")
end
end
@@ -180,13 +184,13 @@
def format(value)
if @allowed_values.include? value
value
else
if allowed_values.count == 1
- msg = _("value must be %s") % quoted_values
+ msg = _("Value must be %s.") % quoted_values
else
- msg = _("value must be one of %s") % quoted_values
+ msg = _("Value must be one of %s.") % quoted_values
end
raise ArgumentError, msg
end
end
@@ -210,11 +214,11 @@
def format(date)
raise ArgumentError unless date
::DateTime.parse(date).to_s
rescue ArgumentError
- raise ArgumentError, _("'%s' is not a valid date") % date
+ raise ArgumentError, _("'%s' is not a valid date.") % date
end
end
class EnumList < AbstractNormalizer
@@ -241,10 +245,10 @@
end
def parse(arr)
arr.split(",").uniq.tap do |values|
unless values.inject(true) { |acc, cur| acc & (@allowed_values.include? cur) }
- raise ArgumentError, _("value must be a combination of '%s'") % quoted_values
+ raise ArgumentError, _("Value must be a combination of '%s'.") % quoted_values
end
end
end
end
end