Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/gettext/string.rb

Overview

Extension for String class.

String#% method which accept “named argument”. The translator can know the meaning of the msgids using “named argument” instead of %s/%d style.

Constant Summary collapse

REGEXP_NORMAL =

call-seq:

%(arg)
%(hash)

Format - Uses str as a format specification, and returns the result of applying it to arg. If the format specification contains more than one substitution, then arg must be an Array containing the values to be substituted. See Kernel::sprintf for details of the format string. This is the default behavior of the String class.

  • arg: an Array or other class except Hash.

  • Returns: formatted String

(e.g.) "%s, %s" % ["Masao", "Mutoh"]

Also you can use a Hash as the “named argument”. This is recommanded way for Ruby-GetText because the translators can understand the meanings of the msgids easily.

  • hash: {:key1 => value1, :key2 => value2, … }

  • Returns: formatted String

(e.g.) "%{firstname}, %{familyname}" % {:firstname => "Masao", :familyname => "Mutoh"}
/%\{/

Instance Method Summary collapse

Instance Method Details

#%(args) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/gettext/string.rb', line 38

def %(args)
  if args.kind_of?(Hash)
    ret = dup
    args.each {|key, value|
      ret.gsub!(/\%\{#{key}\}/, value.to_s)
    }
    ret
  else
    ret = gsub(REGEXP_NORMAL, '%%{')
    begin
  ret._old_format_m(args)
    rescue ArgumentError
  $stderr.puts "  The string:#{ret}"
  $stderr.puts "  args:#{args.inspect}"
    end
  end
end

#_old_format_mObject

:nodoc:



16
# File 'lib/gettext/string.rb', line 16

alias :_old_format_m :%