Class: Nori

Inherits:
Object
  • Object
show all
Defined in:
lib/nori.rb,
lib/nori/version.rb,
lib/nori/parser/rexml.rb,
lib/nori/core_ext/hash.rb,
lib/nori/string_io_file.rb,
lib/nori/core_ext/object.rb,
lib/nori/core_ext/string.rb,
lib/nori/parser/nokogiri.rb,
lib/nori/xml_utility_node.rb,
lib/nori/string_with_attributes.rb

Defined Under Namespace

Modules: CoreExt, Parser Classes: StringIOFile, StringWithAttributes, XMLUtilityNode

Constant Summary collapse

PARSERS =
{ :rexml => "REXML", :nokogiri => "Nokogiri" }
VERSION =
"2.0.3"

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Nori

Returns a new instance of Nori.



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/nori.rb', line 9

def initialize(options = {})
  defaults = {
    :strip_namespaces     => false,
    :convert_tags_to      => nil,
    :advanced_typecasting => true,
    :parser               => :nokogiri
  }

  validate_options! defaults.keys, options.keys
  @options = defaults.merge(options)
end

Instance Method Details

#parse(xml) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/nori.rb', line 21

def parse(xml)
  cleaned_xml = xml.strip
  return {} if cleaned_xml.empty?

  parser = load_parser @options[:parser]
  parser.parse(cleaned_xml, @options)
end