# File lib/sax-machine/sax_document.rb, line 53 def elements(name, options = {}) options[:as] ||= name if options[:class] sax_config.add_collection_element(name, options) else class_eval "def add_\#{options[:as]}(value)\n\#{options[:as]} << value\nend\n" sax_config.add_top_level_element(name, options.merge(:collection => true)) end if !instance_methods.include?(options[:as].to_s) class_eval "def \#{options[:as]}\n@\#{options[:as]} ||= []\nend\n" end attr_writer options[:as] unless instance_methods.include?("#{options[:as]}=") end