class TracerySymbol
Attributes
isDynamic[RW]
Public Class Methods
new(grammar, key, rawRules)
click to toggle source
# File lib/tracery.rb, line 481 def initialize(grammar, key, rawRules) # Symbols can be made with a single value, and array, or array of objects of (conditions/values) @key = key @grammar = grammar @rawRules = rawRules @baseRules = RuleSet.new(@grammar, @rawRules) clearState end
Public Instance Methods
clearState()
click to toggle source
# File lib/tracery.rb, line 491 def clearState # Clear the stack and clear all ruleset usages @stack = [@baseRules] @uses = [] @baseRules.clearState end
getActiveRules()
click to toggle source
# File lib/tracery.rb, line 516 def getActiveRules return nil if @stack.empty? return @stack.last.selectRule end
popRules()
click to toggle source
# File lib/tracery.rb, line 503 def popRules @stack.pop end
pushRules(rawRules)
click to toggle source
# File lib/tracery.rb, line 498 def pushRules(rawRules) rules = RuleSet.new(@grammar, rawRules) @stack.push rules end
rulesToJSON()
click to toggle source
# File lib/tracery.rb, line 521 def rulesToJSON return @rawRules.to_json end
selectRule(node, errors)
click to toggle source
# File lib/tracery.rb, line 507 def selectRule(node, errors) @uses.push({ node: node }) if(@stack.empty?) then errors << "The rule stack for '#{@key}' is empty, too many pops?" return "((#{@key}))" end return @stack.last.selectRule end