lom 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lom/ldap/converters.rb +13 -13
- data/lib/lom/ldap/extensions.rb +1 -0
- data/lib/lom/mapper.rb +56 -2
- data/lib/lom/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3a1b6204446324ec92c63443efc8c9578db7628aa4544f42c435a1605ec05aa
|
4
|
+
data.tar.gz: 7fa61741e1c85db00a5ab168d2814afcc0a21ba0ba2a914649f7e8ef6f6df815
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 468294c000324a795a2a3cb67de0436c492e4d08caffea7d14bbc47486b81640fb2c352df233771aefa1cc136e71a1dbcc98efe24c49c7b79d6952f824e1787d
|
7
|
+
data.tar.gz: 4add52468b4bb244a215dfa2ac32244417f3b282d615c19f2dcc30cc97601bd9c678180047da6de881bd9952f6423f3d5ac743d0d575dd80079f9d6ddb3e5432
|
data/lib/lom/ldap/converters.rb
CHANGED
@@ -10,25 +10,25 @@ module Converters
|
|
10
10
|
#
|
11
11
|
# Integer
|
12
12
|
#
|
13
|
-
|
13
|
+
|
14
14
|
refine Integer do
|
15
15
|
def to_ldap
|
16
16
|
self.to_s
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
refine Integer.singleton_class do
|
21
21
|
def from_ldap(v)
|
22
22
|
Integer(v)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
|
27
27
|
|
28
28
|
#
|
29
29
|
# String
|
30
30
|
#
|
31
|
-
|
31
|
+
|
32
32
|
refine String do
|
33
33
|
def to_ldap
|
34
34
|
self
|
@@ -41,15 +41,15 @@ module Converters
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
|
45
45
|
|
46
46
|
#
|
47
47
|
# Date / Time
|
48
48
|
#
|
49
|
-
|
49
|
+
|
50
50
|
refine Date do
|
51
51
|
def to_ldap
|
52
|
-
self.
|
52
|
+
self.strftime("%Y%m%d%H%M%SZ")
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -74,12 +74,12 @@ module Converters
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
|
77
|
+
|
78
78
|
|
79
79
|
#
|
80
80
|
# Boolean
|
81
81
|
#
|
82
|
-
|
82
|
+
|
83
83
|
refine TrueClass do
|
84
84
|
def to_ldap
|
85
85
|
'TRUE'
|
@@ -96,20 +96,20 @@ module Converters
|
|
96
96
|
def to_ldap
|
97
97
|
'FALSE'
|
98
98
|
end
|
99
|
-
end
|
99
|
+
end
|
100
|
+
|
100
101
|
|
101
102
|
|
102
|
-
|
103
103
|
#
|
104
104
|
# Array / Set
|
105
105
|
#
|
106
|
-
|
106
|
+
|
107
107
|
refine Set do
|
108
108
|
def to_ldap
|
109
109
|
self.to_a.to_ldap
|
110
110
|
end
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
refine Array do
|
114
114
|
def to_ldap
|
115
115
|
self.map { |val|
|
data/lib/lom/ldap/extensions.rb
CHANGED
data/lib/lom/mapper.rb
CHANGED
@@ -56,6 +56,27 @@ module InstanceMethods
|
|
56
56
|
lh.add(dn: dn, attributes: attrs)
|
57
57
|
}
|
58
58
|
end
|
59
|
+
|
60
|
+
|
61
|
+
# Delete object from ldap
|
62
|
+
#
|
63
|
+
# @return [true, false]
|
64
|
+
#
|
65
|
+
def delete!
|
66
|
+
model = self.class
|
67
|
+
attrs = instance_exec(self, &model.ldap_to)
|
68
|
+
.transform_values {|v|
|
69
|
+
# Don't use Array(), not what you think on
|
70
|
+
# some classes such as Time
|
71
|
+
v = [ ] if v.nil?
|
72
|
+
v = [ v ] unless v.is_a?(Array)
|
73
|
+
v.to_ldap
|
74
|
+
}
|
75
|
+
id, _ = Array(attrs[model.ldap_prefix])
|
76
|
+
raise MappingError, 'prefix for dn has multiple values' if _
|
77
|
+
|
78
|
+
model.delete!(id)
|
79
|
+
end
|
59
80
|
end
|
60
81
|
end
|
61
82
|
|
@@ -296,8 +317,16 @@ module Mapper
|
|
296
317
|
def list(&rawfilter)
|
297
318
|
each(:id, rawfilter: rawfilter).to_a
|
298
319
|
end
|
299
|
-
|
300
|
-
|
320
|
+
|
321
|
+
# Fetch the requested entry.
|
322
|
+
#
|
323
|
+
# @param param [String] entry name
|
324
|
+
#
|
325
|
+
# @raise [LOM::EntryNotFound] if entry not found
|
326
|
+
#
|
327
|
+
# @return [Object]
|
328
|
+
#
|
329
|
+
def fetch(name)
|
301
330
|
dn = ldap_dn_from_id(name)
|
302
331
|
attrs = _ldap_attrs
|
303
332
|
entry = lh.get(:dn => dn, :attributes => attrs)
|
@@ -310,8 +339,33 @@ module Mapper
|
|
310
339
|
lh.delete(:dn => dn)
|
311
340
|
end
|
312
341
|
|
342
|
+
# Get the requested entry.
|
343
|
+
# Same as #fetch but return nil if not found
|
344
|
+
#
|
345
|
+
# @param param [String] entry name
|
346
|
+
#
|
347
|
+
# @return [nil] entry not found
|
348
|
+
# @return [Object]
|
349
|
+
#
|
350
|
+
def get(name)
|
351
|
+
fetch(name)
|
352
|
+
rescue LOM::EntryNotFound
|
353
|
+
nil
|
354
|
+
end
|
355
|
+
|
313
356
|
alias [] get
|
314
357
|
|
358
|
+
# Test existence of entry
|
359
|
+
#
|
360
|
+
# @param param [String] entry name
|
361
|
+
#
|
362
|
+
# @return [Boolean]
|
363
|
+
#
|
364
|
+
def exists?(name)
|
365
|
+
dn = ldap_dn_from_id(name)
|
366
|
+
lh.get(:dn => dn, :return_result => false)
|
367
|
+
end
|
368
|
+
|
315
369
|
private
|
316
370
|
|
317
371
|
def _ldap_branch
|
data/lib/lom/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stéphane D'Alu
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: net-ldap
|
@@ -79,7 +78,6 @@ homepage: https://github.com/sdalu/lom
|
|
79
78
|
licenses:
|
80
79
|
- MIT
|
81
80
|
metadata: {}
|
82
|
-
post_install_message:
|
83
81
|
rdoc_options: []
|
84
82
|
require_paths:
|
85
83
|
- lib
|
@@ -94,8 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
92
|
- !ruby/object:Gem::Version
|
95
93
|
version: '0'
|
96
94
|
requirements: []
|
97
|
-
rubygems_version: 3.
|
98
|
-
signing_key:
|
95
|
+
rubygems_version: 3.6.9
|
99
96
|
specification_version: 4
|
100
97
|
summary: LDAP Object Mapper
|
101
98
|
test_files: []
|