class JCR::Context

Attributes

callbacks[RW]
catalog[RW]
failed_roots[RW]
failure_report[RW]
failure_report_line_length[RW]
id[RW]
mapping[RW]
roots[RW]
trace[RW]
tree[RW]

Public Class Methods

new( ruleset = nil, trace = false ) click to toggle source
# File lib/jcr/jcr.rb, line 64
def initialize( ruleset = nil, trace = false )
  @trace = trace
  @failed_roots = []
  if ruleset
    ingested = JCR.ingest_ruleset( ruleset, nil, nil )
    @mapping = ingested.mapping
    @callbacks = ingested.callbacks
    @id = ingested.id
    @tree = ingested.tree
    @roots = ingested.roots
  end
  @failure_report_line_length = 80
end

Public Instance Methods

add_ruleset_alias( ruleset_alias, alias_uri ) click to toggle source
# File lib/jcr/jcr.rb, line 36
def add_ruleset_alias( ruleset_alias, alias_uri )
  unless @catalog
    @catalog = Hash.new
  end
  @catalog[ ruleset_alias ] = alias_uri
end
evaluate( data, root_name = nil ) click to toggle source
# File lib/jcr/jcr.rb, line 60
def evaluate( data, root_name = nil )
  JCR.evaluate_ruleset( data, self, root_name )
end
map_ruleset_alias( ruleset_alias, alias_uri ) click to toggle source
# File lib/jcr/jcr.rb, line 49
def map_ruleset_alias( ruleset_alias, alias_uri )
  if @catalog
    a = @catalog[ ruleset_alias ]
    if a
      return a
    end
  end
  #else
  return alias_uri
end
override( ruleset ) click to toggle source
# File lib/jcr/jcr.rb, line 78
def override( ruleset )
  overridden = JCR.ingest_ruleset( ruleset, @mapping, nil )
  mapping = {}
  mapping.merge!( @mapping )
  mapping.merge!( overridden.mapping )
  overridden.mapping=mapping
  callbacks = {}
  callbacks.merge!( @callbacks )
  callbacks.merge!( overridden.callbacks )
  overridden.callbacks = callbacks
  overridden.roots.concat( @roots )
  return overridden
end
override!( ruleset ) click to toggle source
# File lib/jcr/jcr.rb, line 92
def override!( ruleset )
  overridden = JCR.ingest_ruleset( ruleset, @mapping, nil )
  @mapping.merge!( overridden.mapping )
  @callbacks.merge!( overridden.callbacks )
  @roots.concat( overridden.roots )
end
remove_ruleset_alias( ruleset_alias ) click to toggle source
# File lib/jcr/jcr.rb, line 43
def remove_ruleset_alias( ruleset_alias )
  if @catalog
    @catalog.delete( ruleset_alias )
  end
end