cornell_ldap 1.4.0 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,21 +1,4 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in cornell_ldap.gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,47 +1,2 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "cornell_ldap"
8
- gem.summary = %Q{Toolkit for accessing information about people through the Cornell University LDAP directory.}
9
- gem.description = %Q{Using ActiveLdap, this library provides an easy interface for communicating with the Cornell University LDAP directory. Use of this directory is restricted to purposes authorized by the university.}
10
- gem.email = "aepstein607@gmail.com"
11
- gem.homepage = "http://github.com/aepstein/cornell_ldap"
12
- gem.authors = ["Ari Epstein"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
14
- gem.add_dependency "net-ldap", '>= 0.1.1'
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
- end
17
- Jeweler::GemcutterTasks.new
18
- rescue LoadError
19
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
20
- end
21
-
22
- require 'spec/rake/spectask'
23
- Spec::Rake::SpecTask.new(:spec) do |spec|
24
- spec.libs << 'lib' << 'spec'
25
- spec.spec_files = FileList['spec/**/*_spec.rb']
26
- end
27
-
28
- Spec::Rake::SpecTask.new(:rcov) do |spec|
29
- spec.libs << 'lib' << 'spec'
30
- spec.pattern = 'spec/**/*_spec.rb'
31
- spec.rcov = true
32
- end
33
-
34
- task :spec => :check_dependencies
35
-
36
- task :default => :spec
37
-
38
- require 'rake/rdoctask'
39
- Rake::RDocTask.new do |rdoc|
40
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
41
-
42
- rdoc.rdoc_dir = 'rdoc'
43
- rdoc.title = "cornell_ldap #{version}"
44
- rdoc.rdoc_files.include('README*')
45
- rdoc.rdoc_files.include('lib/**/*.rb')
46
- end
1
+ require "bundler/gem_tasks"
47
2
 
data/cornell_ldap.gemspec CHANGED
@@ -1,58 +1,30 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "cornell_ldap/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{cornell_ldap}
8
- s.version = "1.4.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ari Epstein"]
12
- s.date = %q{2010-09-09}
6
+ s.name = "cornell_ldap"
7
+ s.version = CornellLdap::VERSION
8
+ s.authors = ["Ari Epstein"]
9
+ s.email = ["aepstein607@gmail.com"]
10
+ s.homepage = "http://github.com/aepstein/cornell_ldap"
11
+ s.summary = %q{Lightweight LDAP abstraction library to work Cornell's particular structure}
13
12
  s.description = %q{Using ActiveLdap, this library provides an easy interface for communicating with the Cornell University LDAP directory. Use of this directory is restricted to purposes authorized by the university.}
14
- s.email = %q{aepstein607@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "cornell_ldap.gemspec",
27
- "lib/cornell_ldap.rb",
28
- "spec/cornell_ldap_spec.rb",
29
- "spec/spec.opts",
30
- "spec/spec_helper.rb"
31
- ]
32
- s.homepage = %q{http://github.com/aepstein/cornell_ldap}
33
- s.rdoc_options = ["--charset=UTF-8"]
13
+
14
+ s.rubyforge_project = "cornell_ldap"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
34
19
  s.require_paths = ["lib"]
35
20
  s.rubygems_version = %q{1.3.7}
36
- s.summary = %q{Toolkit for accessing information about people through the Cornell University LDAP directory.}
37
21
  s.test_files = [
38
22
  "spec/cornell_ldap_spec.rb",
39
23
  "spec/spec_helper.rb"
40
24
  ]
41
25
 
42
- if s.respond_to? :specification_version then
43
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
- s.specification_version = 3
26
+ s.add_development_dependency 'rspec'
27
+ s.add_dependency 'net-ldap'
45
28
 
46
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
48
- s.add_runtime_dependency(%q<net-ldap>, [">= 0.1.1"])
49
- else
50
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
51
- s.add_dependency(%q<net-ldap>, [">= 0.1.1"])
52
- end
53
- else
54
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
55
- s.add_dependency(%q<net-ldap>, [">= 0.1.1"])
56
- end
57
29
  end
58
30
 
@@ -0,0 +1,166 @@
1
+ require 'rubygems' unless defined? Gem
2
+ require 'net/ldap' unless defined? Net::LDAP
3
+
4
+ module CornellLdap
5
+ class Record < Object
6
+
7
+ MAPPINGS = {
8
+ :cornelledutype => :status,
9
+ :cornelleduwrkngtitle1 => :status_title1,
10
+ :cornelleduwrkngtitle2 => :status_title2,
11
+ :cornelleduacadcollege => :college,
12
+ :cornelleducampusaddress => :campus_address,
13
+ :cornelledulocaladdress => :local_address,
14
+ :homepostaladdress => :home_address,
15
+ :givenname => :first_name,
16
+ :cornelledumiddlename => :middle_name,
17
+ :sn => :last_name,
18
+ :cornelleducampusphone => :campus_phone,
19
+ :homephone => :home_phone,
20
+ :cornelledulocalphone => :local_phone
21
+ }
22
+
23
+ CONNECTION_PARAMETERS = [ :port, :host, :auth ]
24
+
25
+ def self.setup_connection( params )
26
+ @@connection_params = params.inject({}) do |memo, (k, v)|
27
+ memo[k.to_sym] = v
28
+ memo
29
+ end
30
+ @@connection = Net::LDAP.new(
31
+ @@connection_params.inject({}) do |memo, (k, v)|
32
+ memo[k] = v if CONNECTION_PARAMETERS.include? k
33
+ memo
34
+ end
35
+ )
36
+ end
37
+
38
+ def self.connection
39
+ @@connection
40
+ end
41
+
42
+ def self.find( subject )
43
+ r = connection.search(
44
+ :base => 'ou=People,' + @@connection_params[:base], :size => 1,
45
+ :filter => Net::LDAP::Filter.eq( 'uid', subject ),
46
+ :scope => Net::LDAP::SearchScope_SingleLevel
47
+ )
48
+ return CornellLdap::Record.new( r.first ) if r && r.length > 0
49
+ nil
50
+ end
51
+
52
+ # Takes an address string and converts it to a hash representation:
53
+ #
54
+ # [street] Street address
55
+ # [city] City
56
+ # [state] State
57
+ # [zip] Zip code
58
+ def self.address_attributes(string_address)
59
+ return if string_address.nil?
60
+ array_address = string_address.split(',').map! { |x| x.strip }
61
+ state = false
62
+ array_address.each_index { |i| state = i if array_address[i] =~ /^[A-Za-z]{2,2}$/ }
63
+ return unless state && state > 1
64
+ attributes = { :street => array_address[0..(state-2)].join(', '),
65
+ :city => array_address[state - 1],
66
+ :state => array_address[state] }
67
+ attributes[:zip] = array_address[state + 1] unless array_address[state + 1].nil?
68
+ attributes
69
+ end
70
+
71
+ def self.sanitize_phone(string_phone)
72
+ return if string_phone.nil?
73
+ string_phone.gsub /[^0-9]/, ''
74
+ end
75
+
76
+ attr_accessor :attributes
77
+
78
+ def initialize( record )
79
+ self.attributes = Hash.new
80
+ MAPPINGS.each do |ldap, local|
81
+ self.attributes[local] = record[ldap].first unless record[ldap].nil? || record[ldap].empty?
82
+ end
83
+ end
84
+
85
+ # Returns a string representation of the person's status with the university
86
+ # of one of the following types:
87
+ #
88
+ # [staff] non-faculty employee
89
+ # [faculty] tenured or tenure-track faculty
90
+ # [undergrad] undergraduate student
91
+ # [grad] graduate or professional student
92
+ # [alumni] alumnus
93
+ # [temporary] temporary or casual employee
94
+ # false status unknown
95
+ def status
96
+ return @status unless @status.nil?
97
+ return unless attributes.key?( :status )
98
+ @status = case attributes[:status]
99
+ when /^staff/ then 'staff'
100
+ when /^acad/ then
101
+ if ( attributes.key?(:status_title1) && attributes[:status_title1] =~ /^Prof/ ) ||
102
+ ( attributes.key?(:status_title2) && attributes[:status_title2] =~ /^Prof/ ) then
103
+ 'faculty'
104
+ else
105
+ 'staff'
106
+ end
107
+ when /^student/ then case attributes[:college]
108
+ when 'AS', 'AR', 'AG', 'IL', 'HE', 'HA', 'EN', 'UN' then 'undergrad'
109
+ else 'grad'
110
+ end
111
+ when /^alumni/ then 'alumni'
112
+ when /^temp/ then 'temporary'
113
+ else false
114
+ end
115
+ end
116
+
117
+ # Returns has representation of on campus address for person if one is
118
+ # reported.
119
+ # See CornellLdap::Record#address_attributes for more information.
120
+ def campus_address
121
+ unless @campus_address.nil?
122
+ return @campus_address
123
+ end
124
+ @campus_address = false unless attributes.key?(:campus_address) &&
125
+ @campus_address = { :street => attributes[:campus_address].strip,
126
+ :on_campus => true }
127
+ return campus_address
128
+ end
129
+
130
+ # Returns local area (Ithaca area) address for person if one is reported
131
+ # See CornellLdap::Record#address_attributes for more information.
132
+ def local_address
133
+ unless @local_address.nil?
134
+ return @local_address
135
+ end
136
+ @local_address = false unless attributes.key?(:local_address) &&
137
+ @local_address = Record.address_attributes(attributes[:local_address])
138
+ return local_address
139
+ end
140
+
141
+ # Returns home address for person if one is reported
142
+ # See CornellLdap::Record#address_attributes for more information.
143
+ def home_address
144
+ unless @home_address.nil?
145
+ return @home_address
146
+ end
147
+ @home_address = false unless attributes.key?(:home_address) &&
148
+ @home_address = Record.address_attributes(attributes[:home_address])
149
+ return home_address
150
+ end
151
+
152
+ # Returns first name of person
153
+ def first_name; attributes[:first_name]; end
154
+
155
+ # Returns middle name of person
156
+ def middle_name; attributes[:middle_name]; end
157
+
158
+ # Returns last name of person
159
+ def last_name; attributes[:last_name]; end
160
+
161
+ def campus_phone; Record.sanitize_phone attributes[:campus_phone]; end
162
+ def local_phone; Record.sanitize_phone attributes[:local_phone]; end
163
+ def home_phone; Record.sanitize_phone attributes[:home_phone]; end
164
+ end
165
+ end
166
+
@@ -0,0 +1,4 @@
1
+ module CornellLdap
2
+ VERSION = "1.4.2"
3
+ end
4
+
data/lib/cornell_ldap.rb CHANGED
@@ -1,154 +1,6 @@
1
- require 'rubygems' unless defined? Gem
2
- require 'net/ldap' unless defined? Net::LDAP
1
+ require "cornell_ldap/version"
3
2
 
4
3
  module CornellLdap
5
- class Record < Object
6
-
7
- MAPPINGS = {
8
- :cornelledutype => :status,
9
- :cornelleduwrkngtitle1 => :status_title1,
10
- :cornelleduwrkngtitle2 => :status_title2,
11
- :cornelleduacadcollege => :college,
12
- :cornelleducampusaddress => :campus_address,
13
- :cornelledulocaladdress => :local_address,
14
- :homepostaladdress => :home_address,
15
- :givenname => :first_name,
16
- :cornelledumiddlename => :middle_name,
17
- :sn => :last_name
18
- }
19
-
20
- CONNECTION_PARAMETERS = [ :port, :host, :auth ]
21
-
22
- def self.setup_connection( params )
23
- @@connection_params = params.inject({}) do |memo, (k, v)|
24
- memo[k.to_sym] = v
25
- memo
26
- end
27
- @@connection = Net::LDAP.new(
28
- @@connection_params.inject({}) do |memo, (k, v)|
29
- memo[k] = v if CONNECTION_PARAMETERS.include? k
30
- memo
31
- end
32
- )
33
- end
34
-
35
- def self.connection
36
- @@connection
37
- end
38
-
39
- def self.find( subject )
40
- r = connection.search(
41
- :base => 'ou=People,' + @@connection_params[:base], :size => 1,
42
- :filter => Net::LDAP::Filter.eq( 'uid', subject ),
43
- :scope => Net::LDAP::SearchScope_SingleLevel
44
- )
45
- return CornellLdap::Record.new( r.first ) if r && r.length > 0
46
- nil
47
- end
48
-
49
- # Takes an address string and converts it to a hash representation:
50
- #
51
- # [street] Street address
52
- # [city] City
53
- # [state] State
54
- # [zip] Zip code
55
- def self.address_attributes(string_address)
56
- return if string_address.nil?
57
- array_address = string_address.split(',').map! { |x| x.strip }
58
- state = false
59
- array_address.each_index { |i| state = i if array_address[i] =~ /^[A-Za-z]{2,2}$/ }
60
- return unless state && state > 1
61
- attributes = { :street => array_address[0..(state-2)].join(', '),
62
- :city => array_address[state - 1],
63
- :state => array_address[state] }
64
- attributes[:zip] = array_address[state + 1] unless array_address[state + 1].nil?
65
- attributes
66
- end
67
-
68
- attr_accessor :attributes
69
-
70
- def initialize( record )
71
- self.attributes = Hash.new
72
- MAPPINGS.each do |ldap, local|
73
- self.attributes[local] = record[ldap].first unless record[ldap].nil? || record[ldap].empty?
74
- end
75
- end
76
-
77
- # Returns a string representation of the person's status with the university
78
- # of one of the following types:
79
- #
80
- # [staff] non-faculty employee
81
- # [faculty] tenured or tenure-track faculty
82
- # [undergrad] undergraduate student
83
- # [grad] graduate or professional student
84
- # [alumni] alumnus
85
- # [temporary] temporary or casual employee
86
- # false status unknown
87
- def status
88
- return @status unless @status.nil?
89
- return unless attributes.key?( :status )
90
- @status = case attributes[:status]
91
- when /^staff/ then 'staff'
92
- when /^acad/ then
93
- if ( attributes.key?(:status_title1) && attributes[:status_title1] =~ /^Prof/ ) ||
94
- ( attributes.key?(:status_title2) && attributes[:status_title2] =~ /^Prof/ ) then
95
- 'faculty'
96
- else
97
- 'staff'
98
- end
99
- when /^student/ then case attributes[:college]
100
- when 'AS', 'AR', 'AG', 'IL', 'HE', 'HA', 'EN', 'UN' then 'undergrad'
101
- else 'grad'
102
- end
103
- when /^alumni/ then 'alumni'
104
- when /^temp/ then 'temporary'
105
- else false
106
- end
107
- end
108
-
109
- # Returns has representation of on campus address for person if one is
110
- # reported.
111
- # See CornellLdap::Record#address_attributes for more information.
112
- def campus_address
113
- unless @campus_address.nil?
114
- return @campus_address
115
- end
116
- @campus_address = false unless attributes.key?(:campus_address) &&
117
- @campus_address = { :street => attributes[:campus_address].strip,
118
- :on_campus => true }
119
- return campus_address
120
- end
121
-
122
- # Returns local area (Ithaca area) address for person if one is reported
123
- # See CornellLdap::Record#address_attributes for more information.
124
- def local_address
125
- unless @local_address.nil?
126
- return @local_address
127
- end
128
- @local_address = false unless attributes.key?(:local_address) &&
129
- @local_address = Record.address_attributes(attributes[:local_address])
130
- return local_address
131
- end
132
-
133
- # Returns home address for person if one is reported
134
- # See CornellLdap::Record#address_attributes for more information.
135
- def home_address
136
- unless @home_address.nil?
137
- return @home_address
138
- end
139
- @home_address = false unless attributes.key?(:home_address) &&
140
- @home_address = Record.address_attributes(attributes[:home_address])
141
- return home_address
142
- end
143
-
144
- # Returns first name of person
145
- def first_name; attributes[:first_name]; end
146
-
147
- # Returns middle name of person
148
- def middle_name; attributes[:middle_name]; end
149
-
150
- # Returns last name of person
151
- def last_name; attributes[:last_name]; end
152
- end
4
+ require 'cornell_ldap/record'
153
5
  end
154
6
 
@@ -1,5 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
1
+ require 'spec_helper'
3
2
  require 'cornell_ldap'
4
3
 
5
4
  CornellLdap::Record.setup_connection :host => 'directory.cornell.edu',
@@ -74,6 +73,13 @@ describe "CornellLdap" do
74
73
  person.campus_address[:street].should eql '-100 Day Hall'
75
74
  end
76
75
 
76
+ it "should strip non-numeric values from phone numbers" do
77
+ person = mock_person
78
+ person.campus_phone.should eql '6075551212'
79
+ person.local_phone.should eql '6075551212'
80
+ person.home_phone.should eql '6075551212'
81
+ end
82
+
77
83
  def mock_person(values = {})
78
84
  CornellLdap::Record.new( {
79
85
  :cornelledutype => ['staff'],
@@ -83,7 +89,10 @@ describe "CornellLdap" do
83
89
  :homepostaladdress => ['1 Broadway, New York, NY, 00000'],
84
90
  :givenname => ['John'],
85
91
  :cornelledumiddlename => ['A'],
86
- :sn => ['Doe']
92
+ :sn => ['Doe'],
93
+ :cornelleducampusphone => ['607+555-1212'],
94
+ :homephone => ['607-555*1212'],
95
+ :cornelledulocalphone => ['607-555 1212']
87
96
  }.merge(values) )
88
97
  end
89
98
  end
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,6 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'cornell_ldap'
4
- require 'spec'
5
- require 'spec/autorun'
6
-
7
- Spec::Runner.configure do |config|
8
-
1
+ RSpec.configure do |config|
2
+ config.treat_symbols_as_metadata_keys_with_true_values = true
3
+ config.run_all_when_everything_filtered = true
4
+ config.filter_run :focus
9
5
  end
6
+
metadata CHANGED
@@ -1,110 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cornell_ldap
3
- version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 4
9
- - 0
10
- version: 1.4.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ari Epstein
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-09-09 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-12 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rspec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &9072920 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 1
32
- - 2
33
- - 9
34
- version: 1.2.9
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
35
22
  type: :development
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: net-ldap
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *9072920
25
+ - !ruby/object:Gem::Dependency
26
+ name: net-ldap
27
+ requirement: &9072040 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 25
46
- segments:
47
- - 0
48
- - 1
49
- - 1
50
- version: 0.1.1
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
51
33
  type: :runtime
52
- version_requirements: *id002
53
- description: Using ActiveLdap, this library provides an easy interface for communicating with the Cornell University LDAP directory. Use of this directory is restricted to purposes authorized by the university.
54
- email: aepstein607@gmail.com
34
+ prerelease: false
35
+ version_requirements: *9072040
36
+ description: Using ActiveLdap, this library provides an easy interface for communicating
37
+ with the Cornell University LDAP directory. Use of this directory is restricted
38
+ to purposes authorized by the university.
39
+ email:
40
+ - aepstein607@gmail.com
55
41
  executables: []
56
-
57
42
  extensions: []
58
-
59
- extra_rdoc_files:
60
- - LICENSE
61
- - README.rdoc
62
- files:
63
- - .document
43
+ extra_rdoc_files: []
44
+ files:
64
45
  - .gitignore
46
+ - .rspec
47
+ - Gemfile
65
48
  - LICENSE
66
49
  - README.rdoc
67
50
  - Rakefile
68
- - VERSION
69
51
  - cornell_ldap.gemspec
70
52
  - lib/cornell_ldap.rb
53
+ - lib/cornell_ldap/record.rb
54
+ - lib/cornell_ldap/version.rb
71
55
  - spec/cornell_ldap_spec.rb
72
56
  - spec/spec.opts
73
57
  - spec/spec_helper.rb
74
- has_rdoc: true
75
58
  homepage: http://github.com/aepstein/cornell_ldap
76
59
  licenses: []
77
-
78
60
  post_install_message:
79
- rdoc_options:
80
- - --charset=UTF-8
81
- require_paths:
61
+ rdoc_options: []
62
+ require_paths:
82
63
  - lib
83
- required_ruby_version: !ruby/object:Gem::Requirement
64
+ required_ruby_version: !ruby/object:Gem::Requirement
84
65
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ segments:
90
71
  - 0
91
- version: "0"
92
- required_rubygems_version: !ruby/object:Gem::Requirement
72
+ hash: 4054269777481147648
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
74
  none: false
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- hash: 3
98
- segments:
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ segments:
99
80
  - 0
100
- version: "0"
81
+ hash: 4054269777481147648
101
82
  requirements: []
102
-
103
- rubyforge_project:
104
- rubygems_version: 1.3.7
83
+ rubyforge_project: cornell_ldap
84
+ rubygems_version: 1.8.15
105
85
  signing_key:
106
86
  specification_version: 3
107
- summary: Toolkit for accessing information about people through the Cornell University LDAP directory.
108
- test_files:
87
+ summary: Lightweight LDAP abstraction library to work Cornell's particular structure
88
+ test_files:
109
89
  - spec/cornell_ldap_spec.rb
110
90
  - spec/spec_helper.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.4.0