ladle 0.1.0-java

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.
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