Namespace

Class

Methods

Constants

UNSAFE_STRING_METHODS = %w( capitalize chomp chop delete delete_prefix delete_suffix downcase lstrip next reverse rstrip scrub squeeze strip succ swapcase tr tr_s unicode_normalize upcase )
UNSAFE_STRING_METHODS_WITH_BACKREF = %w(gsub sub)

Attributes

[R] html_safe
[R] html_safe?

Class Public methods

new(str = "")

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 70
    def initialize(str = "")
      @html_safe = true
      super
    end
🔎 See on GitHub

Instance Public methods

%(args)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 123
    def %(args)
      case args
      when Hash
        escaped_args = args.transform_values { |arg| explicit_html_escape_interpolated_argument(arg) }
      else
        escaped_args = Array(args).map { |arg| explicit_html_escape_interpolated_argument(arg) }
      end

      self.class.new(super(escaped_args))
    end
🔎 See on GitHub

*(_)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 116
    def *(_)
      new_string = super
      new_safe_buffer = new_string.is_a?(SafeBuffer) ? new_string : SafeBuffer.new(new_string)
      new_safe_buffer.instance_variable_set(:@html_safe, @html_safe)
      new_safe_buffer
    end
🔎 See on GitHub

+(other)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 112
    def +(other)
      dup.concat(other)
    end
🔎 See on GitHub

<<(value)

Alias for: concat

[](*args)

Also aliased as: slice
📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 38
    def [](*args)
      if html_safe?
        new_string = super

        return unless new_string

        string_into_safe_buffer(new_string, true)
      else
        to_str[*args]
      end
    end
🔎 See on GitHub

[]=(arg1, arg2, arg3 = nil)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 104
    def []=(arg1, arg2, arg3 = nil)
      if arg3
        super(arg1, arg2, implicit_html_escape_interpolated_argument(arg3))
      else
        super(arg1, implicit_html_escape_interpolated_argument(arg2))
      end
    end
🔎 See on GitHub

bytesplice(*args, value)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 88
    def bytesplice(*args, value)
      super(*args, implicit_html_escape_interpolated_argument(value))
    end
🔎 See on GitHub

chr()

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 59
    def chr
      return super unless html_safe?

      string_into_safe_buffer(super, true)
    end
🔎 See on GitHub

concat(value)

Also aliased as: original_concat, <<
📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 80
    def concat(value)
      unless value.nil?
        super(implicit_html_escape_interpolated_argument(value))
      end
      self
    end
🔎 See on GitHub

encode_with(coder)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 146
    def encode_with(coder)
      coder.represent_object nil, to_str
    end
🔎 See on GitHub

initialize_copy(other)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 75
    def initialize_copy(other)
      super
      @html_safe = other.html_safe?
    end
🔎 See on GitHub

insert(index, value)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 92
    def insert(index, value)
      super(index, implicit_html_escape_interpolated_argument(value))
    end
🔎 See on GitHub

original_concat(value)

Alias for: concat

prepend(value)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 96
    def prepend(value)
      super(implicit_html_escape_interpolated_argument(value))
    end
🔎 See on GitHub

replace(value)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 100
    def replace(value)
      super(implicit_html_escape_interpolated_argument(value))
    end
🔎 See on GitHub

safe_concat(value)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 65
    def safe_concat(value)
      raise SafeConcatError unless html_safe?
      original_concat(value)
    end
🔎 See on GitHub

slice(*args)

Alias for: []

slice!(*args)

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 51
    def slice!(*args)
      new_string = super

      return new_string if !html_safe? || new_string.nil?

      string_into_safe_buffer(new_string, true)
    end
🔎 See on GitHub

to_param()

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 142
    def to_param
      to_str
    end
🔎 See on GitHub

to_s()

📝 Source code
# File activesupport/lib/active_support/core_ext/string/output_safety.rb, line 138
    def to_s
      self
    end
🔎 See on GitHub