Class: ERB::Compiler::Scanner

Inherits:
Object
  • Object
show all
Defined in:
lib/erb/compiler.rb

Overview

:nodoc:

Direct Known Subclasses

TrimScanner

Constant Summary collapse

DEFAULT_STAGS =
%w(<%% <%= <%# <%).freeze
DEFAULT_ETAGS =
%w(%%> %>).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(src, trim_mode, percent) ⇒ Scanner

Returns a new instance of Scanner.



103
104
105
106
107
108
# File 'lib/erb/compiler.rb', line 103

def initialize(src, trim_mode, percent)
  @src = src
  @stag = nil
  @stags = DEFAULT_STAGS
  @etags = DEFAULT_ETAGS
end

Instance Attribute Details

#etagsObject (readonly)

Returns the value of attribute etags.



110
111
112
# File 'lib/erb/compiler.rb', line 110

def etags
  @etags
end

#stagObject

Returns the value of attribute stag.



109
110
111
# File 'lib/erb/compiler.rb', line 109

def stag
  @stag
end

#stagsObject (readonly)

Returns the value of attribute stags.



110
111
112
# File 'lib/erb/compiler.rb', line 110

def stags
  @stags
end

Class Method Details

.default_scanner=(klass) ⇒ Object



92
93
94
# File 'lib/erb/compiler.rb', line 92

def self.default_scanner=(klass)
  @default_scanner = klass
end

.make_scanner(src, trim_mode, percent) ⇒ Object



96
97
98
99
# File 'lib/erb/compiler.rb', line 96

def self.make_scanner(src, trim_mode, percent)
  klass = @scanner_map.fetch([trim_mode, percent], @default_scanner)
  klass.new(src, trim_mode, percent)
end

.register_scanner(klass, trim_mode, percent) ⇒ Object Also known as: regist_scanner



86
87
88
# File 'lib/erb/compiler.rb', line 86

def register_scanner(klass, trim_mode, percent)
  @scanner_map = @scanner_map.merge([trim_mode, percent].freeze => klass).freeze
end

Instance Method Details

#scanObject



112
# File 'lib/erb/compiler.rb', line 112

def scan; end