Class | String |
In: |
lib/i18n/core_ext/string/interpolate.rb
|
Parent: | Object |
INTERPOLATION_PATTERN | = | Regexp.union( /%\{(\w+)\}/, # matches placeholders like "%{foo}" /%<(\w+)>(.*?\d*\.?\d*[bBdiouxXeEfgGcps])/ # matches placeholders like "%<foo>.d" |
INTERPOLATION_PATTERN_WITH_ESCAPE | = | Regexp.union( /%%/, INTERPOLATION_PATTERN |
size | -> | bytesize |
For older ruby versions, such as ruby-1.8.5 | ||
% | -> | interpolate_without_ruby_19_syntax |
% uses self (i.e. the String) as a format specification and returns the result of applying it to the given arguments. In other words it interpolates the given arguments to the string according to the formats the string defines.
There are three ways to use it:
This is the default behaviour of the String class. See Kernel#sprintf for more details about the format string.
Example:
"%d %s" % [1, "message"] # => "1 message"
When you pass a Hash as an argument and specify placeholders with %{foo} it will interpret the hash values as named arguments.
Example:
"%{firstname}, %{lastname}" % {:firstname => "Masao", :lastname => "Mutoh"} # => "Masao Mutoh"
When you pass a Hash as an argument and specify placeholders with %<foo>d it will interpret the hash values as named arguments and format the value according to the formatting instruction appended to the closing >.
Example:
"%<integer>d, %<float>.1f" % { :integer => 10, :float => 43.4 } # => "10, 43.3"