activeldap 1.2.4 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/Gemfile +18 -0
  2. data/LICENSE +2 -1
  3. data/README.textile +137 -0
  4. data/doc/text/development.textile +50 -0
  5. data/{CHANGES → doc/text/news.textile} +256 -237
  6. data/doc/text/rails.textile +144 -0
  7. data/doc/text/tutorial.textile +1005 -0
  8. data/lib/active_ldap/adapter/base.rb +5 -3
  9. data/lib/active_ldap/adapter/net_ldap_ext.rb +1 -1
  10. data/lib/active_ldap/associations.rb +6 -2
  11. data/lib/active_ldap/base.rb +16 -71
  12. data/lib/active_ldap/callbacks.rb +52 -33
  13. data/lib/active_ldap/configuration.rb +2 -2
  14. data/lib/active_ldap/get_text/parser.rb +2 -2
  15. data/lib/active_ldap/human_readable.rb +5 -4
  16. data/lib/active_ldap/log_subscriber.rb +50 -0
  17. data/lib/active_ldap/persistence.rb +65 -0
  18. data/lib/active_ldap/railtie.rb +40 -0
  19. data/lib/active_ldap/railties/controller_runtime.rb +48 -0
  20. data/lib/active_ldap/user_password.rb +1 -0
  21. data/lib/active_ldap/validations.rb +34 -72
  22. data/lib/active_ldap.rb +13 -912
  23. data/{rails_generators/model_active_ldap → lib/rails/generators/active_ldap/model}/USAGE +2 -1
  24. data/lib/rails/generators/active_ldap/model/model_generator.rb +47 -0
  25. data/{rails_generators/model_active_ldap → lib/rails/generators/active_ldap/model}/templates/model_active_ldap.rb +0 -0
  26. data/lib/rails/generators/active_ldap/scaffold/scaffold_generator.rb +14 -0
  27. data/{rails_generators/scaffold_active_ldap → lib/rails/generators/active_ldap/scaffold}/templates/ldap.yml +1 -0
  28. data/test/test_base.rb +9 -0
  29. data/test/test_callback.rb +2 -6
  30. data/test/test_connection.rb +2 -2
  31. data/test/test_user.rb +2 -2
  32. data/test/test_validation.rb +11 -11
  33. metadata +165 -106
  34. data/README +0 -155
  35. data/Rakefile +0 -133
  36. data/rails/README +0 -54
  37. data/rails/init.rb +0 -33
  38. data/rails_generators/model_active_ldap/model_active_ldap_generator.rb +0 -69
  39. data/rails_generators/model_active_ldap/templates/unit_test.rb +0 -8
  40. data/rails_generators/scaffold_active_ldap/scaffold_active_ldap_generator.rb +0 -7
  41. data/test/al-test-utils.rb +0 -439
  42. data/test/command.rb +0 -112
  43. data/test/config.yaml.sample +0 -6
  44. data/test/fixtures/lower_case_object_class_schema.rb +0 -802
  45. data/test/run-test.rb +0 -44
@@ -8,10 +8,11 @@ Description:
8
8
  test/fixtures/singular_name.yml. It will not create a migration.
9
9
 
10
10
  Examples:
11
- ./script/generate model_active_ldap user
11
+ rails generate active_ldap:model user
12
12
 
13
13
  This will create a User model:
14
14
  Model: app/models/user.rb
15
15
  Test: test/unit/user_test.rb
16
16
  Fixtures: test/fixtures/users.yml
17
17
 
