treequel 1.5.2 → 1.5.3
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.
- data.tar.gz.sig +3 -1
- data/History.md +10 -0
- data/Rakefile +1 -42
- data/bin/treequel +12 -19
- data/bin/treewhat +79 -5
- data/lib/treequel.rb +3 -3
- data/lib/treequel/directory.rb +1 -1
- data/spec/lib/helpers.rb +1 -1
- data/spec/treequel/directory_spec.rb +6 -6
- metadata +129 -24
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
,�D�P�(���$i���
|
2
|
+
�f�V/6_�T�O�m�)����=�f@$��9����.@ڲZ#z�o
|
3
|
+
��e�=��N�Vp��,����Ԟ�����눣�nj1V�0�uK��c��4)���C�s� �����ٕ�/��-���i�)�E��Y��4�g�.�(Z%m?{�:<8�&��-A_$.k!�g�MJ�RV��b]��ZMv����_ǚ��$5�u�o�9a8�RE������;ê
|
data/History.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 1.5.3 [2011-04-07] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
* Don't pollute the gemspec with Yard-only options
|
4
|
+
* Adding a --no-tls flag to the treequel shell
|
5
|
+
* Updated the 'treewhat' schema tool.
|
6
|
+
* Show additional details for some schema objects.
|
7
|
+
* Adding schema artifacts to the treewhat command
|
8
|
+
* Include regular attributes (in addition to operational ones) in the
|
9
|
+
root_dse, as AD stores everything in regular attributes.
|
10
|
+
|
1
11
|
## 1.5.2 [2011-03-17] Michael Granger <ged@FaerieMUD.org>
|
2
12
|
|
3
13
|
* Manual updates
|
data/Rakefile
CHANGED
@@ -4,6 +4,7 @@ require 'hoe'
|
|
4
4
|
|
5
5
|
Hoe.plugin :mercurial
|
6
6
|
Hoe.plugin :signing
|
7
|
+
Hoe.plugin :yard
|
7
8
|
Hoe.plugin :manualgen
|
8
9
|
|
9
10
|
Hoe.plugins.delete :rubyforge
|
@@ -58,45 +59,3 @@ ENV['VERSION'] ||= hoespec.spec.version.to_s
|
|
58
59
|
# Tests use RSpec
|
59
60
|
task :test => :spec
|
60
61
|
|
61
|
-
begin
|
62
|
-
include Hoe::MercurialHelpers
|
63
|
-
|
64
|
-
task 'hg:precheckin' => :spec
|
65
|
-
|
66
|
-
### Task: prerelease
|
67
|
-
desc "Append the package build number to package versions"
|
68
|
-
task :pre do
|
69
|
-
rev = get_numeric_rev()
|
70
|
-
trace "Current rev is: %p" % [ rev ]
|
71
|
-
hoespec.spec.version.version << "pre#{rev}"
|
72
|
-
Rake::Task[:gem].clear
|
73
|
-
|
74
|
-
Gem::PackageTask.new( hoespec.spec ) do |pkg|
|
75
|
-
pkg.need_zip = true
|
76
|
-
pkg.need_tar = true
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
### Make the ChangeLog update if the repo has changed since it was last built
|
81
|
-
file '.hg/branch'
|
82
|
-
file 'ChangeLog' => '.hg/branch' do |task|
|
83
|
-
$stderr.puts "Updating the changelog..."
|
84
|
-
content = make_changelog()
|
85
|
-
File.open( task.name, 'w', 0644 ) do |fh|
|
86
|
-
fh.print( content )
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# Rebuild the ChangeLog immediately before release
|
91
|
-
task :prerelease => 'ChangeLog'
|
92
|
-
|
93
|
-
rescue NameError => err
|
94
|
-
task :no_hg_helpers do
|
95
|
-
fail "Couldn't define the :pre task: %s: %s" % [ err.class.name, err.message ]
|
96
|
-
end
|
97
|
-
|
98
|
-
task :pre => :no_hg_helpers
|
99
|
-
task 'ChangeLog' => :no_hg_helpers
|
100
|
-
|
101
|
-
end
|
102
|
-
|
data/bin/treequel
CHANGED
@@ -42,7 +42,7 @@ module IRB # :nodoc:
|
|
42
42
|
def self.start_session( obj )
|
43
43
|
unless @__initialized
|
44
44
|
args = ARGV
|
45
|
-
ARGV.replace(
|
45
|
+
ARGV.replace( [] )
|
46
46
|
IRB.setup( nil )
|
47
47
|
ARGV.replace( args )
|
48
48
|
@__initialized = true
|
@@ -116,10 +116,12 @@ class Treequel::Shell
|
|
116
116
|
### Run the shell.
|
117
117
|
def self::run( args )
|
118
118
|
Treequel.logger.formatter = Treequel::ColorLogFormatter.new( Treequel.logger )
|
119
|
-
bind_as, uri = self.parse_options( args )
|
119
|
+
bind_as, plaintext, uri = self.parse_options( args )
|
120
|
+
|
121
|
+
connect_type = plaintext ? :plain : :tls
|
120
122
|
|
121
123
|
directory = if uri
|
122
|
-
Treequel.directory( uri )
|
124
|
+
Treequel.directory( uri, :connect_type => connect_type )
|
123
125
|
else
|
124
126
|
Treequel.directory_from_config
|
125
127
|
end
|
@@ -137,6 +139,7 @@ class Treequel::Shell
|
|
137
139
|
collect {|name,lvl| name.to_s }.
|
138
140
|
join(', ')
|
139
141
|
bind_as = nil
|
142
|
+
plaintext = false
|
140
143
|
|
141
144
|
oparser = OptionParser.new( "Usage: #{progname} [OPTIONS] [LDAPURL]" ) do |oparser|
|
142
145
|
oparser.separator ' '
|
@@ -145,6 +148,11 @@ class Treequel::Shell
|
|
145
148
|
bind_as = dn
|
146
149
|
end
|
147
150
|
|
151
|
+
oparser.on( '--no-tls', FalseClass, "Use a plaintext (unencrypted) connection.",
|
152
|
+
"If you don't specify a connection URL, this option is ignored." ) do
|
153
|
+
plaintext = true
|
154
|
+
end
|
155
|
+
|
148
156
|
oparser.on( '--loglevel=LEVEL', '-l LEVEL', Treequel::LOG_LEVELS.keys,
|
149
157
|
"Set the logging level. Should be one of:", loglevels ) do |lvl|
|
150
158
|
Treequel.logger.level = Treequel::LOG_LEVELS[ lvl ] or
|
@@ -165,7 +173,7 @@ class Treequel::Shell
|
|
165
173
|
|
166
174
|
remaining_args = oparser.parse( argv )
|
167
175
|
|
168
|
-
return bind_as, *remaining_args
|
176
|
+
return bind_as, plaintext, *remaining_args
|
169
177
|
end
|
170
178
|
|
171
179
|
|
@@ -338,21 +346,6 @@ class Treequel::Shell
|
|
338
346
|
protected
|
339
347
|
#########
|
340
348
|
|
341
|
-
### Fetch a Treequel::Directory object for the directory at the given +uri+, or
|
342
|
-
### quit with an error if unable to do so.
|
343
|
-
def get_ldap_directory( uri, options )
|
344
|
-
if uri.port == LDAP::LDAP_PORT
|
345
|
-
if options.try_tls
|
346
|
-
return Treequel.directory( uri, :connect_type => :tls )
|
347
|
-
else
|
348
|
-
return Treequel.directory( uri, :connect_type => :plain )
|
349
|
-
end
|
350
|
-
else
|
351
|
-
return Treequel.directory( uri, :connect_type => :ssl )
|
352
|
-
end
|
353
|
-
end
|
354
|
-
|
355
|
-
|
356
349
|
### Set up Readline completion
|
357
350
|
def setup_completion
|
358
351
|
Readline.completion_proc = self.method( :completion_callback ).to_proc
|
data/bin/treewhat
CHANGED
@@ -79,9 +79,21 @@ class Treequel::What
|
|
79
79
|
%{output instead.}
|
80
80
|
text ''
|
81
81
|
|
82
|
-
text 'Options:'
|
82
|
+
text 'Connection Options:'
|
83
83
|
opt :ldapurl, "Specify the directory to connect to.",
|
84
84
|
:default => default_directory.uri.to_s
|
85
|
+
text ''
|
86
|
+
|
87
|
+
text 'Display Options:'
|
88
|
+
opt :attrtypes, "Show attribute types for objects that have them."
|
89
|
+
opt :objectclasses, "Show objectclasses for objects that have them."
|
90
|
+
opt :syntaxes, "Show syntaxes for objects that have them."
|
91
|
+
opt :matching_rules, "Show matching rules for objects that have them."
|
92
|
+
opt :matching_rule_uses, "Show matching rule uses for objects that have them."
|
93
|
+
opt :all, "Show any of the above that are applicable."
|
94
|
+
text ''
|
95
|
+
|
96
|
+
text 'Other Options:'
|
85
97
|
opt :debug, "Turn debugging on. Also sets the --loglevel to 'debug'."
|
86
98
|
opt :loglevel, "Set the logging level. Must be one of: #{loglevels}",
|
87
99
|
:default => Treequel::LOG_LEVEL_NAMES[ Treequel.logger.level ]
|
@@ -109,8 +121,19 @@ class Treequel::What
|
|
109
121
|
end
|
110
122
|
|
111
123
|
@options = options
|
112
|
-
@
|
124
|
+
if @options.all?
|
125
|
+
@options[:attrtypes] =
|
126
|
+
@options[:objectclasses] =
|
127
|
+
@options[:syntaxes] =
|
128
|
+
@options[:matching_rules] =
|
129
|
+
@options[:matching_rule_uses] =
|
130
|
+
true
|
131
|
+
end
|
132
|
+
|
113
133
|
@directory = Treequel.directory( options.ldapurl )
|
134
|
+
@prompt = HighLine.new
|
135
|
+
|
136
|
+
@prompt.wrap_at = @prompt.output_cols - 10
|
114
137
|
|
115
138
|
self.log.debug "Created new treewhat command object for %s" % [ @directory ]
|
116
139
|
end
|
@@ -136,7 +159,6 @@ class Treequel::What
|
|
136
159
|
end
|
137
160
|
|
138
161
|
|
139
|
-
|
140
162
|
### Run the command with the specified +pattern+.
|
141
163
|
def run( pattern=nil )
|
142
164
|
self.log.debug "Running with pattern = %p" % [ pattern ]
|
@@ -188,9 +210,35 @@ class Treequel::What
|
|
188
210
|
pr.say( "\n" )
|
189
211
|
pr.say( dir.schema.to_s )
|
190
212
|
|
213
|
+
self.show_column_list( dir.schema.attribute_types.values, 'Attribute Types' ) if
|
214
|
+
self.options.attrtypes
|
215
|
+
self.show_column_list( dir.schema.object_classes.values, "Object Classes" ) if
|
216
|
+
self.options.objectclasses
|
217
|
+
self.show_column_list( dir.schema.ldap_syntaxes.values, "Syntaxes" ) if
|
218
|
+
self.options.syntaxes
|
219
|
+
self.show_column_list( dir.schema.matching_rules.values, "Matching Rules" ) if
|
220
|
+
self.options.matching_rules
|
221
|
+
self.show_column_list( dir.schema.matching_rule_uses.values, "Matching Rule Uses" ) if
|
222
|
+
self.options.matching_rule_uses
|
191
223
|
end
|
192
224
|
|
193
225
|
|
226
|
+
### Show the items from the given +enum+ under the specified +subheading+ in a columnized list.
|
227
|
+
def show_column_list( enum, subheading )
|
228
|
+
pr = self.prompt
|
229
|
+
items = nil
|
230
|
+
|
231
|
+
if enum.first.respond_to?( :name )
|
232
|
+
items = enum.map( &:name ).map( &:to_s ).uniq
|
233
|
+
else
|
234
|
+
items = enum.map( &:oid ).uniq
|
235
|
+
end
|
236
|
+
|
237
|
+
pr.say( "\n" )
|
238
|
+
pr.say( pr.color(subheading, :subheader) )
|
239
|
+
pr.say( pr.list(items.sort_by(&:downcase), :columns_across) )
|
240
|
+
end
|
241
|
+
|
194
242
|
|
195
243
|
#
|
196
244
|
# 'Show entry' mode
|
@@ -280,8 +328,34 @@ class Treequel::What
|
|
280
328
|
|
281
329
|
### Display a schema artifact in a readable way.
|
282
330
|
def display_schema_artifact( artifact )
|
283
|
-
self.prompt.say( artifact.class.name.sub(/.*::/, '') + ' ' )
|
284
|
-
self.prompt.say( artifact.to_s )
|
331
|
+
self.prompt.say( self.prompt.color(artifact.class.name.sub(/.*::/, ''), :header) + ' ' )
|
332
|
+
self.prompt.say( self.prompt.color(artifact.to_s, :subheader) )
|
333
|
+
|
334
|
+
# Display some other stuff depending on what kind of thing it is
|
335
|
+
case artifact
|
336
|
+
when Treequel::Schema::AttributeType
|
337
|
+
self.display_attrtype_details( artifact )
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
|
342
|
+
### Display additional details for the specified +attrtype+.
|
343
|
+
### @param [Treequel::Schema::AttributeType] attrtype the attribute type object to display
|
344
|
+
def display_attrtype_details( attrtype )
|
345
|
+
ocs = self.directory.schema.object_classes.values.find_all do |oc|
|
346
|
+
( oc.must_oids | oc.may_oids ).include?( attrtype.name.to_sym )
|
347
|
+
end
|
348
|
+
|
349
|
+
if ocs.empty?
|
350
|
+
self.prompt.say "No objectClasses with the '%s' attribute are in the current schema." %
|
351
|
+
[ attrtype.name ]
|
352
|
+
else
|
353
|
+
ocnames = ocs.uniq.map( &:name ).map( &:to_s ).sort
|
354
|
+
|
355
|
+
self.prompt.say "objectClasses with the '%s' attribute in the current schema:" %
|
356
|
+
[ attrtype.name ]
|
357
|
+
self.prompt.say( self.prompt.list(ocnames, :columns_across) )
|
358
|
+
end
|
285
359
|
end
|
286
360
|
|
287
361
|
|
data/lib/treequel.rb
CHANGED
@@ -25,7 +25,7 @@ end
|
|
25
25
|
|
26
26
|
# A library for interacting with LDAP modelled after Sequel.
|
27
27
|
#
|
28
|
-
# @version 1.5.
|
28
|
+
# @version 1.5.3
|
29
29
|
#
|
30
30
|
# @example
|
31
31
|
# # Connect to the directory at the specified URL
|
@@ -53,10 +53,10 @@ end
|
|
53
53
|
module Treequel
|
54
54
|
|
55
55
|
# Library version
|
56
|
-
VERSION = '1.5.
|
56
|
+
VERSION = '1.5.3'
|
57
57
|
|
58
58
|
# VCS revision
|
59
|
-
REVISION = %q$Revision:
|
59
|
+
REVISION = %q$Revision: 1f396aca7d8b $
|
60
60
|
|
61
61
|
# Common paths for ldap.conf
|
62
62
|
COMMON_LDAP_CONF_PATHS = %w[
|
data/lib/treequel/directory.rb
CHANGED
@@ -189,7 +189,7 @@ class Treequel::Directory
|
|
189
189
|
|
190
190
|
### Fetch the root DSE as a Treequel::Branch.
|
191
191
|
def root_dse
|
192
|
-
return self.search( '', :base, '(objectClass=*)', :selectattrs => ['+'] ).first
|
192
|
+
return self.search( '', :base, '(objectClass=*)', :selectattrs => ['+', '*'] ).first
|
193
193
|
end
|
194
194
|
|
195
195
|
|
data/spec/lib/helpers.rb
CHANGED
@@ -129,7 +129,7 @@ module Treequel::SpecHelpers
|
|
129
129
|
def get_fixtured_directory( conn )
|
130
130
|
LDAP::SSLConn.stub( :new ).and_return( conn )
|
131
131
|
conn.stub( :search_ext2 ).
|
132
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
132
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
133
133
|
and_return( TEST_DSE )
|
134
134
|
conn.stub( :set_option )
|
135
135
|
|
@@ -53,7 +53,7 @@ describe Treequel::Directory do
|
|
53
53
|
|
54
54
|
it "is created with reasonable default options if none are specified" do
|
55
55
|
@conn.stub( :search_ext2 ).
|
56
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
56
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
57
57
|
and_return( TEST_DSE )
|
58
58
|
|
59
59
|
dir = Treequel::Directory.new
|
@@ -87,7 +87,7 @@ describe Treequel::Directory do
|
|
87
87
|
it "uses the first namingContext from the Root DSE if no base is specified" do
|
88
88
|
LDAP::Conn.stub( :new ).and_return( @conn )
|
89
89
|
@conn.stub( :search_ext2 ).
|
90
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
90
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
91
91
|
and_return( TEST_DSE )
|
92
92
|
|
93
93
|
dir = Treequel::Directory.new( @options.merge(:base_dn => nil) )
|
@@ -606,7 +606,7 @@ describe Treequel::Directory do
|
|
606
606
|
before( :each ) do
|
607
607
|
@control = Module.new { include Treequel::Control }
|
608
608
|
@conn.stub( :search_ext2 ).
|
609
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
609
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
610
610
|
and_return( TEST_DSE )
|
611
611
|
end
|
612
612
|
|
@@ -647,7 +647,7 @@ describe Treequel::Directory do
|
|
647
647
|
describe "to a server that supports extensions introspection" do
|
648
648
|
before( :each ) do
|
649
649
|
@conn.stub( :search_ext2 ).
|
650
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
650
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
651
651
|
and_return( TEST_DSE )
|
652
652
|
end
|
653
653
|
|
@@ -667,7 +667,7 @@ describe Treequel::Directory do
|
|
667
667
|
describe "to a server that supports features introspection" do
|
668
668
|
before( :each ) do
|
669
669
|
@conn.stub( :search_ext2 ).
|
670
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
670
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
671
671
|
and_return( TEST_DSE )
|
672
672
|
end
|
673
673
|
|
@@ -686,7 +686,7 @@ describe Treequel::Directory do
|
|
686
686
|
describe "to a server that doesn't support features introspection" do
|
687
687
|
before( :each ) do
|
688
688
|
@conn.stub( :search_ext2 ).
|
689
|
-
with( "", 0, "(objectClass=*)", ["+"], false, nil, nil, 0, 0, 0, "", nil ).
|
689
|
+
with( "", 0, "(objectClass=*)", ["+", '*'], false, nil, nil, 0, 0, 0, "", nil ).
|
690
690
|
and_return( TEST_DSE )
|
691
691
|
end
|
692
692
|
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: treequel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 5
|
9
|
+
- 3
|
10
|
+
version: 1.5.3
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Michael Granger
|
@@ -31,29 +36,37 @@ cert_chain:
|
|
31
36
|
cmlhXe46pZNJgWKbxZah85jIjx95hR8vOI+NAM5iH9kOqK13DrxacTKPhqj5PjwF
|
32
37
|
-----END CERTIFICATE-----
|
33
38
|
|
34
|
-
date: 2011-
|
39
|
+
date: 2011-04-07 00:00:00 -07:00
|
35
40
|
default_executable:
|
36
41
|
dependencies:
|
37
42
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
43
|
+
name: diff-lcs
|
39
44
|
prerelease: false
|
40
45
|
requirement: &id001 !ruby/object:Gem::Requirement
|
41
46
|
none: false
|
42
47
|
requirements:
|
43
48
|
- - ~>
|
44
49
|
- !ruby/object:Gem::Version
|
45
|
-
|
50
|
+
hash: 13
|
51
|
+
segments:
|
52
|
+
- 1
|
53
|
+
- 1
|
54
|
+
version: "1.1"
|
46
55
|
type: :runtime
|
47
56
|
version_requirements: *id001
|
48
57
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
58
|
+
name: ruby-ldap
|
50
59
|
prerelease: false
|
51
60
|
requirement: &id002 !ruby/object:Gem::Requirement
|
52
61
|
none: false
|
53
62
|
requirements:
|
54
63
|
- - ~>
|
55
64
|
- !ruby/object:Gem::Version
|
56
|
-
|
65
|
+
hash: 25
|
66
|
+
segments:
|
67
|
+
- 0
|
68
|
+
- 9
|
69
|
+
version: "0.9"
|
57
70
|
type: :runtime
|
58
71
|
version_requirements: *id002
|
59
72
|
- !ruby/object:Gem::Dependency
|
@@ -64,40 +77,60 @@ dependencies:
|
|
64
77
|
requirements:
|
65
78
|
- - ~>
|
66
79
|
- !ruby/object:Gem::Version
|
80
|
+
hash: 29
|
81
|
+
segments:
|
82
|
+
- 1
|
83
|
+
- 2
|
84
|
+
- 1
|
67
85
|
version: 1.2.1
|
68
86
|
type: :development
|
69
87
|
version_requirements: *id003
|
70
88
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
89
|
+
name: hoe-yard
|
72
90
|
prerelease: false
|
73
91
|
requirement: &id004 !ruby/object:Gem::Requirement
|
74
92
|
none: false
|
75
93
|
requirements:
|
76
|
-
- -
|
94
|
+
- - ">="
|
77
95
|
- !ruby/object:Gem::Version
|
78
|
-
|
96
|
+
hash: 31
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
- 1
|
100
|
+
- 2
|
101
|
+
version: 0.1.2
|
79
102
|
type: :development
|
80
103
|
version_requirements: *id004
|
81
104
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
105
|
+
name: hoe-manualgen
|
83
106
|
prerelease: false
|
84
107
|
requirement: &id005 !ruby/object:Gem::Requirement
|
85
108
|
none: false
|
86
109
|
requirements:
|
87
110
|
- - ~>
|
88
111
|
- !ruby/object:Gem::Version
|
89
|
-
|
112
|
+
hash: 27
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
- 1
|
116
|
+
- 0
|
117
|
+
version: 0.1.0
|
90
118
|
type: :development
|
91
119
|
version_requirements: *id005
|
92
120
|
- !ruby/object:Gem::Dependency
|
93
|
-
name:
|
121
|
+
name: hoe-yard
|
94
122
|
prerelease: false
|
95
123
|
requirement: &id006 !ruby/object:Gem::Requirement
|
96
124
|
none: false
|
97
125
|
requirements:
|
98
|
-
- -
|
126
|
+
- - ">="
|
99
127
|
- !ruby/object:Gem::Version
|
100
|
-
|
128
|
+
hash: 31
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
- 1
|
132
|
+
- 2
|
133
|
+
version: 0.1.2
|
101
134
|
type: :development
|
102
135
|
version_requirements: *id006
|
103
136
|
- !ruby/object:Gem::Dependency
|
@@ -108,42 +141,104 @@ dependencies:
|
|
108
141
|
requirements:
|
109
142
|
- - ~>
|
110
143
|
- !ruby/object:Gem::Version
|
144
|
+
hash: 13
|
145
|
+
segments:
|
146
|
+
- 0
|
147
|
+
- 3
|
111
148
|
version: "0.3"
|
112
149
|
type: :development
|
113
150
|
version_requirements: *id007
|
114
151
|
- !ruby/object:Gem::Dependency
|
115
|
-
name:
|
152
|
+
name: ruby-termios
|
116
153
|
prerelease: false
|
117
154
|
requirement: &id008 !ruby/object:Gem::Requirement
|
118
155
|
none: false
|
119
156
|
requirements:
|
120
157
|
- - ~>
|
121
158
|
- !ruby/object:Gem::Version
|
122
|
-
|
159
|
+
hash: 25
|
160
|
+
segments:
|
161
|
+
- 0
|
162
|
+
- 9
|
163
|
+
version: "0.9"
|
123
164
|
type: :development
|
124
165
|
version_requirements: *id008
|
125
166
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
167
|
+
name: ruby-terminfo
|
127
168
|
prerelease: false
|
128
169
|
requirement: &id009 !ruby/object:Gem::Requirement
|
129
170
|
none: false
|
130
171
|
requirements:
|
131
172
|
- - ~>
|
132
173
|
- !ruby/object:Gem::Version
|
133
|
-
|
174
|
+
hash: 9
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
- 1
|
178
|
+
version: "0.1"
|
134
179
|
type: :development
|
135
180
|
version_requirements: *id009
|
136
181
|
- !ruby/object:Gem::Dependency
|
137
|
-
name:
|
182
|
+
name: rspec
|
138
183
|
prerelease: false
|
139
184
|
requirement: &id010 !ruby/object:Gem::Requirement
|
140
185
|
none: false
|
141
186
|
requirements:
|
142
|
-
- -
|
187
|
+
- - ~>
|
143
188
|
- !ruby/object:Gem::Version
|
144
|
-
|
189
|
+
hash: 11
|
190
|
+
segments:
|
191
|
+
- 2
|
192
|
+
- 4
|
193
|
+
version: "2.4"
|
145
194
|
type: :development
|
146
195
|
version_requirements: *id010
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: sequel
|
198
|
+
prerelease: false
|
199
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
201
|
+
requirements:
|
202
|
+
- - ~>
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
hash: 47
|
205
|
+
segments:
|
206
|
+
- 3
|
207
|
+
- 20
|
208
|
+
version: "3.20"
|
209
|
+
type: :development
|
210
|
+
version_requirements: *id011
|
211
|
+
- !ruby/object:Gem::Dependency
|
212
|
+
name: sysexits
|
213
|
+
prerelease: false
|
214
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
215
|
+
none: false
|
216
|
+
requirements:
|
217
|
+
- - ~>
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
hash: 15
|
220
|
+
segments:
|
221
|
+
- 1
|
222
|
+
- 0
|
223
|
+
version: "1.0"
|
224
|
+
type: :development
|
225
|
+
version_requirements: *id012
|
226
|
+
- !ruby/object:Gem::Dependency
|
227
|
+
name: hoe
|
228
|
+
prerelease: false
|
229
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
230
|
+
none: false
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
hash: 35
|
235
|
+
segments:
|
236
|
+
- 2
|
237
|
+
- 9
|
238
|
+
- 4
|
239
|
+
version: 2.9.4
|
240
|
+
type: :development
|
241
|
+
version_requirements: *id013
|
147
242
|
description: |-
|
148
243
|
Treequel is an LDAP toolkit for Ruby. It is intended to allow quick, easy
|
149
244
|
access to LDAP directories in a manner consistent with LDAP's hierarchical,
|
@@ -162,6 +257,7 @@ extensions: []
|
|
162
257
|
|
163
258
|
extra_rdoc_files:
|
164
259
|
- Manifest.txt
|
260
|
+
- History.md
|
165
261
|
files:
|
166
262
|
- .gemtest
|
167
263
|
- ChangeLog
|
@@ -248,8 +344,9 @@ post_install_message: |-
|
|
248
344
|
You can install them automatically if you use the --development flag when
|
249
345
|
installing Treequel.
|
250
346
|
rdoc_options:
|
251
|
-
- --
|
252
|
-
-
|
347
|
+
- --title
|
348
|
+
- Treequel Documentation
|
349
|
+
- --quiet
|
253
350
|
require_paths:
|
254
351
|
- lib
|
255
352
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -257,17 +354,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
257
354
|
requirements:
|
258
355
|
- - ">="
|
259
356
|
- !ruby/object:Gem::Version
|
357
|
+
hash: 57
|
358
|
+
segments:
|
359
|
+
- 1
|
360
|
+
- 8
|
361
|
+
- 7
|
260
362
|
version: 1.8.7
|
261
363
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
262
364
|
none: false
|
263
365
|
requirements:
|
264
366
|
- - ">="
|
265
367
|
- !ruby/object:Gem::Version
|
368
|
+
hash: 3
|
369
|
+
segments:
|
370
|
+
- 0
|
266
371
|
version: "0"
|
267
372
|
requirements: []
|
268
373
|
|
269
374
|
rubyforge_project: treequel
|
270
|
-
rubygems_version: 1.
|
375
|
+
rubygems_version: 1.6.2
|
271
376
|
signing_key:
|
272
377
|
specification_version: 3
|
273
378
|
summary: Treequel is an LDAP toolkit for Ruby
|
metadata.gz.sig
CHANGED
Binary file
|