class ROM::LDAP::DSML::Exporter
Export Entry objects as DSML
files.
@param tuple [Entry]
@api private
Public Instance Methods
to_dsml()
click to toggle source
<?xml version="1.0" encoding="UTF-8"?> <dsml> <directory-entries> <entry dn="dn">
@return [String]
@api private
# File lib/rom/ldap/extensions/dsml.rb, line 41 def to_dsml doc = XML::Document.new doc.encoding = XML::Encoding::UTF_8 doc.root = root = create_node('dsml') root << (entries = create_node('directory-entries')) map_tuples { |entry| entries << entry } doc.to_s end
Private Instance Methods
attributes(attrs) { |attr_node| ... }
click to toggle source
@example
{'cn'=>['Peter']} => <attr name="cn"><value>Peter</value></attr>
@yield [LibXML::XML::Node]
# File lib/rom/ldap/extensions/dsml.rb, line 98 def attributes(attrs) attrs.each do |attr_name, attr_values| attr_node = create_node('attr', name: attr_name) attr_values.each do |value| value_node = create_node('value') value_node.content = value attr_node << value_node end yield(attr_node) end end
classes(values) { |class_node| ... }
click to toggle source
Returns â<objectclass/>â if param is nil
<oc-value>inetOrgPerson</oc-value>
@param [Array, Nil] values
@yield [LibXML::XML::Node]
# File lib/rom/ldap/extensions/dsml.rb, line 81 def classes(values) class_node = create_node('objectclass') values.to_a.each do |value| value_node = create_node('oc-value') value_node.content = value class_node << value_node end yield(class_node) end
create_node(type, params = EMPTY_OPTS)
click to toggle source
@return [LibXML::XML::Node]
# File lib/rom/ldap/extensions/dsml.rb, line 113 def create_node(type, params = EMPTY_OPTS) node = XML::Node.new(type) unless params.empty? params.each do |key, value| XML::Attr.new(node, key.to_s, value.to_s) end end node end
map_tuples() { |entry_node| ... }
click to toggle source
<entry dn=âdnâ>
@yield [LibXML::XML::Node]
# File lib/rom/ldap/extensions/dsml.rb, line 56 def map_tuples tuples.each do |tuple| next if tuple.empty? dn = tuple.delete('dn') objc = tuple.delete('objectClass') entry_node = create_node('entry', dn: dn&.first) classes(objc) { |c| entry_node << c } attributes(tuple) { |a| entry_node << a } yield(entry_node) end end