18
+
@@ -0,0 +1,47 @@
1
+ require 'rails/generators'
2
+ require 'active_ldap'
3
+
4
+ module ActiveLdap
5
+ module Generators
6
+ class ModelGenerator < Rails::Generators::NamedBase
7
+ include ActiveLdap::GetTextSupport
8
+ source_root File.expand_path('../templates', __FILE__)
9
+
10
+ class_option :dn_attribute, :type => :string, :default => 'cn',
11
+ :desc => _("Use ATTRIBUTE as default DN attribute for " \
12
+ "instances of this model")
13
+ class_option :prefix, :type => :string,
14
+ :desc => _("Use PREFIX as prefix for this model")
15
+ class_option :classes, :type => :array, :default => nil,
16
+ :desc => _("Use CLASSES as required objectClass for instances of this model")
17
+
18
+ def create_model
19
+ template 'model_active_ldap.rb', File.join('app/models', class_path, "#{file_name}.rb")
20
+ end
21
+
22
+ hook_for :test_framework, :as => :model
23
+
24
+ private
25
+
26
+ def prefix
27
+ options[:prefix] || default_prefix
28
+ end
29
+
30
+ def default_prefix
31
+ "ou=#{name.demodulize.pluralize}"
32
+ end
33
+
34
+ def ldap_mapping(indent=' ')
35
+ mapping = "ldap_mapping "
36
+ mapping_options = [":dn_attribute => #{options[:dn_attribute].dump}"]
37
+ mapping_options << ":prefix => #{prefix.dump}"
38
+ if options[:classes]
39
+ mapping_options << ":classes => #{options[:classes].inspect}"
40
+ end
41
+ mapping_options = mapping_options.join(",\n#{indent}#{' ' * mapping.size}")
42
+ "#{indent}#{mapping}#{mapping_options}"
43
+ end
44
+ end
45
+ end
46
+ end
47
+
@@ -0,0 +1,14 @@
1
+ require 'rails/generators'
2
+
3
+ module ActiveLdap
4
+ module Generators
5
+ class ScaffoldGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ def create_ldap_yml
9
+ copy_file 'ldap.yml', 'config/ldap.yml'
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -16,3 +16,4 @@ production:
16
16
  base: dc=production,dc=local,dc=net
17
17
  bind_dn: cn=admin,dc=local,dc=net
18
18
  password: secret
19
+
data/test/test_base.rb CHANGED
@@ -1127,6 +1127,15 @@ EOX
1127
1127
  end
1128
1128
  end
1129
1129
 
1130
+ def test_to_key
1131
+ uid = "bob"
1132
+ new_user = @user_class.new
1133
+ assert_equal(nil, new_user.to_key)
1134
+
1135
+ new_user.uid = uid
1136
+ assert_equal([new_user.dn], new_user.to_key)
1137
+ end
1138
+
1130
1139
  private
1131
1140
  def detect_modify(object)
1132
1141
  modify_called = false
@@ -14,12 +14,8 @@ class TestCallback < Test::Unit::TestCase
14
14
  @group_class.instance_variable_set("@initialized_entries",
15
15
  initialized_entries)
16
16
  @group_class.module_eval do
17
- define_method(:after_find) do
18
- self.class.instance_variable_get("@found_entries") << self
19
- end
20
- define_method(:after_initialize) do
21
- self.class.instance_variable_get("@initialized_entries") << self
22
- end
17
+ after_find "self.class.instance_variable_get('@found_entries') << self"
18
+ after_initialize "self.class.instance_variable_get('@initialized_entries') << self"
23
19
  end
24
20
 
25
21
  assert_equal([], found_entries)
@@ -47,7 +47,7 @@ class TestConnection < Test::Unit::TestCase
47
47
  raise
48
48
  end
49
49
  end
50
- assert_equal("Unknown key(s): bind_format", exception.message)
50
+ assert_equal("Unknown key: bind_format", exception.message)
51
51
  end
52
52
 
53
53
  def test_can_reconnect?
@@ -71,10 +71,10 @@ class TestConnection < Test::Unit::TestCase
71
71
 
72
72
  priority :low
73
73
  def test_retry_limit_0_with_nonexistent_host
74
+ omit("this test will take a long time...")
74
75
  config = current_configuration.merge("host" => "192.168.29.29",
75
76
  "retry_limit" => 0)
76
77
  ActiveLdap::Base.setup_connection(config)
77
- notify("maybe take a long time")
78
78
  assert_raise(ActiveLdap::ConnectionError) do
79
79
  ActiveLdap::Base.find(:first)
80
80
  end
data/test/test_user.rb CHANGED
@@ -65,7 +65,7 @@ class TestUser < Test::Unit::TestCase
65
65
  assert_equal(see_also, user.see_also)
66
66
 
67
67
  assert(!user.valid?)
