# File lib/more/facets/opencascade.rb, line 70
  def method_missing( sym, arg=nil )
    type = sym.to_s[-1,1]
    name = sym.to_s.gsub(/[=!?]$/, '').to_sym
    if type == '='
      self[name] = arg
    elsif type == '!'
      self[name] = arg
      self
    elsif type == '?'
      self[name]
    else
      if val = self[name]
        if Hash === val
          self[name] = self.class.new(val)
        else
          self[name]
        end
      else
        self[name] = self.class.new
      end
    end
  end