Sha256: 6dcccf9df16a95ae2ba2e48027b66930b09be5b4138041e731ad5fb8545079a6

Contents?: true

Size: 956 Bytes

Versions: 11

Compression:

Stored size: 956 Bytes

Contents

require 'genesis_ruby/parsers/xml'
require 'genesis_ruby/errors/parser_error'

module GenesisRuby
  # Parser handler
  class Parser

    # XML Parser
    XML  = 'xml'.freeze

    # JSON Parser
    JSON = 'json'.freeze

    # Initialize the Parser Interface based on the Response requirements
    def initialize(response_interface)
      case response_interface
      when XML
        @parser_context = GenesisRuby::Parsers::Xml.new
      else
        raise GenesisRuby::ParserError, 'Invalid Parser interface!'
      end
    end

    # Parsed document
    def structure
      parser_context.structure
    end

    # Parse tree-structure into Builder document
    def parse_document(document)
      parser_context.parse_document(document)
    end

    # Indicates that the Root element will not be included in the generated Object
    def skip_root_node
      parser_context.skip_root_node
    end

    private

    attr_accessor :parser_context

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
genesis_ruby-0.2.0 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.9 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.8 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.7 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.6 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.5 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.4 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.3 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.2 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.1 lib/genesis_ruby/parser.rb
genesis_ruby-0.1.0 lib/genesis_ruby/parser.rb