class Gammo::Tokenizer::EscapedToken

Constants

NULL
REPLACEMENT

Attributes

convert_null[RW]
convert_null?[RW]
raw[RW]
require_raw_data?[RW]

Public Class Methods

new(data = nil, raw: false, convert_null: false, **options) click to toggle source
Calls superclass method Gammo::Tokenizer::BaseToken::new
# File lib/gammo/tokenizer/tokens.rb, line 27
def initialize(data = nil, raw: false, convert_null: false, **options)
  super(data, **options)
  @raw          = raw
  @convert_null = convert_null
  load_data(data)
end

Public Instance Methods

load_data(raw_data) click to toggle source
# File lib/gammo/tokenizer/tokens.rb, line 34
def load_data(raw_data)
  unless raw_data
    @data = nil
    return
  end
  raw_data = convert_newlines(raw_data).force_encoding(Encoding::UTF_8)
  raw_data = raw_data.gsub(%r{#{NULL}}, REPLACEMENT) if should_convert_null?(raw_data)
  @data = require_raw_data? ? raw_data : unescape(raw_data, in_attribute: false)
end

Private Instance Methods

convert_newlines(s) click to toggle source
# File lib/gammo/tokenizer/tokens.rb, line 53
def convert_newlines(s)
  s.gsub(/(\r\n|\r)/, ?\n)
end
should_convert_null?(data) click to toggle source
# File lib/gammo/tokenizer/tokens.rb, line 49
def should_convert_null?(data)
  data && (convert_null? || self.class == CommentToken) && data.include?(NULL)
end