Class: Extreml
- Inherits:
-
Object
- Object
- Extreml
- Defined in:
- lib/extreml.rb
Instance Method Summary collapse
-
#document ⇒ Object
Expose the entire document.
-
#initialize(xml_file = nil, warnings: true, xml_header: nil) ⇒ Extreml
constructor
A new instance of Extreml.
-
#tree(attributes: false) ⇒ Object
Print the entire document tree.
Constructor Details
#initialize(xml_file = nil, warnings: true, xml_header: nil) ⇒ Extreml
Returns a new instance of Extreml.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/extreml.rb', line 30 def initialize xml_file = nil, warnings: true, xml_header: nil # Warnings flag @warnings = warnings @header = xml_header if xml_file.nil? raise 'Error: please specify an xml file. Nil was given.' elsif !File.file? xml_file raise "Error: file #{xml_file} not found." else # Read file xml = File.read xml_file @body = Hash.new # Get xml header informations header = xml[/^\<\?xml (.*)\?\>/] if header.nil? puts "Warning: #{xml_file}: xml header missing." if @warnings define_singleton_method :header do return nil end else h = header.scan /([\w\?\<]*)=["|']([^'"]*)["|']/ @xml_header = XmlHeader.new h.each do |param| @xml_header.instance_eval do define_singleton_method param[0].to_sym do return param[1] end end end define_singleton_method :header do return @xml_header end end end # Read document doc = xml.match /(?:\<\?xml .*?(?: ?\?\>))?[\t\n\r\f ]*(.*)/m @document = unpack doc[1] end |
Instance Method Details
#document ⇒ Object
Expose the entire document
81 82 83 |
# File 'lib/extreml.rb', line 81 def document return TypeElement.new({name: 'document', content: @document}) end |
#tree(attributes: false) ⇒ Object
Print the entire document tree. For debug purposes
86 87 88 |
# File 'lib/extreml.rb', line 86 def tree attributes: false self.document.__tree attributes end |