Sha256: 08ab2681ae2405950da2bda0abe4855b200c30ccec23e160851c9c58cfe9e7e6
Contents?: true
Size: 996 Bytes
Versions: 2
Compression:
Stored size: 996 Bytes
Contents
class Quickbooks::DtdParser < Quickbooks::QbxmlParser include Quickbooks::Support::ClassBuilder def parse_file(qbxml_file) parse( cleanup_qbxml( File.read(qbxml_file))) end private def process_leaf_node(xml_obj, parent_class) attr_name, qb_type = parse_leaf_node_data(xml_obj) if parent_class add_casting_attribute(parent_class, attr_name, qb_type) end end def process_non_leaf_node(xml_obj, parent_class) klass = build_qbxml_class(xml_obj) attr_name = to_attribute_name(xml_obj) if parent_class add_strict_attribute(parent_class, attr_name, klass) end klass end def process_comment_node(xml_obj, parent_class) parent_class end # helpers def build_qbxml_class(xml_obj) obj_name = xml_obj.name unless qbxml_class_defined?(obj_name) klass = Class.new(QbxmlBase) get_schema_namespace.const_set(obj_name, klass) add_xml_template(klass, xml_obj.to_xml) else klass = get_schema_namespace.const_get(obj_name) end klass end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
quickbooks_api-0.0.3 | lib/quickbooks/dtd_parser.rb |
quickbooks_api-0.0.2 | lib/quickbooks/dtd_parser.rb |