Class: Moxml::Document

Inherits:
Node
  • Object
show all
Defined in:
lib/moxml/document.rb

Instance Attribute Summary

Attributes inherited from Node

#native

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#add_next_sibling, #add_previous_sibling, #children, #column, #initialize, #inner_html, #inner_html=, #line, #next_sibling, #outer_html, #parent, #path, #previous_sibling, #remove, #replace, #text, #text=, wrap

Constructor Details

This class inherits a constructor from Moxml::Node

Class Method Details

.parse(input, options = {}) ⇒ Object



3
4
5
# File 'lib/moxml/document.rb', line 3

def self.parse(input, options = {})
  new(Moxml.adapter.parse(input, options))
end

Instance Method Details

#add_declaration(version = "1.0", encoding = "UTF-8", standalone = nil) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/moxml/document.rb', line 65

def add_declaration(version = "1.0", encoding = "UTF-8", standalone = nil)
  decl = Declaration.new(version, encoding, standalone)
  if declaration
    declaration.replace(decl)
  else
    add_child(decl)
  end
  decl
end

#at_css(selector) ⇒ Object



83
84
85
86
# File 'lib/moxml/document.rb', line 83

def at_css(selector)
  node = adapter.at_css(native, selector)
  node.nil? ? nil : wrap_node(node)
end

#at_xpath(expression, namespaces = {}) ⇒ Object



88
89
90
91
# File 'lib/moxml/document.rb', line 88

def at_xpath(expression, namespaces = {})
  node = adapter.at_xpath(native, expression, namespaces)
  node.nil? ? nil : wrap_node(node)
end

#create_cdata(content) ⇒ Object



19
20
21
# File 'lib/moxml/document.rb', line 19

def create_cdata(content)
  Cdata.new(adapter.create_cdata(native, content))
end

#create_comment(content) ⇒ Object



23
24
25
# File 'lib/moxml/document.rb', line 23

def create_comment(content)
  Comment.new(adapter.create_comment(native, content))
end

#create_element(name) ⇒ Object



11
12
13
# File 'lib/moxml/document.rb', line 11

def create_element(name)
  Element.new(adapter.create_element(native, name))
end

#create_processing_instruction(target, content) ⇒ Object



27
28
29
30
31
# File 'lib/moxml/document.rb', line 27

def create_processing_instruction(target, content)
  ProcessingInstruction.new(
    adapter.create_processing_instruction(native, target, content)
  )
end

#create_text(content) ⇒ Object



15
16
17
# File 'lib/moxml/document.rb', line 15

def create_text(content)
  Text.new(adapter.create_text(native, content))
end

#css(selector) ⇒ Object



75
76
77
# File 'lib/moxml/document.rb', line 75

def css(selector)
  NodeSet.new(adapter.css(native, selector))
end

#declarationObject



61
62
63
# File 'lib/moxml/document.rb', line 61

def declaration
  children.find { |node| node.is_a?(Declaration) }
end

#encodingObject



37
38
39
# File 'lib/moxml/document.rb', line 37

def encoding
  declaration&.encoding
end

#encoding=(encoding) ⇒ Object



41
42
43
# File 'lib/moxml/document.rb', line 41

def encoding=(encoding)
  (declaration || add_declaration).encoding = encoding
end

#rootObject



7
8
9
# File 'lib/moxml/document.rb', line 7

def root
  wrap_node(adapter.root(native))
end

#standaloneObject



53
54
55
# File 'lib/moxml/document.rb', line 53

def standalone
  declaration&.standalone
end

#standalone=(standalone) ⇒ Object



57
58
59
# File 'lib/moxml/document.rb', line 57

def standalone=(standalone)
  (declaration || add_declaration).standalone = standalone
end

#to_xml(options = {}) ⇒ Object



33
34
35
# File 'lib/moxml/document.rb', line 33

def to_xml(options = {})
  adapter.serialize(native, options)
end

#versionObject



45
46
47
# File 'lib/moxml/document.rb', line 45

def version
  declaration&.version
end

#version=(version) ⇒ Object



49
50
51
# File 'lib/moxml/document.rb', line 49

def version=(version)
  (declaration || add_declaration).version = version
end

#xpath(expression, namespaces = {}) ⇒ Object



79
80
81
# File 'lib/moxml/document.rb', line 79

def xpath(expression, namespaces = {})
  NodeSet.new(adapter.xpath(native, expression, namespaces))
end