Class: Moxml::Adapter::Base

Inherits:
Object
  • Object
show all
Extended by:
XmlUtils
Defined in:
lib/moxml/adapter/base.rb

Direct Known Subclasses

Nokogiri, Oga, Ox, Rexml

Class Method Summary collapse

Methods included from XmlUtils

encode_entities, normalize_xml_value, validate_comment_content, validate_declaration_encoding, validate_declaration_standalone, validate_declaration_version, validate_element_name, validate_pi_target, validate_prefix, validate_uri

Class Method Details

.create_cdata(content) ⇒ Object



36
37
38
# File 'lib/moxml/adapter/base.rb', line 36

def create_cdata(content)
  create_native_cdata(normalize_xml_value(content))
end

.create_comment(content) ⇒ Object



40
41
42
43
# File 'lib/moxml/adapter/base.rb', line 40

def create_comment(content)
  validate_comment_content(content)
  create_native_comment(normalize_xml_value(content))
end

.create_declaration(version = "1.0", encoding = "UTF-8", standalone = nil) ⇒ Object



54
55
56
57
58
59
# File 'lib/moxml/adapter/base.rb', line 54

def create_declaration(version = "1.0", encoding = "UTF-8", standalone = nil)
  validate_declaration_version(version)
  validate_declaration_encoding(encoding)
  validate_declaration_standalone(standalone)
  create_native_declaration(version, encoding, standalone)
end

.create_doctype(name, external_id, system_id) ⇒ Object



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

def create_doctype(name, external_id, system_id)
  create_native_doctype(name, external_id, system_id)
end

.create_document(native_doc = nil) ⇒ Object

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/moxml/adapter/base.rb', line 22

def create_document(native_doc = nil)
  raise NotImplementedError
end

.create_element(name) ⇒ Object



26
27
28
29
# File 'lib/moxml/adapter/base.rb', line 26

def create_element(name)
  validate_element_name(name)
  create_native_element(name)
end

.create_namespace(element, prefix, uri) ⇒ Object



61
62
63
64
65
# File 'lib/moxml/adapter/base.rb', line 61

def create_namespace(element, prefix, uri)
  validate_prefix(prefix) if prefix
  validate_uri(uri)
  create_native_namespace(element, prefix, uri)
end

.create_processing_instruction(target, content) ⇒ Object



49
50
51
52
# File 'lib/moxml/adapter/base.rb', line 49

def create_processing_instruction(target, content)
  validate_pi_target(target)
  create_native_processing_instruction(target, normalize_xml_value(content))
end

.create_text(content) ⇒ Object



31
32
33
34
# File 'lib/moxml/adapter/base.rb', line 31

def create_text(content)
  # Ox freezes the content, so we need to dup it
  create_native_text(normalize_xml_value(content).dup)
end

.duplicate_node(node) ⇒ Object



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

def duplicate_node(node)
  node.dup
end

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

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/moxml/adapter/base.rb', line 18

def parse(xml, options = {})
  raise NotImplementedError
end

.patch_node(node, _parent = nil) ⇒ Object



79
80
81
82
# File 'lib/moxml/adapter/base.rb', line 79

def patch_node(node, _parent = nil)
  # monkey-patch the native node if necessary
  node
end

.set_attribute_name(attribute, name) ⇒ Object



67
68
69
# File 'lib/moxml/adapter/base.rb', line 67

def set_attribute_name(attribute, name)
  attribute.name = name
end

.set_attribute_value(attribute, value) ⇒ Object



71
72
73
# File 'lib/moxml/adapter/base.rb', line 71

def set_attribute_value(attribute, value)
  attribute.value = value
end

.set_root(doc, element) ⇒ Object

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/moxml/adapter/base.rb', line 14

def set_root(doc, element)
  raise NotImplementedError
end