68
- assert(user.errors.invalid?(:sn))
68
+ assert(user.errors[:sn].any?)
69
69
  errors = %w(person organizationalPerson
70
70
  inetOrgPerson).collect do |object_class|
71
71
  if ActiveLdap.get_text_supported?
@@ -79,7 +79,7 @@ class TestUser < Test::Unit::TestCase
79
79
  user._(format) % [object_class, "surname"]
80
80
  end
81
81
  end
82
- assert_equal(errors.sort, user.errors.on(:sn).sort)
82
+ assert_equal(errors.sort, user.errors[:sn].sort)
83
83
  user.sn = ['User']
84
84
  assert(user.valid?)
85
85
  assert_equal(0, user.errors.size)
@@ -12,7 +12,7 @@ class TestValidation < Test::Unit::TestCase
12
12
  user1.id = user2.id
13
13
  assert_false(user1.save)
14
14
 
15
- format = la_('distinguishedName')
15
+ format = la_('distinguishedName').humanize
16
16
  format << ' ' << _("is duplicated: %s")
17
17
  assert_equal([format % [user2.dn.to_s]],
18
18
  user1.errors.full_messages)
@@ -27,7 +27,7 @@ class TestValidation < Test::Unit::TestCase
27
27
  user.jpeg_photo = "XXX"
28
28
  assert_not_predicate(user, :save)
29
29
 
30
- format = la_('jpegPhoto')
30
+ format = la_('jpegPhoto').humanize
31
31
  format << ' ' << _("has invalid format: %s: required syntax: %s: %s")
