treequel 1.0.1 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/ChangeLog +176 -14
  2. data/LICENSE +1 -1
  3. data/Rakefile +61 -45
  4. data/Rakefile.local +20 -0
  5. data/bin/treequel +502 -269
  6. data/examples/ldap-rack-auth.rb +2 -0
  7. data/lib/treequel.rb +221 -18
  8. data/lib/treequel/branch.rb +410 -201
  9. data/lib/treequel/branchcollection.rb +25 -13
  10. data/lib/treequel/branchset.rb +42 -40
  11. data/lib/treequel/constants.rb +233 -3
  12. data/lib/treequel/control.rb +95 -0
  13. data/lib/treequel/controls/contentsync.rb +138 -0
  14. data/lib/treequel/controls/pagedresults.rb +162 -0
  15. data/lib/treequel/controls/sortedresults.rb +216 -0
  16. data/lib/treequel/directory.rb +212 -65
  17. data/lib/treequel/exceptions.rb +11 -12
  18. data/lib/treequel/filter.rb +1 -12
  19. data/lib/treequel/mixins.rb +83 -47
  20. data/lib/treequel/monkeypatches.rb +29 -0
  21. data/lib/treequel/schema.rb +23 -19
  22. data/lib/treequel/schema/attributetype.rb +33 -3
  23. data/lib/treequel/schema/ldapsyntax.rb +0 -11
  24. data/lib/treequel/schema/matchingrule.rb +0 -11
  25. data/lib/treequel/schema/matchingruleuse.rb +0 -11
  26. data/lib/treequel/schema/objectclass.rb +36 -10
  27. data/lib/treequel/schema/table.rb +159 -0
  28. data/lib/treequel/sequel_integration.rb +7 -7
  29. data/lib/treequel/utils.rb +4 -66
  30. data/rake/documentation.rb +89 -0
  31. data/rake/helpers.rb +375 -307
  32. data/rake/hg.rb +16 -2
  33. data/rake/manual.rb +11 -6
  34. data/rake/packaging.rb +20 -35
  35. data/rake/publishing.rb +22 -62
  36. data/spec/lib/constants.rb +20 -0
  37. data/spec/lib/control_behavior.rb +44 -0
  38. data/spec/lib/matchers.rb +51 -0
  39. data/spec/treequel/branch_spec.rb +88 -29
  40. data/spec/treequel/branchcollection_spec.rb +24 -1
  41. data/spec/treequel/branchset_spec.rb +123 -51
  42. data/spec/treequel/control_spec.rb +48 -0
  43. data/spec/treequel/controls/contentsync_spec.rb +38 -0
  44. data/spec/treequel/controls/pagedresults_spec.rb +138 -0
  45. data/spec/treequel/controls/sortedresults_spec.rb +171 -0
  46. data/spec/treequel/directory_spec.rb +186 -16
  47. data/spec/treequel/mixins_spec.rb +42 -3
  48. data/spec/treequel/schema/attributetype_spec.rb +22 -20
  49. data/spec/treequel/schema/objectclass_spec.rb +67 -46
  50. data/spec/treequel/schema/table_spec.rb +134 -0
  51. data/spec/treequel_spec.rb +277 -15
  52. metadata +89 -108
  53. data/bin/treequel.orig +0 -963
  54. data/examples/ldap-monitor.rb +0 -143
  55. data/examples/ldap-monitor/public/css/master.css +0 -328
  56. data/examples/ldap-monitor/public/images/card_small.png +0 -0
  57. data/examples/ldap-monitor/public/images/chain_small.png +0 -0
  58. data/examples/ldap-monitor/public/images/globe_small.png +0 -0
  59. data/examples/ldap-monitor/public/images/globe_small_green.png +0 -0
  60. data/examples/ldap-monitor/public/images/plug.png +0 -0
  61. data/examples/ldap-monitor/public/images/shadows/large-30-down.png +0 -0
  62. data/examples/ldap-monitor/public/images/tick.png +0 -0
  63. data/examples/ldap-monitor/public/images/tick_circle.png +0 -0
  64. data/examples/ldap-monitor/public/images/treequel-favicon.png +0 -0
  65. data/examples/ldap-monitor/views/backends.erb +0 -41
  66. data/examples/ldap-monitor/views/connections.erb +0 -74
  67. data/examples/ldap-monitor/views/databases.erb +0 -39
  68. data/examples/ldap-monitor/views/dump_subsystem.erb +0 -14
  69. data/examples/ldap-monitor/views/index.erb +0 -14
  70. data/examples/ldap-monitor/views/layout.erb +0 -35
  71. data/examples/ldap-monitor/views/listeners.erb +0 -30
  72. data/rake/rdoc.rb +0 -30
  73. data/rake/win32.rb +0 -190
