ladle 0.1.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.
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 +201 -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,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ladle
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Rhett Sutphin
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-21 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: open4
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
34
+ version: 1.0.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 2
48
+ - 0
49
+ - 0
50
+ version: 2.0.0
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: yard
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 5
62
+ segments:
63
+ - 0
64
+ - 6
65
+ - 1
66
+ version: 0.6.1
67
+ type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: rdiscount
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 0
80
+ version: "0"
81
+ type: :development
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: ruby-net-ldap
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ~>
90
+ - !ruby/object:Gem::Version
91
+ hash: 23
92
+ segments:
93
+ - 0
94
+ - 0
95
+ - 4
96
+ version: 0.0.4
97
+ type: :development
98
+ version_requirements: *id005
99
+ description: Provides an embedded LDAP server for BDD. The embedded server is built with ApacheDS.
100
+ email:
101
+ - rhett@detailedbalance.net
102
+ executables: []
103
+
104
+ extensions: []
105
+
106
+ extra_rdoc_files: []
107
+
108
+ files:
109
+ - lib/ladle/apacheds/antlr-2.7.6.jar
110
+ - lib/ladle/apacheds/apacheds-core-1.0.2.jar
111
+ - lib/ladle/apacheds/apacheds-core-shared-1.0.2.jar
112
+ - lib/ladle/apacheds/apacheds-kerberos-shared-1.0.2.jar
113
+ - lib/ladle/apacheds/apacheds-protocol-changepw-1.0.2.jar
114
+ - lib/ladle/apacheds/apacheds-protocol-kerberos-1.0.2.jar
115
+ - lib/ladle/apacheds/apacheds-protocol-ldap-1.0.2.jar
116
+ - lib/ladle/apacheds/apacheds-protocol-ntp-1.0.2.jar
117
+ - lib/ladle/apacheds/apacheds-protocol-shared-1.0.2.jar
118
+ - lib/ladle/apacheds/apacheds-server-jndi-1.0.2.jar
119
+ - lib/ladle/apacheds/apacheds-server-main-1.0.2.jar
120
+ - lib/ladle/apacheds/apacheds-server-ssl-1.0.2.jar
121
+ - lib/ladle/apacheds/backport-util-concurrent-2.2.jar
122
+ - lib/ladle/apacheds/commons-cli-1.0.jar
123
+ - lib/ladle/apacheds/commons-collections-3.2.jar
124
+ - lib/ladle/apacheds/commons-io-1.4.jar
125
+ - lib/ladle/apacheds/commons-lang-2.1.jar
126
+ - lib/ladle/apacheds/jcl-over-slf4j-1.5.6.jar
127
+ - lib/ladle/apacheds/jdbm-1.0.jar
128
+ - lib/ladle/apacheds/log4j-1.2.14.jar
129
+ - lib/ladle/apacheds/mina-core-1.0.2.jar
130
+ - lib/ladle/apacheds/mina-filter-ssl-1.0.2.jar
131
+ - lib/ladle/apacheds/shared-asn1-0.9.5.5.jar
132
+ - lib/ladle/apacheds/shared-asn1-codec-0.9.5.5.jar
133
+ - lib/ladle/apacheds/shared-ldap-0.9.5.5.jar
134
+ - lib/ladle/apacheds/slf4j-api-1.5.6.jar
135
+ - lib/ladle/apacheds/slf4j-log4j12-1.5.6.jar
136
+ - lib/ladle/apacheds/spring-beans-1.2.8.jar
137
+ - lib/ladle/apacheds/spring-context-1.2.8.jar
138
+ - lib/ladle/apacheds/spring-core-1.2.8.jar
139
+ - lib/ladle/apacheds/xercesImpl-2.0.2.jar
140
+ - lib/ladle/default.ldif
141
+ - lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.class
142
+ - lib/ladle/java/net/detailedbalance/ladle/LadleFatalException.java
143
+ - lib/ladle/java/net/detailedbalance/ladle/Main$1.class
144
+ - lib/ladle/java/net/detailedbalance/ladle/Main.class
145
+ - lib/ladle/java/net/detailedbalance/ladle/Main.java
146
+ - lib/ladle/java/net/detailedbalance/ladle/Server.class
147
+ - lib/ladle/java/net/detailedbalance/ladle/Server.java
148
+ - lib/ladle/jruby_process.rb
149
+ - lib/ladle/Ladle.iml
150
+ - lib/ladle/ruby_process.rb
151
+ - lib/ladle/server.rb
152
+ - lib/ladle/version.rb
153
+ - lib/ladle.rb
154
+ - spec/ladle/animals.ldif
155
+ - spec/ladle/server_spec.rb
156
+ - spec/ladle/version_spec.rb
157
+ - spec/spec_helper.rb
158
+ - CHANGELOG.md
159
+ - README.md
160
+ - ASL20-LICENSE
161
+ - LICENSE
162
+ - NOTICE
163
+ has_rdoc: true
164
+ homepage: http://github.com/rsutphin/ladle
165
+ licenses: []
166
+
167
+ post_install_message:
168
+ rdoc_options: []
169
+
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ hash: 3
178
+ segments:
179
+ - 0
180
+ version: "0"
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ hash: 3
187
+ segments:
188
+ - 0
189
+ version: "0"
190
+ requirements: []
191
+
192
+ rubyforge_project:
193
+ rubygems_version: 1.3.7
194
+ signing_key:
195
+ specification_version: 3
196
+ summary: Dishes out steaming helpings of LDAP for fluid testing
197
+ test_files:
198
+ - spec/ladle/animals.ldif
199
+ - spec/ladle/server_spec.rb
200
+ - spec/ladle/version_spec.rb
201
+ - spec/spec_helper.rb