treequel 1.5.2 → 1.5.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|