Class: ActiveSupport::SafeBuffer
Relationships & Source Files | |
Namespace Children | |
Exceptions:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::String
|
|
Instance Chain:
self,
::String
|
|
Inherits: | String |
Defined in: | activesupport/lib/active_support/core_ext/string/output_safety.rb |
Constant Summary
-
UNSAFE_STRING_METHODS =
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 20%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 =
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 26%w(gsub sub)
::String
- Inherited
Class Method Summary
- .new(str = "") ⇒ SafeBuffer constructor
Instance Attribute Summary
-
#html_safe?
readonly
Alias for #html_safe.
::String
- Inherited
#acts_like_string? | Enables more predictable duck-typing on String-like classes. |
#blank? | A string is blank if it’s empty or contains whitespaces only: |
#is_utf8? | Returns |
#present? |
Instance Method Summary
- #%(args)
- #*(_)
- #+(other)
-
#<<(value)
Alias for #concat.
- #[](*args) (also: #slice)
- #[]=(arg1, arg2, arg3 = nil)
- #bytesplice(*args, value)
- #chr
- #concat(value) (also: #<<)
- #encode_with(coder)
- #html_safe (also: #html_safe?) readonly
- #initialize_copy(other)
- #insert(index, value)
- #prepend(value)
- #replace(value)
- #safe_concat(value)
-
#slice(*args)
Alias for #[].
- #slice!(*args)
- #to_param
- #to_s
- #explicit_html_escape_interpolated_argument(arg) private
- #implicit_html_escape_interpolated_argument(arg) private
- #original_concat private
- #set_block_back_references(block, match_data) private
- #string_into_safe_buffer(new_string, is_html_safe) private
::String
- Inherited
#at | If you pass a single integer, returns a substring of one character at that position. |
#camelcase | Alias for String#camelize. |
#camelize | By default, |
#classify | Creates a class name from a plural table name like Rails does for table names to models. |
#constantize |
|
#dasherize | Replaces underscores with dashes in the string. |
#deconstantize | Removes the rightmost segment from the constant expression in the string. |
#demodulize | Removes the module part from the constant expression in the string. |
#downcase_first | Converts the first character to lowercase. |
#ends_with?, | |
#exclude? | The inverse of |
#first | Returns the first character. |
#foreign_key | Creates a foreign key name from a class name. |
#from | Returns a substring from the given position to the end of the string. |
#html_safe | Marks a string as trusted safe. |
#humanize | Capitalizes the first word, turns underscores into spaces, and (by default) strips a trailing ‘_id’ if present. |
#in_time_zone | Converts String to a |
#indent | Indents the lines in the receiver: |
#indent! | Same as |
#inquiry | Wraps the current string in the |
#last | Returns the last character of the string. |
#mb_chars |
|
#parameterize | Replaces special characters in a string so that it may be used as part of a ‘pretty’ URL. |
#pluralize | Returns the plural form of the word in the string. |
#remove | Returns a new string with all occurrences of the patterns removed. |
#remove! | Alters the string by removing all occurrences of the patterns. |
#safe_constantize |
|
#singularize | The reverse of |
#squish | Returns the string, first removing all whitespace on both ends of the string, and then changing remaining consecutive whitespace groups into one space each. |
#squish! | Performs a destructive squish. |
#starts_with?, | |
#strip_heredoc | Strips indentation in heredocs. |
#tableize | Creates the name of a table like Rails does for models to table names. |
#titlecase | Alias for String#titleize. |
#titleize | Capitalizes all the words and replaces some characters in the string to create a nicer looking title. |
#to | Returns a substring from the beginning of the string to the given position. |
#to_date | Converts a string to a |
#to_datetime | Converts a string to a |
#to_time | Converts a string to a |
#truncate | Truncates a given |
#truncate_bytes | Truncates |
#truncate_words | Truncates a given |
#underscore | The reverse of |
#upcase_first | Converts the first character to uppercase. |
#as_json |
Constructor Details
.new(str = "") ⇒ SafeBuffer
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 70
def initialize(str = "") @html_safe = true super end
Instance Attribute Details
#html_safe? (readonly)
Alias for #html_safe.
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 135
alias_method :html_safe?, :html_safe
Instance Method Details
#%(args)
[ GitHub ]# 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
#*(_)
[ GitHub ]# 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
#+(other)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 112
def +(other) dup.concat(other) end
#<<(value)
Alias for #concat.
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 86
alias << concat
#[](*args) Also known as: #slice
[ GitHub ]# 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
#[]=(arg1, arg2, arg3 = nil)
[ GitHub ]# 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
#bytesplice(*args, value)
[ GitHub ]# 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
#chr
[ GitHub ]# 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
#concat(value) Also known as: #<<
[ GitHub ]# 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
#encode_with(coder)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 146
def encode_with(coder) coder.represent_object nil, to_str end
#explicit_html_escape_interpolated_argument(arg) (private)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 193
def explicit_html_escape_interpolated_argument(arg) (!html_safe? || arg.html_safe?) ? arg : CGI.escapeHTML(arg.to_s) end
#html_safe (readonly) Also known as: #html_safe?
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 134
attr_reader :html_safe
#implicit_html_escape_interpolated_argument(arg) (private)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 197
def implicit_html_escape_interpolated_argument(arg) if !html_safe? || arg.html_safe? arg else CGI.escapeHTML(arg.to_str) end end
#initialize_copy(other)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 75
def initialize_copy(other) super @html_safe = other.html_safe? end
#insert(index, value)
[ GitHub ]# 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
#original_concat (private)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 28
alias_method :original_concat, :concat
#prepend(value)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 96
def prepend(value) super(implicit_html_escape_interpolated_argument(value)) end
#replace(value)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 100
def replace(value) super(implicit_html_escape_interpolated_argument(value)) end
#safe_concat(value)
# 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
#set_block_back_references(block, match_data) (private)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 205
def set_block_back_references(block, match_data) block.binding.eval("proc { |m| $~ = m }").call(match_data) rescue ArgumentError # Can't create binding from C level Proc end
#slice(*args)
Alias for #[].
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 49
alias_method :slice, :[]
#slice!(*args)
[ GitHub ]# 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
#string_into_safe_buffer(new_string, is_html_safe) (private)
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 211
def string_into_safe_buffer(new_string, is_html_safe) new_safe_buffer = new_string.is_a?(SafeBuffer) ? new_string : SafeBuffer.new(new_string) new_safe_buffer.instance_variable_set :@html_safe, is_html_safe new_safe_buffer end
#to_param
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 142
def to_param to_str end
#to_s
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 138
def to_s self end