123456789_123456789_123456789_123456789_123456789_

Class: ActiveSupport::JSON::Encoding::JSONGemCoderEncoder

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: activesupport/lib/active_support/json/encoding.rb

Constant Summary

Class Method Summary

Instance Method Summary

Constructor Details

.new(options = nil) ⇒ JSONGemCoderEncoder

[ GitHub ]

  
# File 'activesupport/lib/active_support/json/encoding.rb', line 171

def initialize(options = nil)
  if options
    options = options.dup
    @escape = options.delete(:escape) { true }
    @options = options.freeze
  else
    @escape = true
    @options = {}.freeze
  end
end

Instance Method Details

#encode(value)

Encode the given object into a ::ActiveSupport::JSON string

[ GitHub ]

  
# File 'activesupport/lib/active_support/json/encoding.rb', line 183

def encode(value)
  value = value.as_json(@options) unless @options.empty?

  json = CODER.dump(value)

  return json unless @escape

  json.force_encoding(::Encoding::BINARY)
  if @options.fetch(:escape_html_entities, Encoding.escape_html_entities_in_json)
    if Encoding.escape_js_separators_in_json
      json.gsub!(FULL_ESCAPE_REGEX, ESCAPED_CHARS)
    else
      json.gsub!(HTML_ENTITIES_REGEX, ESCAPED_CHARS)
    end
  elsif Encoding.escape_js_separators_in_json
    json.gsub!(JS_SEPARATORS_REGEX, ESCAPED_CHARS)
  end
  json.force_encoding(::Encoding::UTF_8)
end