diff --git a/lib/oga.rb b/lib/oga.rb index bfdc401..8498725 100644 --- a/lib/oga.rb +++ b/lib/oga.rb @@ -2,6 +2,9 @@ require 'ast' require 'set' require 'stringio' +require_relative 'oga/version' +require_relative 'oga/oga' + # Load these first so that the native extensions don't have to define the # Oga::XML namespace. require_relative 'oga/xml/lexer' diff --git a/lib/oga/oga.rb b/lib/oga/oga.rb new file mode 100644 index 0000000..7f40378 --- /dev/null +++ b/lib/oga/oga.rb @@ -0,0 +1,27 @@ +module Oga + ## + # Parses the given XML document. + # + # @example + # document = Oga.parse_xml('Hello') + # + # @param [String|IO] xml The XML input to parse. + # @return [Oga::XML::Document] + # + def self.parse_xml(xml) + return XML::Parser.new(xml).parse + end + + ## + # Parses the given HTML document. + # + # @example + # document = Oga.parse_html('...') + # + # @param [String|IO] html The HTML input to parse. + # @return [Oga::XML::Document] + # + def self.parse_html(html) + return HTML::Parser.new(html).parse + end +end # Oga diff --git a/spec/oga/oga_spec.rb b/spec/oga/oga_spec.rb new file mode 100644 index 0000000..7f42554 --- /dev/null +++ b/spec/oga/oga_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe Oga do + context 'parse_xml' do + example 'parse an XML document' do + document = described_class.parse_xml('foo') + + document.is_a?(Oga::XML::Document).should == true + end + end + + context 'parse_html' do + example 'parse an HTML document' do + document = described_class.parse_xml('') + + document.is_a?(Oga::XML::Document).should == true + end + end +end