Class: Criteria::ClassHeirarchyContext

Inherits:
Object
  • Object
show all
Defined in:
lib/criteria.rb

Instance Method Summary collapse

Constructor Details

#initializeClassHeirarchyContext

Returns a new instance of ClassHeirarchyContext.



616
617
618
# File 'lib/criteria.rb', line 616

def initialize()
  @vars = {}
end

Instance Method Details

#get(cl, var, default = nil) ⇒ Object



619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
# File 'lib/criteria.rb', line 619

def get(cl, var, default=nil)
  @vars[cl]||={}
  out = @vars[cl][var]

  # search up the inheretence heirarchy
  clazz = cl
  while !clazz.nil? and out.nil?
    out = (@vars[clazz]||{})[var]
    clazz = clazz.superclass
  end

  # set default if no value was found
  if out.nil? and !default.nil?
    @vars[cl][var] = default
    out = @vars[cl][var]
  end

  out
end

#set(cl, var, value) ⇒ Object



643
644
645
646
# File 'lib/criteria.rb', line 643

def set(cl,var, value)
  @vars[cl]||={}
  @vars[cl][var] = value
end

#unset(cl, var) ⇒ Object



639
640
641
# File 'lib/criteria.rb', line 639

def unset(cl, var)
  @vars[cl].delete var
end