module Feedjira

Feedjira

Feedjira::Configuration

Constants

NoParserAvailable
VERSION

Public Class Methods

parse(xml, parser: nil, &block) click to toggle source

Parse XML with first compatible parser

@example

xml = HTTParty.get("http://example.com").body
Feedjira.parse(xml)
# File lib/feedjira.rb, line 59
def parse(xml, parser: nil, &block)
  parser ||= parser_for_xml(xml)

  if parser.nil?
    raise NoParserAvailable, "No valid parser for XML."
  end

  parser.parse(xml, &block)
end
parser_for_xml(xml) click to toggle source

Find compatible parser for given XML

@example

xml = HTTParty.get("http://example.com").body
parser = Feedjira.parser_for_xml(xml)
parser.parse(xml)
# File lib/feedjira.rb, line 76
def parser_for_xml(xml)
  start_of_doc = xml.slice(0, 2000)
  Feedjira.parsers.detect { |klass| klass.able_to_parse?(start_of_doc) }
end

Private Instance Methods

parse(xml, parser: nil, &block) click to toggle source

Parse XML with first compatible parser

@example

xml = HTTParty.get("http://example.com").body
Feedjira.parse(xml)
# File lib/feedjira.rb, line 59
def parse(xml, parser: nil, &block)
  parser ||= parser_for_xml(xml)

  if parser.nil?
    raise NoParserAvailable, "No valid parser for XML."
  end

  parser.parse(xml, &block)
end
parser_for_xml(xml) click to toggle source

Find compatible parser for given XML

@example

xml = HTTParty.get("http://example.com").body
parser = Feedjira.parser_for_xml(xml)
parser.parse(xml)
# File lib/feedjira.rb, line 76
def parser_for_xml(xml)
  start_of_doc = xml.slice(0, 2000)
  Feedjira.parsers.detect { |klass| klass.able_to_parse?(start_of_doc) }
end