class Paradocs::Context

Attributes

environment[R]
path[R]
top[R]

Public Class Methods

new(path=nil, top=Top.new, environment={}, subschemes={}) click to toggle source
# File lib/paradocs/context.rb, line 17
def initialize(path=nil, top=Top.new, environment={}, subschemes={})
  @top = top
  @path = Array(path).compact
  @environment = environment
  @subschemes = subschemes
end

Public Instance Methods

add_error(msg) click to toggle source
# File lib/paradocs/context.rb, line 35
def add_error(msg)
  top.add_error(string_path, msg)
end
errors() click to toggle source
# File lib/paradocs/context.rb, line 31
def errors
  top.errors
end
sub(key) click to toggle source
# File lib/paradocs/context.rb, line 39
def sub(key)
  self.class.new(path + [key], top, environment, @subschemes)
end
subschema(subschema_name) click to toggle source
# File lib/paradocs/context.rb, line 24
def subschema(subschema_name)
  subschema = @subschemes[subschema_name]
  return unless subschema
  @subschemes.merge!(subschema.subschemes)
  subschema
end

Protected Instance Methods

string_path() click to toggle source
# File lib/paradocs/context.rb, line 46
def string_path
  path.reduce(['$']) do |m, segment|
    m << (segment.is_a?(Integer) ? "[#{segment}]" : ".#{segment}")
    m
  end.join
end