class ParseDecision::PDContext
Context class holds all info and state about the current parsing process
Attributes
file[R]
index[R]
outdir[R]
parseMode[R]
srcdir[R]
state[R]
verbose[R]
Public Class Methods
new()
click to toggle source
# File lib/parse_decision/pd_context.rb, line 34 def initialize() $LOG.debug "PDContext::initialize" @outdir = nil @srcdir = "." @file = nil @verbose = false @index = 0 @parseMode = :default # :webdecision @data = nil # Hash to store plugin data in @availableStates = {} @availableStates[:default] = [:app, :appPpmXpath, :preDecisionGdl, :productXpath, :productXml, :productPpms, :productRules, ] @availableStates[:webdecision] = [:app, :gdlRules, :productRules, :decisionResponse, :preDecisionGdl, ] end
Public Instance Methods
[](sym)
click to toggle source
Return data from hash.
# File lib/parse_decision/pd_context.rb, line 57 def [](sym) return data[sym] end
[]=(sym, val)
click to toggle source
Return data from hash.
# File lib/parse_decision/pd_context.rb, line 63 def []=(sym, val) return data[sym] = val end
availableStates()
click to toggle source
Return array of current available states.
# File lib/parse_decision/pd_context.rb, line 69 def availableStates() return @availableStates[@parseMode] end
createValidName(inname)
click to toggle source
# File lib/parse_decision/pd_context.rb, line 134 def createValidName(inname) return nil if nil == inname outname = inname.gsub(/[\s\/\\?*#+]/,'') # Remove illegal chars (replace with underscore). outname.gsub!(/_+/,"_") # Replace consecutive uscores with single uscore. outname.gsub!(/\./,"-") # Replace period with dash. outname.gsub!(/[\(\)\$]/,"") # Remove L & R Parens, dollar signs. outname.gsub!(/\%/,"Perc") # Replace '%' with Perc. outname end
data()
click to toggle source
Return the data hash, creating it if needed.
# File lib/parse_decision/pd_context.rb, line 51 def data() @data ||= {} end
file=(filename)
click to toggle source
Set the name of file to parse.
# File lib/parse_decision/pd_context.rb, line 100 def file=(filename) @file = File.rubypath(filename) unless nil == filename end
indexStr()
click to toggle source
# File lib/parse_decision/pd_context.rb, line 129 def indexStr() return "%03d" % @index end
nextIndex()
click to toggle source
# File lib/parse_decision/pd_context.rb, line 125 def nextIndex() @index += 1 end
outdir=(dir)
click to toggle source
Set the output dir path.
# File lib/parse_decision/pd_context.rb, line 81 def outdir=(dir) @outdir = File.rubypath(dir) unless nil == dir end
outputPath(filename)
click to toggle source
Return the full output path including the filename.
# File lib/parse_decision/pd_context.rb, line 112 def outputPath(filename) raise "outdir missing" unless !@outdir.nil? outputPath = File.join(@outdir, filename) end
parseMode=(mode)
click to toggle source
Set the parse mode.
# File lib/parse_decision/pd_context.rb, line 75 def parseMode=(mode) @parseMode = mode if [:default, :webdecision].include?(mode) end
src_file=(file)
click to toggle source
Set source file and dir path
# File lib/parse_decision/pd_context.rb, line 87 def src_file=(file) fp = Pathname.new(file) @srcdir = fp.dirname.to_s @file = fp.basename.to_s end
srcdir=(dir)
click to toggle source
Set the source dir path.
# File lib/parse_decision/pd_context.rb, line 94 def srcdir=(dir) @srcdir = File.rubypath(dir) unless nil == dir end
state=(nextState)
click to toggle source
# File lib/parse_decision/pd_context.rb, line 118 def state=(nextState) raise "Invalid target state: #{nextState.to_s}" unless availableStates.include? nextState @state = nextState puts "STATE: #{nextState.to_s}" if $DEBUG end
verbose=(verbose)
click to toggle source
Turn on verbose mode.
# File lib/parse_decision/pd_context.rb, line 106 def verbose=(verbose) @verbose = verbose end