Class: Rouge::RegexLexer::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/rouge/regex_lexer.rb

Overview

A rule is a tuple of a regular expression to test, and a callback to perform if the test succeeds.

See Also:

  • StateDSL#rule

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(re, callback) ⇒ Rule

Returns a new instance of Rule.


13
14
15
16
# File 'lib/rouge/regex_lexer.rb', line 13

def initialize(re, callback)
  @re = re
  @callback = callback
end

Instance Attribute Details

#callbackObject (readonly)

Returns the value of attribute callback


11
12
13
# File 'lib/rouge/regex_lexer.rb', line 11

def callback
  @callback
end

#reObject (readonly)

Returns the value of attribute re


12
13
14
# File 'lib/rouge/regex_lexer.rb', line 12

def re
  @re
end

Instance Method Details

#beginning_of_line?Boolean

Does the regex start with a ^?

Since Regexps are immuntable, this is cached to avoid calling Regexp#source more than once.

Returns:

  • (Boolean)

22
23
24
25
26
# File 'lib/rouge/regex_lexer.rb', line 22

def beginning_of_line?
  return @beginning_of_line if instance_variable_defined?(:@beginning_of_line)

  @beginning_of_line = re.source[0] == ?^
end

#inspectObject


28
29
30
# File 'lib/rouge/regex_lexer.rb', line 28

def inspect
  "#<Rule #{@re.inspect}>"
end