require 'hdf' module Clearsilver class Hdf < Neo::Hdf def initialize super @level=0 @cpos="" @position=[] end attr_reader :position, :cpos def push name @position.push(@cpos) @cpos+=name+"." if block_given? yield @cpos=@position.pop end end def pop @cpos=@position.pop end def put name, value value = value.to_s unless value.is_a?(String) self.set_value(@cpos+(name.to_s),value) end def get name self.get_value(@cpos+name) end end class Cs < Neo::Cs end end