Class: Radius::Parser
- Inherits:
-
Object
- Object
- Radius::Parser
- Defined in:
- lib/radius/parser.rb
Overview
The Radius parser. Initialize a parser with a Context object that defines how tags should be expanded. See the QUICKSTART for a detailed explaination of its usage.
Instance Attribute Summary collapse
-
#context ⇒ Object
The Context object used to expand template tags.
-
#tag_prefix ⇒ Object
The string that prefixes all tags that are expanded by a parser (the part in the tag name before the first colon).
Instance Method Summary collapse
-
#initialize(context = Context.new, options = {}) ⇒ Parser
constructor
Creates a new parser object initialized with a Context.
-
#parse(string) ⇒ Object
Parses string for tags, expands them, and returns the result.
Constructor Details
#initialize(context = Context.new, options = {}) ⇒ Parser
Creates a new parser object initialized with a Context.
16 17 18 19 20 21 22 23 24 |
# File 'lib/radius/parser.rb', line 16 def initialize(context = Context.new, = {}) if context.kind_of?(Hash) and .empty? = context context = [:context] || ['context'] || Context.new end = Util.symbolize_keys() @context = context @tag_prefix = [:tag_prefix] end |
Instance Attribute Details
#context ⇒ Object
The Context object used to expand template tags.
9 10 11 |
# File 'lib/radius/parser.rb', line 9 def context @context end |
#tag_prefix ⇒ Object
The string that prefixes all tags that are expanded by a parser (the part in the tag name before the first colon).
13 14 15 |
# File 'lib/radius/parser.rb', line 13 def tag_prefix @tag_prefix end |
Instance Method Details
#parse(string) ⇒ Object
Parses string for tags, expands them, and returns the result.
27 28 29 30 31 32 |
# File 'lib/radius/parser.rb', line 27 def parse(string) @stack = [ParseContainerTag.new { |t| t.contents.to_s }] tokenize(string) stack_up @stack.last.to_s end |