ladle 0.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/ASL20-LICENSE +343 -0
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE +20 -0
  4. data/NOTICE +52 -0
  5. data/README.md +121 -0
  6. data/lib/ladle.rb +13 -0
  7. data/lib/ladle/Ladle.iml +13 -0
  8. data/lib/ladle/apacheds/antlr-2.7.6.jar +0 -0
  9. data/lib/ladle/apacheds/apacheds-core-1.0.2.jar +0 -0
  10. data/lib/ladle/apacheds/apacheds-core-shared-1.0.2.jar +0 -0
  11. data/lib/ladle/apacheds/apacheds-kerberos-shared-1.0.2.jar +0 -0
  12. data/lib/ladle/apacheds/apacheds-protocol-changepw-1.0.2.jar +0 -0
  13. data/lib/ladle/apacheds/apacheds-protocol-kerberos-1.0.2.jar +0 -0
  14. data/lib/ladle/apacheds/apacheds-protocol-ldap-1.0.2.jar +0 -0
  15. data/lib/ladle/apacheds/apacheds-protocol-ntp-1.0.2.jar +0 -0
  16. data/lib/ladle/apacheds/apacheds-protocol-shared-1.0.2.jar +0 -0
  17. data/lib/ladle/apacheds/apacheds-server-jndi-1.0.2.jar +0 -0
  18. data/lib/ladle/apacheds/apacheds-server-main-1.0.2.jar +0 -0
  19. data/lib/ladle/apacheds/apacheds-server-ssl-1.0.2.jar +0 -0
  20. data/lib/ladle/apacheds/backport-util-concurrent-2.2.jar +0 -0
  21. data/lib/ladle/apacheds/commons-cli-1.0.jar +0 -0
  22. data/lib/ladle/apacheds/commons-collections-3.2.jar +0 -0
  23. data/lib/ladle/apacheds/commons-io-1.4.jar +0 -0
  24. data/lib/ladle/apacheds/commons-lang-2.1.jar +0 -0
  25. data/lib/ladle/apacheds/jcl-over-slf4j-1.5.6.jar +0 -0
  26. data/lib/ladle/apacheds/jdbm-1.0.jar +0 -0
  27. data/lib/ladle/apacheds/log4j-1.2.14.jar +0 -0
  28. data/lib/ladle/apacheds/mina-core-1.0.2.jar +0 -0
  29. data/lib/ladle/apacheds/mina-filter-ssl-1.0.2.jar +0 -0
  30. data/lib/ladle/apacheds/shared-asn1-0.9.5.5.jar +0 -0
  31. data/lib/ladle/apacheds/shared-asn1-codec-0.9.5.5.jar +0 -0
  32. data/lib/ladle/apacheds/shared-ldap-0.9.5.5.jar +0 -0
  33. data/lib/ladle/apacheds/slf4j-api-1.5.6.jar +0 -0
  34. data/lib/ladle/apacheds/slf4j-log4j12-1.5.6.jar +0 -0
  35. data/lib/ladle/apacheds/spring-beans-1.2.8.jar +0 -0
  36. data/lib/ladle/apacheds/spring-context-1.2.8.jar +0 -0
  37. data/lib/ladle/apacheds/spring-core-1.2.8.jar +0 -0
  38. data/lib/ladle/apacheds/xercesImpl-2.0.2.jar +0 -0
  39. data/lib/ladle/default.ldif +292 -0
  40. data/lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.class +0 -0
  41. data/lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.java +14 -0
  42. data/lib/ladle/java/net/detailedbalance/ladle/Main$1.class +0 -0
  43. data/lib/ladle/java/net/detailedbalance/ladle/Main.class +0 -0
  44. data/lib/ladle/java/net/detailedbalance/ladle/Main.java +141 -0
  45. data/lib/ladle/java/net/detailedbalance/ladle/Server.class +0 -0
  46. data/lib/ladle/java/net/detailedbalance/ladle/Server.java +170 -0
  47. data/lib/ladle/jruby_process.rb +61 -0
  48. data/lib/ladle/ruby_process.rb +46 -0
  49. data/lib/ladle/server.rb +334 -0
  50. data/lib/ladle/version.rb +5 -0
  51. data/spec/ladle/animals.ldif +28 -0
  52. data/spec/ladle/server_spec.rb +306 -0
  53. data/spec/ladle/version_spec.rb +11 -0
  54. data/spec/spec_helper.rb +32 -0
  55. metadata +172 -0
