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