data/ChangeLog CHANGED
@@ -1,4 +1,166 @@
1
- 207[tip] c5e4cb039999 2009-11-17 20:35 -0800 ged
1
+ 261[tip] 0188c2ba5b7e 2010-07-07 23:21 -0700 ged
2
+ Added tag 1.0.4 for changeset 0ec4ff0ce67f
3
+
4
+ 260[1.0.4] 0ec4ff0ce67f 2010-07-07 23:21 -0700 ged
5
+ Added signature for changeset c8534439a5bc
6
+
7
+ 259 c8534439a5bc 2010-07-07 23:20 -0700 ged
8
+ Bumping version to 1.0.4 because I'm an idiot and included some files that were intended for a future version in 1.0.3.
9
+
10
+ 258 47bb9cd7af3b 2010-07-07 22:32 -0700 ged
11
+ Added tag 1.0.3 for changeset 65be21a77bfe
12
+
13
+ 257[1.0.3] 65be21a77bfe 2010-07-07 22:32 -0700 ged
14
+ Added signature for changeset fd86e30957a6
15
+
16
+ 256 fd86e30957a6 2010-07-07 19:04 -0700 ged
17
+ Build system update, prep for 1.0.3 release.
18
+
19
+ 255 dd880dcd1b9a 2010-06-14 16:18 -0700 ged
20
+ Fix the 'parent' command in the treequel shell and the success message for the 'cp' command.
21
+
22
+ 254 c2a696248d22 2010-06-14 15:58 -0700 ged
23
+ Treequel shell cleanup, new subcommand, Treequel::Directory#bound_user
24
+
25
+ 253 61d5aae13b7e 2010-06-10 15:11 -0700 ged
26
+ Added 'cp' treequel shell command, removed FOLDED_LDIF_ATTRVAL_SPEC pattern.
27
+
28
+ 252 d9073c3a9f0e 2010-05-27 05:56 -0700 ged
29
+ Treequel shell cleanup, support config-loaded directory, Branch#move fixes
30
+
31
+ 251 0982bb19bfb9 2010-05-03 15:04 -0700 ged
32
+ Treequel shell work, made schema tables more Hash-like.
33
+
34
+ 250 b725e5424fa9 2010-04-14 14:33 -0700 ged
35
+ Fixed a bug in Treequel.read_opts_from_config which caused
36
+
37
+ 249 561646be1b80 2010-04-13 16:49 -0700 ged
38
+ More YARD docs
39
+
40
+ 248 94b428852c7a 2010-04-11 20:29 -0700 ged
41
+ Fixed LDIF and highlighting in treequel shell
42
+
43
+ 247 a42d7297577a 2010-04-10 09:24 -0700 ged
44
+ Updated build system.
45
+
46
+ 246 a039187fcbfd 2010-04-08 15:14 -0700 ged
47
+ Updated build system, more YARDificiation.
48
+
49
+ 245 b54fe9c1171d 2010-04-07 09:14 -0700 ged
50
+ Updated build system.
51
+
52
+ 244 96125f5e3297 2010-04-07 09:05 -0700 ged
53
+ More specs, more YARD docs.
54
+
55
+ 243 91486cbc9047 2010-04-06 18:52 -0700 ged
56
+ New method Treequel::Branch#values_at, rewrote #delete to be consistent with Hash#delete.
57
+
58
+ 242 bc24a82b0e9c 2010-03-23 15:11 -0700 ged
59
+ Added NSS-style ldap.conf support.
60
+
61
+ 241 2f756d5f12e2 2010-03-19 11:05 -0700 ged
62
+ Converted hash-based schema tables to a case-insensitive Table class (fixes #1)
63
+
64
+ 240 f8de798625ee 2010-03-18 15:18 -0700 ged
65
+ Adding system-config methods to the Treequel methods
66
+
67
+ 239 02660115ea46 2010-03-02 12:48 -0800 ged
68
+ Finished specs for BranchCollection#empty?
69
+
70
+ 238 cbdb4342dc46 2010-03-01 18:17 -0800 ged
71
+ Treequel shell bugfixes, #empty? on Branchsets and BranchCollections
72
+
73
+ 237 5af1ee6a7f6c 2010-02-17 18:18 -0800 ged
74
+ Added an 'irb' command to the treequel shell, fixed build-number parsing.
75
+
76
+ 236 8a43b642fd91 2010-02-09 16:37 -0800 ged
77
+ Implemented the `-b bind_dn` option.
78
+
79
+ 235:234,233 2a1bac85c038 2010-02-03 18:24 -0800 ged
80
+ Merged 233:1d06d28159a6
81
+
82
+ 234:232 e96bbf2e7325 2010-02-03 18:23 -0800 ged
83
+ Adding the beginnings of ActiveDirectory support, treequel shell options, server introspection.
84
+
85
+ 233:230,232 1d06d28159a6 2010-01-26 10:56 -0800 ged
86
+ Merged with 230:b994d8d9d608
87
+
88
+ 232 8b2fb7415412 2010-01-26 10:55 -0800 ged
89
+ Initial (untested) implementation of the sorted results control.
90
+
91
+ 231:229 84087b01d473 2010-01-13 20:12 -0800 ged
92
+ Make treequel shell's 'cat' command error for non-existant entries
93
+
94
+ 230 b994d8d9d608 2010-01-24 12:57 -0800 ged
95
+ Convert the option parsers to a class global instead of a constant
96
+
97
+ 229 669a09149f48 2010-01-13 11:36 -0800 ged
98
+ Fix the 'grep' command in the Treequel shell.
99
+
100
+ 228 ab2a2ff43b60 2010-01-12 10:12 -0800 ged
101
+ Operational attributes propagation and treequel shell fixes.
102
+
103
+ 227:226,223 14f5f723d0aa 2010-01-07 16:43 -0800 ged
104
+ Merged with d77a0bf26034
105
+
106
+ 226 00ac1bc4e917 2010-01-07 16:42 -0800 ged
107
+ Updated build system
108
+
109
+ 225 5afefa230ef0 2010-01-07 16:41 -0800 ged
110
+ Improvements to the treequel shell, fixes for 1.9.1.
111
+
112
+ 224:221 83b178f0850e 2010-01-06 19:24 -0800 ged
113
+ Eliminate duplicates when smushing RDN attributes on a Treequel::Directory#create
114
+
115
+ 223 d77a0bf26034 2009-12-22 15:13 -0800 ged
116
+ Reworked LDIF display colors in the shell to be more visible.
117
+
118
+ 222 9aeccec1ee84 2009-12-22 15:02 -0800 ged
119
+ Make the treequel shell fall back to plain connect (with a warning) if TLS fails.
120
+
121
+ 221:219,220 3bdd645530fe 2009-12-22 09:40 -0800 ged
122
+ Automated merge with ssh://hg@deveiate/Treequel
123
+
124
+ 220:217 31c326800cc6 2009-12-22 09:40 -0800 ged
125
+ Treequel shell fix, splitting off the LDAP monitor example, version bump.
126
+
127
+ 219:218,217 9571c9d8e4dd 2009-12-18 10:23 -0800 ged
128
+ Merged with 5fd4033e1556
129
+
130
+ 218:216 ffc2ebacdfd0 2009-12-17 21:50 -0800 ged
131
+ More controls work, started several more control modules.
132
+
133
+ 217 5fd4033e1556 2009-12-16 11:24 -0800 ged
134
+ Updated build system, normalized comments in mixins.rb.
135
+
136
+ 216 b04972837e63 2009-12-11 18:47 -0800 ged
137
+ More work on controls,
138
+
139
+ 215 d1ef2c0f53f2 2009-12-08 09:28 -0800 ged
140
+ Finished initial Controls implementation, added PagedResultsControl.
141
+
142
+ 214 b937fbec04ca 2009-12-07 17:11 -0800 mahlon
143
+ Add scaffolding for Treequel::Control.
144
+
145
+ 213 30f67c57d0bb 2009-12-07 16:41 -0800 ged
146
+ Law of Demeter fix and more work on the controls spike.
147
+
148
+ 212 014435b07b2d 2009-12-06 22:13 -0800 ged
149
+ Fixed the shell 'edit' command, cleaned up LDIF output, dependency fixes.
150
+
151
+ 211 b259ac7d021e 2009-12-06 14:59 -0800 ged
152
+ Adding '+' mode to 'cat' (stolen from shelldap)
153
+
154
+ 210 150d5cf819a9 2009-12-01 10:25 -0800 mahlon
155
+ Heh heh heh, he said 'fem'
156
+
157
+ 209 ff8226a744d8 2009-11-17 20:38 -0800 ged
158
+ Added tag 1.0.1 for changeset 9c9993ba908e
159
+
160
+ 208[1.0.1] 9c9993ba908e 2009-11-17 20:38 -0800 ged
161
+ Added signature for changeset c5e4cb039999
162
+
163
+ 207 c5e4cb039999 2009-11-17 20:35 -0800 ged
2
164
  Added Branchset#as, added 'yaml'/disabled 'edit' command in treequel shell
3
165
 
4
166
  206 67502a7b9224 2009-11-17 15:58 -0800 ged
@@ -334,36 +496,36 @@
334
496
  96 6b5358420802 2009-07-31 08:29 -0700 ged
335
497
  Updated build system
336
498
 
337
- 95:94,92 a5e715f5f877 2009-07-31 08:13 -0700 ged
499
+ 95:93,94 a5e715f5f877 2009-07-31 08:13 -0700 ged
338
500
  Merged. Someday I'll get the hang of this.
339
501
 
340
- 94:93,91 395b7bf6f248 2009-07-28 06:11 -0700 ged
502
+ 94:91 46e6dce0c011 2009-07-29 13:28 -0700 ged
503
+ * Adding coverage cache to the ignorefile.
504
+
505
+ 93:92,91 395b7bf6f248 2009-07-28 06:11 -0700 ged
341
506
  Merged with 34cc97817266
342
507
 
343
- 93:89 89f74035c67d 2009-07-28 06:10 -0700 ged
508
+ 92:88 89f74035c67d 2009-07-28 06:10 -0700 ged
344
509
  Manual rewording, .hgignore updates
345
510
 
346
- 92 46e6dce0c011 2009-07-29 13:28 -0700 ged
347
- * Adding coverage cache to the ignorefile.
348
-
349
511
  91 34cc97817266 2009-07-27 12:06 -0700 ged
350
512
  Updated build system
351
513
 
352
- 90:86,89 daf0e44c41ac 2009-07-27 11:58 -0700 ged
514
+ 90:89,88 daf0e44c41ac 2009-07-27 11:58 -0700 ged
353
515
  Merging work from gont
354
516
 
355
- 89:83,88 b7a919b2ad5d 2009-07-24 21:07 -0700 ged
517
+ 89:83 fc3c3bac2c22 2009-07-24 17:27 -0700 ged
518
+ Unlinking the subrepo, as it doesn't behave well enough quite yet.
519
+
520
+ 88:83,87 b7a919b2ad5d 2009-07-24 21:07 -0700 ged
356
521
  Merging build system fixes
357
522
 
358
- 88 620807d4c6d5 2009-07-24 21:05 -0700 ged
523
+ 87 620807d4c6d5 2009-07-24 21:05 -0700 ged
359
524
  Updated build system
360
525
 
361
- 87:85 f631900a9ad8 2009-07-24 19:33 -0700 ged
526
+ 86 f631900a9ad8 2009-07-24 19:33 -0700 ged
362
527
  Removing subrepo, as it doesn't work quite the way I'd hoped.
363
528
 
364
- 86:83 fc3c3bac2c22 2009-07-24 17:27 -0700 ged
365
- Unlinking the subrepo, as it doesn't behave well enough quite yet.
366
-
367
529
  85 65236b2101e5 2009-07-24 11:22 -0700 ged
368
530
  Initial commit of Mercurial-based tasks
369
531
 
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008-2009, Michael Granger and Mahlon E. Smith
1
+ Copyright (c) 2008-2010, Michael Granger and Mahlon E. Smith
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/Rakefile CHANGED
@@ -1,22 +1,22 @@
1
- #!rake
1
+ #!rake -*- ruby -*-
2
2
  #
3
3
  # Treequel rakefile
4
4
  #
5
5
  # Based on various other Rakefiles, especially one by Ben Bleything
6
6
  #
7
- # Copyright (c) 2007-2009 The FaerieMUD Consortium
7
+ # Copyright (c) 2007-2010 The FaerieMUD Consortium
8
8
  #
9
9
  # Authors:
10
10
  # * Michael Granger <ged@FaerieMUD.org>
11
- # * Mahlon E. Smith <mahlon@martini.nu>
12
11
  #
13
12
 
14
13
  BEGIN {
14
+ require 'rbconfig'
15
15
  require 'pathname'
16
16
  basedir = Pathname.new( __FILE__ ).dirname
17
17
 
18
18
  libdir = basedir + "lib"
19
- extdir = basedir + "ext"
19
+ extdir = libdir + Config::CONFIG['sitearch']
20
20
 
21
21
  $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
22
22
  $LOAD_PATH.unshift( extdir.to_s ) unless $LOAD_PATH.include?( extdir.to_s )
@@ -34,7 +34,7 @@ rescue LoadError
34
34
  end
35
35
 
36
36
  begin
37
- require 'rubyfems'
37
+ require 'rubygems'
38
38
  rescue LoadError
39
39
  module Gem
40
40
  class Specification; end
@@ -74,10 +74,10 @@ if VERSION_FILE.exist? && buildrev = ENV['CC_BUILD_LABEL']
74
74
  PKG_VERSION = VERSION_FILE.read[ /VERSION\s*=\s*['"](\d+\.\d+\.\d+)['"]/, 1 ] + '.' + buildrev
75
75
  elsif VERSION_FILE.exist?
76
76
  PKG_VERSION = VERSION_FILE.read[ /VERSION\s*=\s*['"](\d+\.\d+\.\d+)['"]/, 1 ]
77
- else
78
- PKG_VERSION = '0.0.0'
79
77
  end
80
78
 
79
+ PKG_VERSION = '0.0.0' unless defined?( PKG_VERSION )
80
+
81
81
  PKG_FILE_NAME = "#{PKG_NAME.downcase}-#{PKG_VERSION}"
82
82
  GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem"
83
83
 
@@ -91,7 +91,7 @@ EXTCONF = EXTDIR + 'extconf.rb'
91
91
 
92
92
  ARTIFACTS_DIR = Pathname.new( CC_BUILD_ARTIFACTS )
93
93
 
94
- TEXT_FILES = Rake::FileList.new( %w[Rakefile ChangeLog README LICENSE] )
94
+ TEXT_FILES = Rake::FileList.new( %w[Rakefile ChangeLog README* LICENSE] )
95
95
  BIN_FILES = Rake::FileList.new( "#{BINDIR}/*" )
96
96
  LIB_FILES = Rake::FileList.new( "#{LIBDIR}/**/*.rb" )
97
97
  EXT_FILES = Rake::FileList.new( "#{EXTDIR}/**/*.{c,h,rb}" )
@@ -129,6 +129,10 @@ RELEASE_FILES = TEXT_FILES +
129
129
 
130
130
  RELEASE_FILES << LOCAL_RAKEFILE.to_s if LOCAL_RAKEFILE.exist?
131
131
 
132
+ RELEASE_ANNOUNCE_ADDRESSES = [
133
+ "Ruby-Talk List <ruby-talk@ruby-lang.org>",
134
+ ]
135
+
132
136
  COVERAGE_MINIMUM = ENV['COVERAGE_MINIMUM'] ? Float( ENV['COVERAGE_MINIMUM'] ) : 85.0
133
137
  RCOV_EXCLUDES = 'spec,tests,/Library/Ruby,/var/lib,/usr/local/lib'
134
138
  RCOV_OPTS = [
@@ -148,7 +152,7 @@ if !RAKE_TASKDIR.exist?
148
152
 
149
153
  if ans =~ /^y/i
150
154
  $stderr.puts "Okay, fetching #{RAKE_TASKLIBS_URL} into #{RAKE_TASKDIR}..."
151
- system 'hg', 'clone', RAKE_TASKLIBS_URL, RAKE_TASKDIR
155
+ system 'hg', 'clone', RAKE_TASKLIBS_URL, "./#{RAKE_TASKDIR}"
152
156
  if ! $?.success?
153
157
  fail "Damn. That didn't work. Giving up; maybe try manually fetching?"
154
158
  end
@@ -161,30 +165,41 @@ if !RAKE_TASKDIR.exist?
161
165
  end
162
166
 
163
167
  require RAKE_TASKDIR + 'helpers.rb'
168
+ include RakefileHelpers
164
169
 
165
- # Define some constants that depend on the 'svn' tasklib
170
+ # Set the build ID if the mercurial executable is available
166
171
  if hg = which( 'hg' )
167
172
  id = IO.read('|-') or exec hg.to_s, 'id', '-n'
168
- PKG_BUILD = id.chomp[ /^[[:xdigit:]]+/ ]
173
+ PKG_BUILD = "pre%03d" % [(id.chomp[ /^[[:xdigit:]]+/ ] || '1')]
169
174
  else
170
- PKG_BUILD = 0
175
+ PKG_BUILD = 'pre000'
171
176
  end
172
177
  SNAPSHOT_PKG_NAME = "#{PKG_FILE_NAME}.#{PKG_BUILD}"
173
178
  SNAPSHOT_GEM_NAME = "#{SNAPSHOT_PKG_NAME}.gem"
174
179
 
175
180
  # Documentation constants
176
- RDOCDIR = DOCSDIR + 'api'
181
+ API_DOCSDIR = DOCSDIR + 'api'
182
+ README_FILE = TEXT_FILES.find {|path| path =~ /^README/ } || 'README'
177
183
  RDOC_OPTIONS = [
178
- '-w', '4',
179
- '-HN',
180
- '-i', '.',
181
- '-m', 'README',
182
- '-t', PKG_NAME,
183
- '-W', 'http://deveiate.org/projects/Treequel/browser/'
184
+ '--tab-width=4',
185
+ '--show-hash',
186
+ '--include', BASEDIR.to_s,
187
+ "--main=#{README_FILE}",
188
+ "--title=#{PKG_NAME}",
189
+ ]
190
+ YARD_OPTIONS = [
191
+ '--use-cache',
192
+ '--no-private',
193
+ '--protected',
194
+ '-r', README_FILE,
195
+ '--exclude', 'extconf\\.rb',
196
+ '--files', 'ChangeLog,LICENSE',
197
+ '--output-dir', API_DOCSDIR.to_s,
198
+ '--title', "#{PKG_NAME} #{PKG_VERSION}",
184
199
  ]
185
200
 
186
201
  # Release constants
187
- SMTP_HOST = 'mail.faeriemud.org'
202
+ SMTP_HOST = "mail.faeriemud.org"
188
203
  SMTP_PORT = 465 # SMTP + SSL
189
204
 
190
205
  # Project constants
@@ -194,31 +209,27 @@ PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}"
194
209
  PROJECT_SCPPUBURL = "#{PROJECT_HOST}:#{PROJECT_PUBDIR}"
195
210
  PROJECT_SCPDOCURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}"
196
211
 
197
- # Rubyforge stuff
198
- RUBYFORGE_GROUP = 'deveiate'
199
- RUBYFORGE_PROJECT = 'treequel'
200
-
201
212
  # Gem dependencies: gemname => version
202
213
  DEPENDENCIES = {
203
- 'termios' => '>= 0.9.4',
204
- 'columnize' => '>= 0.3.1',
205
- 'ruby-terminfo' => '>= 0.1.1',
206
214
  'ruby-ldap' => '>= 0.9.9',
207
215
  }
208
216
 
209
217
  # Developer Gem dependencies: gemname => version
210
218
  DEVELOPMENT_DEPENDENCIES = {
211
- 'rake' => '>= 0.8.7',
212
- 'rcodetools' => '>= 0.7.0.0',
213
- 'rcov' => '>= 0.8.1.2.0',
214
- 'rdoc' => '>= 2.4.3',
215
- 'RedCloth' => '>= 4.0.3',
216
- 'rspec' => '>= 1.2.6',
217
- 'rubyforge' => '>= 0',
218
- 'termios' => '>= 0',
219
- 'text-format' => '>= 1.0.0',
220
- 'tmail' => '>= 1.2.3.1',
221
- 'diff-lcs' => '>= 1.1.2',
219
+ 'rake' => '>= 0.8.7',
220
+ 'rcodetools' => '>= 0.7.0.0',
221
+ 'rcov' => '>= 0.8.1.2.0',
222
+ 'rdoc' => '>= 2.4.3',
223
+ 'RedCloth' => '>= 4.0.3',
224
+ 'rspec' => '>= 1.2.6',
225
+ 'ruby-termios' => '>= 0.9.6',
226
+ 'text-format' => '>= 1.0.0',
227
+ 'tmail' => '>= 1.2.3.1',
228
+ 'diff-lcs' => '>= 1.1.2',
229
+ 'termios' => '>= 0.9.4',
230
+ 'columnize' => '>= 0.3.1',
231
+ 'diff-lcs' => '>= 1.1.2',
232
+ 'ruby-terminfo' => '>= 0.1.1',
222
233
  }
223
234
 
224
235
  # Non-gem requirements: packagename => version
@@ -237,17 +248,22 @@ GEMSPEC = Gem::Specification.new do |gem|
237
248
  "the impedence mismatch of trying to treat LDAP as if it's a relational database, and",
238
249
  "instead embrace its hierarchical, free-form nature.",
239
250
  ].join( "\n" )
251
+ gem.post_install_message = [
252
+ "If you want to use the included 'treequel' LDAP shell, you'll need to install",
253
+ "the following libraries as well:",
254
+ " - termios",
255
+ " - ruby-terminfo",
256
+ " - columnize",
257
+ " - diff-lcs",
258
+ ].join( "\n" )
240
259
 
241
260
  gem.authors = "Michael Granger, Mahlon E. Smith"
242
261
  gem.email = ["mahlon@martini.nu", "ged@FaerieMUD.org"]
243
262
  gem.homepage = 'http://deveiate.org/projects/Treequel'
244
263
 
245
- # Apparently this isn't actually the 'project'?
246
- gem.rubyforge_project = RUBYFORGE_GROUP
247
-
248
264
  gem.has_rdoc = true
249
265
  gem.rdoc_options = RDOC_OPTIONS
250
- gem.extra_rdoc_files = %w[ChangeLog README LICENSE]
266
+ gem.extra_rdoc_files = TEXT_FILES - [ 'Rakefile' ]
251
267
 
252
268
  gem.bindir = BINDIR.relative_path_from(BASEDIR).to_s
253
269
  gem.executables = BIN_FILES.select {|pn| File.executable?(pn) }.
@@ -301,14 +317,14 @@ import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
301
317
  #####################################################################
302
318
 
303
319
  ### Default task
304
- task :default => [:clean, :local, :spec, :rdoc, :package]
320
+ task :default => [:clean, :local, :spec, :apidocs, :package]
305
321
 
306
322
  ### Task the local Rakefile can append to -- no-op by default
307
323
  task :local
308
324
 
309
325
  ### Task: clean
310
- CLEAN.include 'coverage'
311
- CLOBBER.include 'artifacts', 'coverage.info', PKGDIR
326
+ CLEAN.include 'coverage', '**/*.orig', '**/*.rej'
327
+ CLOBBER.include 'artifacts', 'coverage.info', 'ChangeLog', PKGDIR
312
328
 
313
329
  ### Task: changelog
314
330
  file 'ChangeLog' do |task|
data/Rakefile.local CHANGED
@@ -14,6 +14,7 @@ require 'pp'
14
14
  MANUAL_PAGES = Pathname.glob( MANUALDIR + '**/*.page' )
15
15
 
16
16
  task :local => :check_manual
17
+ task :manual => :check_manual
17
18
 
18
19
  # Check the manual for laika references before committing
19
20
  Rake::Task[ 'checkin' ].prerequisites.unshift( 'check_manual' )
@@ -40,4 +41,23 @@ task :check_manual => MANUAL_PAGES do
40
41
  end
41
42
  end
42
43
 
44
+ namespace :spec do
45
+ desc "Run specs under gdb"
46
+ task :gdb do |task|
47
+ require 'tempfile'
48
+
49
+ cmd_parts = ['run']
50
+ cmd_parts << '-Ilib:ext'
51
+ cmd_parts << '/usr/bin/spec'
52
+ cmd_parts += SPEC_FILES.collect { |fn| %["#{fn}"] }
53
+ cmd_parts += COMMON_SPEC_OPTS + ['-f', 's', '-c']
54
+
55
+ script = Tempfile.new( 'spec-gdbscript' )
56
+ script.puts( cmd_parts.join(' ') )
57
+ script.flush
58
+
59
+ run 'gdb', '-x', script.path, RUBY
60
+ end
61
+ end
62
+
43
63