@@ -0,0 +1,5 @@
1
+ module Ladle
2
+ ##
3
+ # The current version number for Ladle.
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,28 @@
1
+ version: 1
2
+
3
+ dn: ou=animals,dc=example,dc=net
4
+ objectClass: top
5
+ objectClass: organizationalUnit
6
+ ou: animals
7
+
8
+ dn: uid=aa927,ou=animals,dc=example,dc=net
9
+ objectClass: top
10
+ objectClass: person
11
+ objectClass: organizationalPerson
12
+ objectClass: inetOrgPerson
13
+ cn: Ada Aardvark
14
+ sn: Aardvark
15
+ givenName: Ada
16
+ mail: ada@example.net
17
+ uid: aa927
18
+
19
+ dn: uid=bb954,ou=animals,dc=example,dc=net
20
+ objectClass: top
21
+ objectClass: person
22
+ objectClass: organizationalPerson
23
+ objectClass: inetOrgPerson
24
+ cn: Bob Badger
25
+ sn: Badger
26
+ givenName: Bob
27
+ mail: badger@example.net
28
+ uid: bb954
@@ -0,0 +1,306 @@
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
+
3
+ require 'net/ldap'
4
+
5
+ describe Ladle, "::Server" do
6
+ def create_server(opts = {})
7
+ Ladle::Server.new({ :quiet => true, :tmpdir => tmpdir }.merge(opts))
8
+ end
9
+
10
+ before do
11
+ @server = create_server
12
+ end
13
+
14
+ after do
15
+ @server.stop
16
+
17
+ left_over_pids = `ps`.split("\n").grep(/net.detailedbalance.ladle.Main/).
18
+ collect { |line| line.split(/\s+/)[0].to_i }
19
+ left_over_pids.each { |pid|
20
+ $stderr.puts "Killing leftover process #{pid}"
21
+ Process.kill 15, pid
22
+ }
23
+ left_over_pids.should be_empty
24
+ end
25
+
26
+ describe "initialization of" do
27
+ def preserve_and_wipe_env(*env_vars)
28
+ @old_env = env_vars.inject({}) { |e, k| e[k] = ENV[k]; e }
29
+ @old_env.keys.each { |k| ENV[k] = nil }
30
+ end
31
+
32
+ def restore_env
33
+ @old_env.each { |k, v| ENV[k] = v }
34
+ end
35
+
36
+ describe ":port" do
37
+ it "defaults to 3897" do
38
+ Ladle::Server.new.port.should == 3897
39
+ end
40
+
41
+ it "can be overridden" do
42
+ Ladle::Server.new(:port => 4200).port.should == 4200
43
+ end
44
+ end
45
+
46
+ describe ":domain" do
47
+ it "defaults to dc=example,dc=org" do
48
+ Ladle::Server.new.domain.should == "dc=example,dc=org"
49
+ end
50
+
51
+ it "can be overridden" do
52
+ Ladle::Server.new(:domain => "dc=northwestern,dc=edu").domain.
53
+ should == "dc=northwestern,dc=edu"
54
+ end
55
+
56
+ it "rejects a domain that doesn't start with 'dc='" do
57
+ lambda { Ladle::Server.new(:domain => "foo") }.
58
+ should raise_error("The domain component must start with 'dc='. 'foo' does not.")
59
+ end
60
+ end
61
+
62
+ describe ":ldif" do
63
+ it "defaults to lib/ladle/default.ldif" do
64
+ Ladle::Server.new.ldif.should =~ %r{lib/ladle/default.ldif$}
65
+ end
66
+
67
+ it "can be overridden" do
68
+ ldif_file = "#{tmpdir}/foo.ldif"
69
+ FileUtils.touch ldif_file
70
+ Ladle::Server.new(:ldif => ldif_file).ldif.should == ldif_file
71
+ end
72
+
73
+ it "fails if the file can't be read" do
74
+ lambda { Ladle::Server.new(:ldif => "foo/bar.ldif") }.
75
+ should raise_error("Cannot read specified LDIF file foo/bar.ldif.")
76
+ end
77
+ end
78
+
79
+ describe ":verbose" do
80
+ it "defaults to false" do
81
+ Ladle::Server.new.verbose?.should be_false
82
+ end
83
+
84
+ it "can be overridden" do
85
+ Ladle::Server.new(:verbose => true).verbose?.should be_true
86
+ end
87
+ end
88
+
89
+ describe ":quiet" do
90
+ it "defaults to false" do
91
+ Ladle::Server.new.quiet?.should be_false
92
+ end
93
+
94
+ it "can be overridden" do
95
+ Ladle::Server.new(:quiet => true).quiet?.should be_true
96
+ end
97
+ end
98
+
99
+ describe ":timeout" do
100
+ it "defaults to 15 seconds" do
101
+ Ladle::Server.new.timeout.should == 15
102
+ end
103
+
104
+ it "can be overridden" do
105
+ Ladle::Server.new(:timeout => 27).timeout.should == 27
106
+ end
107
+ end
108
+
109
+ describe ":tmpdir" do
110
+ before do
111
+ preserve_and_wipe_env("TMPDIR", "TEMPDIR")
112
+ end
113
+
114
+ after do
115
+ restore_env
116
+ end
117
+
118
+ it "defaults to TMPDIR if set" do
119
+ ENV["TMPDIR"] = tmpdir('foo')
120
+ Ladle::Server.new.tmpdir.should == tmpdir('foo')
121
+ end
122
+
123
+ it "defaults to TEMPDIR if set" do
124
+ ENV["TEMPDIR"] = tmpdir('baz')
125
+ Ladle::Server.new.tmpdir.should == tmpdir('baz')
126
+ end
127
+
128
+ it "prefers the explicitly provided value" do
129
+ ENV["TMPDIR"] = tmpdir('quux')
130
+ ENV["TEMPDIR"] = tmpdir('bar')
131
+ Ladle::Server.new(:tmpdir => tmpdir('zap')).tmpdir.
132
+ should == tmpdir('zap')
133
+ end
134
+
135
+ it "must exist" do
136
+ lambda { Ladle::Server.new(:tmpdir => 'whatever') }.
137
+ should raise_error(/Tmpdir "whatever" does not exist./)
138
+ end
139
+
140
+ it "must be specified somehow" do
141
+ lambda { Ladle::Server.new }.
142
+ should raise_error(/Cannot guess tmpdir from the environment. Please specify it./)
143
+ end
144
+ end
145
+
146
+ describe ":java" do
147
+ before do
148
+ preserve_and_wipe_env("JAVA_HOME")
149
+ end
150
+
151
+ after do
152
+ restore_env
153
+ end
154
+
155
+ it "relies on the path with no JAVA_HOME" do
156
+ Ladle::Server.new.java_bin.should == "java"
157
+ end
158
+
159
+ it "defaults to JAVA_HOME/bin/java if available" do
160
+ ENV["JAVA_HOME"] = tmpdir('myjdk')
161
+ Ladle::Server.new.java_bin.should == "#{tmpdir}/myjdk/bin/java"
162
+ end
163
+
164
+ it "can be overridden" do
165
+ Ladle::Server.new(:java_bin => File.join(tmpdir('openjdk'), "jre")).java_bin.
166
+ should == "#{tmpdir}/openjdk/jre"
167
+ end
168
+ end
169
+ end
170
+
171
+ describe "running" do
172
+ def should_be_running
173
+ lambda { TCPSocket.new('localhost', @server.port) }.
174
+ should_not raise_error
175
+ end
176
+
177
+ it "blocks until the server is up" do
178
+ @server.start
179
+ should_be_running
180
+ end
181
+
182
+ it "returns the server object" do
183
+ @server.start.should be(@server)
184
+ end
185
+
186
+ it "is safe to invoke twice (in the same thread)" do
187
+ @server.start
188
+ lambda { @server.start }.should_not raise_error
189
+ end
190
+
191
+ it "can be stopped then started again" do
192
+ @server.start
193
+ @server.stop
194
+ @server.start
195
+ lambda { TCPSocket.new('localhost', @server.port) }.
196
+ should_not raise_error
197
+ end
198
+
199
+ it "throws an exception when the server doesn't start up" do
200
+ old_stderr, $stderr = $stderr, StringIO.new
201
+
202
+ @server = create_server(:more_args => ["--fail", "before_start"])
203
+ lambda { @server.start }.should raise_error(/LDAP server failed to start/)
204
+ $stderr.string.should == "ApacheDS process failed: FATAL: Expected failure for testing\n"
205
+
206
+ $stderr = old_stderr
207
+ end
208
+
209
+ it "times out after the specified interval" do
210
+ @server = create_server(:timeout => 3, :more_args => %w(--fail hang))
211
+ lambda { @server.start }.
212
+ should raise_error(/LDAP server startup did not complete within 3 seconds/)
213
+ end
214
+
215
+ it "should use the specified port" do
216
+ @server = create_server(:port => 45678).start
217
+ should_be_running
218
+ end
219
+
220
+ it "uses the specified tmpdir" do
221
+ target = tmpdir('baz')
222
+ @server = create_server(:tmpdir => target).start
223
+ Dir["#{target}/ladle-server-*"].size.should == 1
224
+ end
225
+
226
+ it "cleans up the tmpdir afterward" do
227
+ target = tmpdir('quux')
228
+ @server = create_server(:tmpdir => target).start
229
+ @server.stop
230
+ Dir["#{target}/ladle-server-*"].size.should == 0
231
+ end
232
+ end
233
+
234
+ describe "data" do
235
+ before do
236
+ pending "Net::LDAP doesn't work on 1.9" if RUBY_VERSION =~ /1.9/
237
+ end
238
+
239
+ def with_ldap
240
+ @server.start
241
+ Net::LDAP.open(ldap_parameters) do |ldap|
242
+ return yield ldap
243
+ end
244
+ end
245
+
246
+ def ldap_search(filter, base=nil)
247
+ with_ldap { |ldap|
248
+ ldap.search(
249
+ :base => base || 'dc=example,dc=org',
250
+ :filter => filter
251
+ )
252
+ }
253
+ end
254
+
255
+ def ldap_parameters
256
+ @ldap_parameters ||= {
257
+ :host => 'localhost', :port => @server.port,
258
+ :auth => { :method => :anonymous }
259
+ }
260
+ end
261
+
262
+ describe "the default set" do
263
+ it "has 26 people" do
264
+ ldap_search(Net::LDAP::Filter.pres('uid')).should have(26).people
265
+ end
266
+
267
+ it "has 1 group" do
268
+ ldap_search(Net::LDAP::Filter.pres('ou')).should have(1).group
269
+ end
270
+
271
+ it "has given names" do
272
+ ldap_search(Net::LDAP::Filter.pres('uid')).
273
+ select { |res| !res[:givenname] || res[:givenname].empty? }.should == []
274
+ end
275
+
276
+ it "has e-mail addresses" do
277
+ ldap_search(Net::LDAP::Filter.pres('uid')).
278
+ select { |res| !res[:mail] || res[:mail].empty? }.should == []
279
+ end
280
+
281
+ it "can be searched by value" do
282
+ ldap_search(Net::LDAP::Filter.eq(:givenname, 'Josephine')).
283
+ collect { |res| res[:uid].first }.should == %w(jj243)
284
+ end
285
+ end
286
+
287
+ describe "with a provided set" do
288
+ before do
289
+ @server = create_server(
290
+ :domain => "dc=example,dc=net",
291
+ :ldif => File.expand_path("../animals.ldif", __FILE__)
292
+ )
293
+ end
294
+
295
+ it "has the groups provided by the other LDIF" do
296
+ ldap_search(Net::LDAP::Filter.pres('ou'), 'dc=example,dc=net').
297
+ collect { |result| result[:ou].first }.should == ["animals"]
298
+ end
299
+
300
+ it "has the individuals provided by the other LDIF" do
301
+ ldap_search(Net::LDAP::Filter.pres('uid'), 'dc=example,dc=net').
302
+ collect { |result| result[:givenname].first }.sort.should == %w(Ada Bob)
303
+ end
304
+ end
305
+ end
306
+ end
@@ -0,0 +1,11 @@
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
+
3
+ describe Ladle, "::VERSION" do
4
+ it "exists" do
5
+ lambda { Ladle::VERSION }.should_not raise_error
6
+ end
7
+
8
+ it "has 3 or 4 dot separated parts" do
9
+ Ladle::VERSION.split('.').size.should be_between(3, 4)
10
+ end
11
+ end
@@ -0,0 +1,32 @@
1
+ require 'bundler'
2
+ Bundler.setup
3
+
4
+ require 'rspec'
5
+
6
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
7
+
8
+ require 'ladle'
9
+
10
+ module Ladle::RSpec
11
+ module Tmpdir
12
+ def tmpdir(path=nil)
13
+ @tmpdir ||= File.expand_path("../../tmp/specs", __FILE__)
14
+ full = path ? File.join(@tmpdir, path) : @tmpdir
15
+ FileUtils.mkdir_p full
16
+ full
17
+ end
18
+
19
+ def rm_tmpdir
20
+ if @tmpdir
21
+ FileUtils.rm_rf @tmpdir
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ RSpec.configure do |config|
28
+ config.include(Ladle::RSpec::Tmpdir)
29
+ config.after do
30
+ rm_tmpdir
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,172 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ladle
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: java
11
+ authors:
12
+ - Rhett Sutphin
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-10-21 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 0
30
+ - 0
31
+ version: 2.0.0
32
+ type: :development
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: yard
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 6
44
+ - 1
45
+ version: 0.6.1
46
+ type: :development
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: maruku
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ type: :development
59
+ version_requirements: *id003
60
+ - !ruby/object:Gem::Dependency
61
+ name: ruby-net-ldap
62
+ prerelease: false
63
+ requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ - 0
70
+ - 4
71
+ version: 0.0.4
72
+ type: :development
73
+ version_requirements: *id004
74
+ description: Provides an embedded LDAP server for BDD. The embedded server is built with ApacheDS.
75
+ email:
76
+ - rhett@detailedbalance.net
77
+ executables: []
78
+
79
+ extensions: []
80
+
81
+ extra_rdoc_files: []
82
+
83
+ files:
84
+ - lib/ladle.rb
85
+ - lib/ladle/default.ldif
86
+ - lib/ladle/jruby_process.rb
87
+ - lib/ladle/Ladle.iml
88
+ - lib/ladle/ruby_process.rb
89
+ - lib/ladle/server.rb
90
+ - lib/ladle/version.rb
91
+ - lib/ladle/apacheds/antlr-2.7.6.jar
92
+ - lib/ladle/apacheds/apacheds-core-1.0.2.jar
93
+ - lib/ladle/apacheds/apacheds-core-shared-1.0.2.jar
94
+ - lib/ladle/apacheds/apacheds-kerberos-shared-1.0.2.jar
95
+ - lib/ladle/apacheds/apacheds-protocol-changepw-1.0.2.jar
96
+ - lib/ladle/apacheds/apacheds-protocol-kerberos-1.0.2.jar
97
+ - lib/ladle/apacheds/apacheds-protocol-ldap-1.0.2.jar
98
+ - lib/ladle/apacheds/apacheds-protocol-ntp-1.0.2.jar
99
+ - lib/ladle/apacheds/apacheds-protocol-shared-1.0.2.jar
100
+ - lib/ladle/apacheds/apacheds-server-jndi-1.0.2.jar
101
+ - lib/ladle/apacheds/apacheds-server-main-1.0.2.jar
102
+ - lib/ladle/apacheds/apacheds-server-ssl-1.0.2.jar
103
+ - lib/ladle/apacheds/backport-util-concurrent-2.2.jar
104
+ - lib/ladle/apacheds/commons-cli-1.0.jar
105
+ - lib/ladle/apacheds/commons-collections-3.2.jar
106
+ - lib/ladle/apacheds/commons-io-1.4.jar
107
+ - lib/ladle/apacheds/commons-lang-2.1.jar
108
+ - lib/ladle/apacheds/jcl-over-slf4j-1.5.6.jar
109
+ - lib/ladle/apacheds/jdbm-1.0.jar
110
+ - lib/ladle/apacheds/log4j-1.2.14.jar
111
+ - lib/ladle/apacheds/mina-core-1.0.2.jar
112
+ - lib/ladle/apacheds/mina-filter-ssl-1.0.2.jar
113
+ - lib/ladle/apacheds/shared-asn1-0.9.5.5.jar
114
+ - lib/ladle/apacheds/shared-asn1-codec-0.9.5.5.jar
115
+ - lib/ladle/apacheds/shared-ldap-0.9.5.5.jar
116
+ - lib/ladle/apacheds/slf4j-api-1.5.6.jar
117
+ - lib/ladle/apacheds/slf4j-log4j12-1.5.6.jar
118
+ - lib/ladle/apacheds/spring-beans-1.2.8.jar
119
+ - lib/ladle/apacheds/spring-context-1.2.8.jar
120
+ - lib/ladle/apacheds/spring-core-1.2.8.jar
121
+ - lib/ladle/apacheds/xercesImpl-2.0.2.jar
122
+ - lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.class
123
+ - lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.java
124
+ - lib/ladle/java/net/detailedbalance/ladle/Main$1.class
125
+ - lib/ladle/java/net/detailedbalance/ladle/Main.class
126
+ - lib/ladle/java/net/detailedbalance/ladle/Main.java
127
+ - lib/ladle/java/net/detailedbalance/ladle/Server.class
128
+ - lib/ladle/java/net/detailedbalance/ladle/Server.java
129
+ - spec/spec_helper.rb
130
+ - spec/ladle/animals.ldif
131
+ - spec/ladle/server_spec.rb
132
+ - spec/ladle/version_spec.rb
133
+ - CHANGELOG.md
134
+ - README.md
135
+ - ASL20-LICENSE
136
+ - LICENSE
137
+ - NOTICE
138
+ has_rdoc: true
139
+ homepage: http://github.com/rsutphin/ladle
140
+ licenses: []
141
+
142
+ post_install_message:
143
+ rdoc_options: []
144
+
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ segments:
152
+ - 0
153
+ version: "0"
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ requirements: []
162
+
163
+ rubyforge_project:
164
+ rubygems_version: 1.3.6
165
+ signing_key:
166
+ specification_version: 3
167
+ summary: Dishes out steaming helpings of LDAP for fluid testing
168
+ test_files:
169
+ - spec/spec_helper.rb
170
+ - spec/ladle/animals.ldif
171
+ - spec/ladle/server_spec.rb
172
+ - spec/ladle/version_spec.rb