Class: Nodaire::Lexer

Inherits:
Object
  • Object
show all
Defined in:
lib/nodaire/lexer.rb

Direct Known Subclasses

Indental::Lexer

Constant Summary collapse

JS_WRAPPER_REGEXP =
%r{
  ^ \s*[^\n`]+ = [[:blank:]]* ` [[:blank:]]* \n
  (.*\n)
  [[:blank:]]* ` \s* $
}mx.freeze

Class Method Summary collapse

Class Method Details

.lines_with_number(source) ⇒ Object



14
15
16
17
18
# File 'lib/nodaire/lexer.rb', line 14

def self.lines_with_number(source)
  (source || '')
    .split("\n").each_with_index
    .map { |line, idx| [line, idx + 1] }
end

.strip_js_wrapper(source) ⇒ Object



20
21
22
# File 'lib/nodaire/lexer.rb', line 20

def self.strip_js_wrapper(source)
  (source || '').sub(JS_WRAPPER_REGEXP, '\1')
end