Parent

Class/Module Index [+]

Quicksearch

String

Enhance the String class with a XML escaped character version of to_s.


Extension for String class. This feature is included in Ruby 1.9 or later but not occur TypeError.

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

Public Instance Methods

%(args) click to toggle source

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

  • Using a single argument or Array of arguments.

    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"
  • Using a Hash as an argument and unformatted, named placeholders.

    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"
  • Using a Hash as an argument and formatted, named placeholders.

    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"
# File lib/active_support/vendor/i18n-0.4.1/i18n/core_ext/string/interpolate.rb, line 78
def %(args)
  if args.kind_of?(Hash)
    dup.gsub(INTERPOLATION_PATTERN_WITH_ESCAPE) do |match|
      if match == '%%'
        '%'
      else
        key = ($1 || $2).to_sym
        raise KeyError unless args.has_key?(key)
        $3 ? sprintf("%#{$3}", args[key]) : args[key]
      end
    end
  elsif self =~ INTERPOLATION_PATTERN
    raise ArgumentError.new('one hash required')
  else
    result = gsub(/%([{<])/, '%%\1')
    result.send :'interpolate_without_ruby_19_syntax', args
  end
end
as_str() click to toggle source
# File lib/active_support/core_ext/string/output_safety.rb, line 90
def as_str
  self
end
html_safe() click to toggle source
# File lib/active_support/core_ext/string/output_safety.rb, line 94
def html_safe
  ActiveSupport::SafeBuffer.new(self)
end
html_safe?() click to toggle source
# File lib/active_support/core_ext/string/output_safety.rb, line 98
def html_safe?
  false
end
interpolate_without_ruby_19_syntax(args) click to toggle source
Alias for: %
original_xs() click to toggle source
Alias for: to_xs
to_xs() click to toggle source

XML escaped version of to_s

# File lib/active_support/vendor/builder-2.1.2/builder/xchar.rb, line 110
def to_xs
  unpack('U*').map {|n| n.xchr}.join # ASCII, UTF-8
rescue
  unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252
end
Also aliased as: original_xs

[Validate]

Generated with the Darkfish Rdoc Generator 2.