Module: Reginald
- Defined in:
- lib/rack/mount/vendor/reginald/reginald.rb,
lib/rack/mount/vendor/reginald/reginald/atom.rb,
lib/rack/mount/vendor/reginald/reginald/group.rb,
lib/rack/mount/vendor/reginald/reginald/anchor.rb,
lib/rack/mount/vendor/reginald/reginald/parser.rb,
lib/rack/mount/vendor/reginald/reginald/character.rb,
lib/rack/mount/vendor/reginald/reginald/tokenizer.rb,
lib/rack/mount/vendor/reginald/reginald/expression.rb,
lib/rack/mount/vendor/reginald/reginald/alternation.rb,
lib/rack/mount/vendor/reginald/reginald/character_class.rb
Defined Under Namespace
Classes: Alternation, Anchor, Atom, Character, CharacterClass, Expression, Group, Parser
Class Method Summary
collapse
Class Method Details
.compile(source) ⇒ Object
37
38
39
40
41
|
# File 'lib/rack/mount/vendor/reginald/reginald.rb', line 37
def compile(source)
regexp = Regexp.compile(source)
expression = parse(regexp)
Regexp.compile(expression.to_s_without_options, expression.options)
end
|
.parse(regexp) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/rack/mount/vendor/reginald/reginald.rb', line 24
def parse(regexp)
regexp = strip_extended_whitespace_and_comments(regexp)
parser = Parser.new
parser.capture_index = 0
parser.capture_index_stack = []
expression = parser.scan_str(regexp.source)
expression.ignorecase = regexp.casefold?
expression
end
|