32
32
  arguments = [_("<binary-value>"),
33
33
  lsd_("1.3.6.1.4.1.1466.115.121.1.28"),
@@ -73,7 +73,7 @@ class TestValidation < Test::Unit::TestCase
73
73
  reason = _("attribute value is missing")
74
74
  invalid_format = _("%s is invalid distinguished name (DN): %s")
75
75
  invalid_message = invalid_format % ["uid==,#{user.class.base}", reason]
76
- format = la_('distinguishedName')
76
+ format = la_('distinguishedName').humanize
77
77
  format << ' ' << _("is invalid: %s")
78
78
  message = format % invalid_message
79
79
  assert_equal([message],
@@ -87,7 +87,7 @@ class TestValidation < Test::Unit::TestCase
87
87
  reason = _("attribute value is missing")
88
88
  invalid_format = _("%s is invalid distinguished name (DN): %s")
89
89
  invalid_message = invalid_format % ["uid==,#{user.class.base}", reason]
90
- format = la_('distinguishedName')
90
+ format = la_('distinguishedName').humanize
91
91
  format << ' ' << _("is invalid: %s")
92
92
  message = format % invalid_message
93
93
  assert_equal([message], user.errors.full_messages)
@@ -99,7 +99,7 @@ class TestValidation < Test::Unit::TestCase
99
99
  assert(user.valid?)
100
100
  user.uid_number = ""
101
101
  assert(!user.valid?)
102
- format = la_('uidNumber')
102
+ format = la_('uidNumber').humanize
103
103
  format << ' ' << _("is required attribute by objectClass '%s'")
104
104
  blank_message = format % loc_("posixAccount")
105
105
  assert_equal([blank_message], user.errors.full_messages)
@@ -111,7 +111,7 @@ class TestValidation < Test::Unit::TestCase
111
111
  assert(user.save)
112
112
  user.class.excluded_classes = ['person']
113
113
  assert(!user.save)
114
- format = la_("objectClass")
114
+ format = la_("objectClass").humanize
115
115
  format << ' ' << n_("has excluded value: %s",
116
116
  "has excluded values: %s",
117
117
  1)
@@ -153,7 +153,7 @@ class TestValidation < Test::Unit::TestCase
153
153
  user.add_class("strongAuthenticationUser")
154
154
  user.user_certificate = nil
155
155
  assert(!user.save)
156
- assert(user.errors.invalid?(:userCertificate))
156
+ assert(user.errors[:userCertificate].any?)
157
157
  assert_equal(1, user.errors.size)
158
158
  end
159
159
  end
@@ -183,7 +183,7 @@ class TestValidation < Test::Unit::TestCase
183
183
  assert(ou_class.new("YYY").save)
184
184
  ou = ou_class.new("YYY")
185
185
  assert(!ou.save)
186
- format = la_("distinguishedName")
186
+ format = la_("distinguishedName").humanize
187
187
  format << ' ' << _("is duplicated: %s")
188
188
  message = format % ou.dn
189
189
  assert_equal([message], ou.errors.full_messages)
@@ -214,7 +214,7 @@ class TestValidation < Test::Unit::TestCase
214
214
 
215
215
  @group_class.validates_presence_of(:description)
216
216
  assert(!group.valid?)
217
- assert(group.errors.invalid?(:description))
217
+ assert(group.errors[:description].any?)
218
218
  assert_equal(1, group.errors.size)
219
219
  end
220
220
  end
@@ -225,7 +225,7 @@ class TestValidation < Test::Unit::TestCase
225
225
  assert_not_nil(syntax_description)
226
226
  params = [formatted_value, syntax_description, reason]
227
227
  params.unshift(option) if option
228
- localized_name = la_(name)
228
+ localized_name = la_(name).humanize
229
229
  format = localized_name << ' '
230
230
  if option
231
231
  format << _("(%s) has invalid format: %s: required syntax: %s: %s")
@@ -245,7 +245,7 @@ class TestValidation < Test::Unit::TestCase
245
245
 
246
246
  user.see_also = value
247
247
  assert(!user.save)
248
- assert(user.errors.invalid?(:seeAlso))
248
+ assert(user.errors[:seeAlso].any?)
249
249
  assert_equal(1, user.errors.size)
250
250
 
251
251
  reason_params = [invalid_value, _("attribute value is missing")]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeldap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
+ - 3
7
8
  - 1
8
- - 2
9
- - 4
10
- version: 1.2.4
9
+ - 0
10
+ version: 3.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Will Drewry
@@ -16,104 +16,166 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-05-13 00:00:00 Z
19
+ date: 2011-07-09 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: activerecord
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
- hash: 21
27
+ hash: 15424109
30
28
  segments:
31
- - 2
32
29
  - 3
33
- - 11
34
- version: 2.3.11
30
+ - 1
31
+ - 0
32
+ - rc
33
+ - 4
34
+ version: 3.1.0.rc4
35
+ name: activemodel
36
+ prerelease: false
35
37
  type: :runtime
36
- version_requirements: *id001
38
+ requirement: *id001
37
39
  - !ruby/object:Gem::Dependency
38
- name: locale
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - "="
43
+ - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 5
45
+ hash: 3
46
46
  segments:
47
- - 2
48
47
  - 0
49
- - 5
50
- version: 2.0.5
48
+ version: "0"
49
+ name: locale
50
+ prerelease: false
51
51
  type: :runtime
52
- version_requirements: *id002
52
+ requirement: *id002
53
53
  - !ruby/object:Gem::Dependency
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
54
63
  name: fast_gettext
55
64
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
65
+ type: :runtime
66
+ requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
57
69
  none: false
58
70
  requirements:
59
- - - "="
71
+ - - ">="
60
72
  - !ruby/object:Gem::Version
61
- hash: 27
73
+ hash: 3
62
74
  segments:
63
75
  - 0
64
- - 5
65
- - 8
66
- version: 0.5.8
76
+ version: "0"
77
+ name: gettext_i18n_rails
78
+ prerelease: false
67
79
  type: :runtime
68
- version_requirements: *id003
80
+ requirement: *id004
69
81
  - !ruby/object:Gem::Dependency
70
- name: gettext_i18n_rails
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ name: ruby-ldap
71
92
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
93
+ type: :development
94
+ requirement: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
73
97
  none: false
74
98
  requirements:
75
- - - "="
99
+ - - ">="
76
100
  - !ruby/object:Gem::Version
77
- hash: 19
101
+ hash: 3
78
102
  segments:
79
103
  - 0
80
- - 2
81
- - 2
82
- version: 0.2.2
83
- type: :runtime
84
- version_requirements: *id004
104
+ version: "0"
105
+ name: net-ldap
106
+ prerelease: false
107
+ type: :development
108
+ requirement: *id006
85
109
  - !ruby/object:Gem::Dependency
86
- name: rubyforge
110
+ version_requirements: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ name: jeweler
87
120
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
121
+ type: :development
122
+ requirement: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ version_requirements: &id008 !ruby/object:Gem::Requirement
89
125
  none: false
90
126
  requirements:
91
127
  - - ">="
92
128
  - !ruby/object:Gem::Version
93
- hash: 7
129
+ hash: 3
94
130
  segments:
95
- - 2
96
131
  - 0
97
- - 4
98
- version: 2.0.4
132
+ version: "0"
133
+ name: test-unit
134
+ prerelease: false
99
135
  type: :development
100
- version_requirements: *id005
136
+ requirement: *id008
101
137
  - !ruby/object:Gem::Dependency
102
- name: hoe
138
+ version_requirements: &id009 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ name: test-unit-notify
103
148
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
149
+ type: :development
150
+ requirement: *id009
151
+ - !ruby/object:Gem::Dependency
152
+ version_requirements: &id010 !ruby/object:Gem::Requirement
105
153
  none: false
106
154
  requirements:
107
155
  - - ">="
108
156
  - !ruby/object:Gem::Version
109
- hash: 21
157
+ hash: 3
110
158
  segments:
111
- - 2
112
- - 6
113
- - 1
114
- version: 2.6.1
159
+ - 0
160
+ version: "0"
161
+ name: yard
162
+ prerelease: false
115
163
  type: :development
116
- version_requirements: *id006
164
+ requirement: *id010
165
+ - !ruby/object:Gem::Dependency
166
+ version_requirements: &id011 !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
175
+ name: RedCloth
176
+ prerelease: false
177
+ type: :development
178
+ requirement: *id011
117
179
  description: " 'ActiveLdap' is a ruby extension library which provides a clean\n objected oriented interface to the Ruby/LDAP library. It was inspired\n by ActiveRecord. This is not nearly as clean or as flexible as\n ActiveRecord, but it is still trivial to define new objects and manipulate\n them with minimal difficulty.\n"
118
180
  email:
119
181
  - redpig@dataspill.org
@@ -123,19 +185,21 @@ executables: []
123
185
  extensions: []
124
186
 
125
187
  extra_rdoc_files:
126
- - README
127
- - CHANGES
128
- - COPYING
129
188
  - LICENSE
189
+ - README.textile
190
+ - TODO
130
191
  files:
131
- - CHANGES
132
192
  - COPYING
193
+ - Gemfile
133
194
  - LICENSE
134
- - README
135
- - Rakefile
195
+ - README.textile
136
196
  - TODO
137
197
  - benchmark/bench-al.rb
138
198
  - benchmark/config.yaml.sample
199
+ - doc/text/development.textile
200
+ - doc/text/news.textile
201
+ - doc/text/rails.textile
202
+ - doc/text/tutorial.textile
139
203
  - examples/config.yaml.example
140
204
  - examples/example.der
141
205
  - examples/example.jpg
@@ -194,9 +258,13 @@ files:
194
258
  - lib/active_ldap/human_readable.rb
195
259
  - lib/active_ldap/ldap_error.rb
196
260
  - lib/active_ldap/ldif.rb
261
+ - lib/active_ldap/log_subscriber.rb
197
262
  - lib/active_ldap/object_class.rb
198
263
  - lib/active_ldap/operations.rb
264
+ - lib/active_ldap/persistence.rb
199
265
  - lib/active_ldap/populate.rb
266
+ - lib/active_ldap/railtie.rb
267
+ - lib/active_ldap/railties/controller_runtime.rb
200
268
  - lib/active_ldap/schema.rb
201
269
  - lib/active_ldap/schema/syntaxes.rb
202
270
  - lib/active_ldap/timeout.rb
@@ -204,65 +272,56 @@ files:
204
272
  - lib/active_ldap/user_password.rb
205
273
  - lib/active_ldap/validations.rb
206
274
  - lib/active_ldap/xml.rb
275
+ - lib/rails/generators/active_ldap/model/USAGE
276
+ - lib/rails/generators/active_ldap/model/model_generator.rb
277
+ - lib/rails/generators/active_ldap/model/templates/model_active_ldap.rb
278
+ - lib/rails/generators/active_ldap/scaffold/scaffold_generator.rb
279
+ - lib/rails/generators/active_ldap/scaffold/templates/ldap.yml
207
280
  - po/en/active-ldap.po
208
281
  - po/ja/active-ldap.po
209
- - rails/README
210
- - rails/init.rb
211
- - rails_generators/model_active_ldap/USAGE
212
- - rails_generators/model_active_ldap/model_active_ldap_generator.rb
213
- - rails_generators/model_active_ldap/templates/model_active_ldap.rb
214
- - rails_generators/model_active_ldap/templates/unit_test.rb
215
- - rails_generators/scaffold_active_ldap/scaffold_active_ldap_generator.rb
216
- - rails_generators/scaffold_active_ldap/templates/ldap.yml
217
- - test/al-test-utils.rb
218
- - test/command.rb
219
- - test/config.yaml.sample
220
- - test/fixtures/lower_case_object_class_schema.rb
221
- - test/run-test.rb
222
- - test/test_acts_as_tree.rb
223
- - test/test_adapter.rb
224
- - test/test_associations.rb
225
- - test/test_attributes.rb
226
- - test/test_base.rb
227
- - test/test_base_per_instance.rb
228
- - test/test_bind.rb
229
- - test/test_callback.rb
230
- - test/test_configuration.rb
231
- - test/test_connection.rb
232
- - test/test_connection_per_class.rb
233
- - test/test_connection_per_dn.rb
234
- - test/test_dn.rb
235
- - test/test_find.rb
282
+ - test/test_lpasswd.rb
236
283
  - test/test_groupadd.rb
237
284
  - test/test_groupdel.rb
285
+ - test/test_base_per_instance.rb
238
286
  - test/test_groupls.rb
239
- - test/test_groupmod.rb
240
- - test/test_ldif.rb
241
- - test/test_load.rb
242
- - test/test_lpasswd.rb
243
- - test/test_object_class.rb
244
- - test/test_reflection.rb
287
+ - test/test_connection_per_dn.rb
288
+ - test/test_connection.rb
289
+ - test/test_usermod-lang-add.rb
290
+ - test/test_associations.rb
245
291
  - test/test_schema.rb
292
+ - test/test_dn.rb
293
+ - test/test_attributes.rb
294
+ - test/test_object_class.rb
295
+ - test/test_acts_as_tree.rb
296
+ - test/test_usermod-binary-add.rb
297
+ - test/test_find.rb
298
+ - test/test_bind.rb
299
+ - test/test_useradd-binary.rb
300
+ - test/test_callback.rb
301
+ - test/test_useradd.rb
302
+ - test/test_usermod.rb
246
303
  - test/test_syntax.rb
304
+ - test/test_usermod-binary-add-time.rb
247
305
  - test/test_user.rb
248
306
  - test/test_user_password.rb
249
- - test/test_useradd-binary.rb
250
- - test/test_useradd.rb
251
- - test/test_userdel.rb
307
+ - test/test_base.rb
308
+ - test/test_adapter.rb
309
+ - test/test_groupmod.rb
310
+ - test/test_reflection.rb
311
+ - test/test_load.rb
312
+ - test/test_configuration.rb
252
313
  - test/test_userls.rb
253
- - test/test_usermod-binary-add-time.rb
254
- - test/test_usermod-binary-add.rb
255
- - test/test_usermod-binary-del.rb
256
- - test/test_usermod-lang-add.rb
257
- - test/test_usermod.rb
314
+ - test/test_userdel.rb
258
315
  - test/test_validation.rb
259
- homepage: http://rubyforge.org/projects/ruby-activeldap/
260
- licenses: []
261
-
316
+ - test/test_ldif.rb
317
+ - test/test_connection_per_class.rb
318
+ - test/test_usermod-binary-del.rb
319
+ homepage: http://ruby-activeldap.rubyforge.org/
320
+ licenses:
321
+ - Ruby's or GPLv2 or later
262
322
  post_install_message:
263
- rdoc_options:
264
- - --main
265
- - lib/active_ldap.rb
323
+ rdoc_options: []
324
+
266
325
  require_paths:
267
326
  - lib
268
327
  required_ruby_version: !ruby/object:Gem::Requirement