Class: Net::LDAP::Dataset
- Inherits:
-
Hash
- Object
- Hash
- Net::LDAP::Dataset
- Defined in:
- vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/dataset.rb
Instance Attribute Summary
-
- (Object) comments
readonly
Returns the value of attribute comments.
Class Method Summary
Instance Method Summary
-
- (Dataset) initialize
constructor
A new instance of Dataset.
- - (Object) to_ldif
Methods inherited from Hash
Constructor Details
- (Dataset) initialize
A new instance of Dataset
76 77 78 |
# File 'vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/dataset.rb', line 76 def initialize @comments = [] end |
Instance Attribute Details
- (Object) comments (readonly)
Returns the value of attribute comments
36 37 38 |
# File 'vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/dataset.rb', line 36 def comments @comments end |
Class Method Details
+ (Object) read_ldif(io)
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 |
# File 'vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/dataset.rb', line 39 def Dataset::read_ldif io ds = Dataset.new line = io.gets && chomp dn = nil while line io.gets and chomp if $_ =~ /^[\s]+/ line << " " << $' else nextline = $_ if line =~ /^\#/ ds.comments << line elsif line =~ /^dn:[\s]*/i dn = $' ds[dn] = Hash.new {|k,v| k[v] = []} elsif line.length == 0 dn = nil elsif line =~ /^([^:]+):([\:]?)[\s]*/ # $1 is the attribute name # $2 is a colon iff the attr-value is base-64 encoded # $' is the attr-value # Avoid the Base64 class because not all Ruby versions have it. attrvalue = ($2 == ":") ? $'.unpack('m').shift : $' ds[dn][$1.downcase.intern] << attrvalue end line = nextline end end ds end |
Instance Method Details
- (Object) to_ldif
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/dataset.rb', line 81 def to_ldif ary = [] ary += (@comments || []) keys.sort.each {|dn| ary << "dn: #{dn}" self[dn].keys.map {|sym| sym.to_s}.sort.each {|attr| self[dn][attr.intern].each {|val| ary << "#{attr}: #{val}" } } ary << "" } block_given? and ary.each {|line| yield line} ary end |