Class: RuleParser
- Inherits:
-
Object
- Object
- RuleParser
- Defined in:
- lib/xmlutils/ruleparser.rb
Overview
class RuleParser
Instance Attribute Summary collapse
-
#context ⇒ Object
Returns the value of attribute context.
Instance Method Summary collapse
-
#initialize(ctx) ⇒ RuleParser
constructor
————————————————————————————————————-# initialize - Constructor.
-
#parse(src) ⇒ Object
————————————————————————————————————-# parse - Build a GDL rule definition from XML source.
-
#parseRuleXml(rule) ⇒ Object
————————————————————————————————————-# parseRuleXml - generate a GDL version of a rule definition based on Rule XML element.
-
#setFlag(flg) ⇒ Object
————————————————————————————————————-# setFlag - Set configuration flags.
- #verbose? ⇒ Boolean
Constructor Details
#initialize(ctx) ⇒ RuleParser
————————————————————————————————————-# initialize - Constructor
————————————————————————————————————#
28 29 30 31 32 |
# File 'lib/xmlutils/ruleparser.rb', line 28 def initialize(ctx) @verbose = false @context = ctx end |
Instance Attribute Details
#context ⇒ Object
Returns the value of attribute context.
21 22 23 |
# File 'lib/xmlutils/ruleparser.rb', line 21 def context @context end |
Instance Method Details
#parse(src) ⇒ Object
————————————————————————————————————-# parse - Build a GDL rule definition from XML source.
src - String containing XML source gdl - GDL rule definition.
————————————————————————————————————#
79 80 81 82 83 84 85 86 |
# File 'lib/xmlutils/ruleparser.rb', line 79 def parse(src) doc = nil doc = Document.new(src) root = doc.root return parseRuleXml(root) end |
#parseRuleXml(rule) ⇒ Object
————————————————————————————————————-# parseRuleXml - generate a GDL version of a rule definition based on Rule XML element
rule - XML element to generate output for
————————————————————————————————————#
99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/xmlutils/ruleparser.rb', line 99 def parseRuleXml(rule) # arule = root.elements['//Rule'].to_a # returns all 1st level rule children elements #ruleParts = rule.elements.to_a puts "Parsing rule: #{rule.attributes['Name']}" if verbose? visitor = XmlRuleVisitor.new(@context) output = "" return visitor.visit(rule, output) end |
#setFlag(flg) ⇒ Object
————————————————————————————————————-# setFlag - Set configuration flags
flg - Array of options or single string option. Currently, only -v: verbose is available
————————————————————————————————————#
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/xmlutils/ruleparser.rb', line 50 def setFlag(flg) if (flg.class == Array) flg.each do |f| case f when '-v' @verbose = true end end # flg.each return end # if flg case flg when '-v' @verbose = true end end |
#verbose? ⇒ Boolean
37 38 39 |
# File 'lib/xmlutils/ruleparser.rb', line 37 def verbose? @verbose end |