Class: Moxml::Attribute
- Inherits:
-
Node
- Object
- Node
- Moxml::Attribute
show all
- Defined in:
- lib/moxml/attribute.rb
Constant Summary
Constants inherited
from Node
Node::TYPES
Instance Attribute Summary
Attributes inherited from Node
#context, #native, #parent_node
Instance Method Summary
collapse
Methods inherited from Node
adapter, #add_child, #add_next_sibling, #add_previous_sibling, #after, #at_xpath, #before, #blank?, #children, #document, #dup, #each, #each_node, #find, #find_all, #first_child, #has_children?, #initialize, #last_child, #namespaces, #next_sibling, node_type_map, #outer_xml, #parent, #previous_sibling, #refresh_native!, #replace, #to_xml, wrap, #xpath
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_entity_reference_name, #validate_pi_target, #validate_prefix, #validate_uri
Constructor Details
This class inherits a constructor from Moxml::Node
Instance Method Details
#==(other) ⇒ Object
63
64
65
66
67
|
# File 'lib/moxml/attribute.rb', line 63
def ==(other)
return false unless other.is_a?(Attribute)
name == other.name && value == other.value && namespace == other.namespace
end
|
#attribute? ⇒ Boolean
77
78
79
|
# File 'lib/moxml/attribute.rb', line 77
def attribute?
true
end
|
#element ⇒ Object
50
51
52
53
|
# File 'lib/moxml/attribute.rb', line 50
def element
native_elem = adapter.attribute_element(@native)
native_elem && Moxml::Node.wrap(native_elem, context)
end
|
#identifier ⇒ String
Returns the primary identifier for this attribute (its name)
15
16
17
|
# File 'lib/moxml/attribute.rb', line 15
def identifier
name
end
|
#name ⇒ Object
5
6
7
|
# File 'lib/moxml/attribute.rb', line 5
def name
@native.name
end
|
#name=(new_name) ⇒ Object
9
10
11
|
# File 'lib/moxml/attribute.rb', line 9
def name=(new_name)
adapter.set_attribute_name(@native, new_name)
end
|
#namespace ⇒ Object
41
42
43
44
|
# File 'lib/moxml/attribute.rb', line 41
def namespace
ns = adapter.namespace(@native)
ns && Namespace.new(ns, context)
end
|
#namespace=(ns) ⇒ Object
46
47
48
|
# File 'lib/moxml/attribute.rb', line 46
def namespace=(ns)
adapter.set_namespace(@native, ns&.native)
end
|
#raw_value ⇒ Object
Returns raw native value without entity marker restoration.
27
28
29
|
# File 'lib/moxml/attribute.rb', line 27
def raw_value
@native.value
end
|
#remove ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/moxml/attribute.rb', line 55
def remove
adapter.remove_attribute(adapter.attribute_element(@native), name)
if @parent_node.is_a?(Moxml::Element)
@parent_node.invalidate_attribute_cache!
end
self
end
|
#text ⇒ Object
XPath conversion compatibility - attributes need .text method that returns their value for XPath comparisons
37
38
39
|
# File 'lib/moxml/attribute.rb', line 37
def text
value
end
|
#to_s ⇒ Object
69
70
71
72
73
74
75
|
# File 'lib/moxml/attribute.rb', line 69
def to_s
if namespace&.prefix
"#{namespace.prefix}:#{name}=\"#{value}\""
else
"#{name}=\"#{value}\""
end
end
|
#value ⇒ Object
Also known as:
content
19
20
21
22
|
# File 'lib/moxml/attribute.rb', line 19
def value
val = @native.value.to_s
adapter.restore_entities(val)
end
|
#value=(new_value) ⇒ Object
31
32
33
|
# File 'lib/moxml/attribute.rb', line 31
def value=(new_value)
adapter.set_attribute_value(@native, new_value)
end
|