uaeds 0.0.7 → 0.0.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 510a5eadadf27d9a168ff820e233666e28fec424
4
- data.tar.gz: b34c8c4c0bad37c7405bd142153e7bd7e3c0dd1e
3
+ metadata.gz: 321e76f2448db246c261c1f57973ea639f78da6b
4
+ data.tar.gz: 86aa1597823bca7f937509ffb8ee5105043223be
5
5
  SHA512:
6
- metadata.gz: '0646084b81b0ab5be6f982af7240f860af2b7616eaf56157f0c5da3d55a8345bd8f0d02755b9f9ed552abac3cae68a98b0a59ca964cf04b4cd5194c30aa12d18'
7
- data.tar.gz: fa1d7cde23aebfe1a4db020cecd5cf2ec206f6c448994a5cd8779b3eb5696935bec5b852ddf606c0415104dcd23eed239a8db2e11016f81087354cf82f86efda
6
+ metadata.gz: f303b5f4a6bb386017b9a712e60e9ee86d6888573e06e817361fc70670d1f212675f25c7424898508b8a35cc101c1f48da4a2e7d73469898e78edd13694e9533
7
+ data.tar.gz: b94ef1920eef55878691f16bfa8610841a02c7d178f44f390cc99a170abdcaf28d5021b100a0688ff5729a5b1ef81bdecb6dcb96d25f6fa90df8ae990d4ef5e9
@@ -1,7 +1,7 @@
1
1
  module Uaeds
2
2
  class DSMLPerson < DSML
3
3
  def date_of_birth
4
- if(@value_h.key? :dateOfBirth)
4
+ if (@value_h.key? :dateOfBirth)
5
5
  @value_h[:dateOfBirth]
6
6
  else
7
7
  dob = get_value(:dateOfBirth)
@@ -1,7 +1,6 @@
1
1
  module Uaeds
2
2
  class EdsDSML < Eds
3
3
  include Singleton
4
-
5
4
  @@eds_dsml_endpoint = nil
6
5
 
7
6
  def self.eds_endpoint=(endpoint=nil)
@@ -16,8 +15,9 @@ module Uaeds
16
15
 
17
16
  def open_person(identifier)
18
17
  # This might be improved with some more handling here and in DSML init.
19
- if(@user && @password)
20
- DSMLPerson.new(Nokogiri::XML(open(@url + "/people/#{identifier}", :http_basic_authentication=>[@user, @password])))
18
+ if @user && @password
19
+ DSMLPerson.new(Nokogiri::XML(open(@url + "/people/#{identifier}",
20
+ http_basic_authentication: [@user, @password])))
21
21
  else
22
22
  DSMLPerson.new(Nokogiri::XML(open(@url + "/people/#{identifier}")))
23
23
  end
@@ -1,17 +1,13 @@
1
1
  # Provided to ease testing of applications using DSML
2
2
  module Uaeds
3
3
  class MockEdsDSML < EdsDSML
4
-
5
-
6
4
  def initialize
7
5
  @mock_overrides = {}
8
6
  end
9
7
 
10
- def self.eds_endpoint=(endpoint=nil)
11
- end
8
+ def self.eds_endpoint=(_endpoint = nil) end
12
9
 
13
- def self.eds_endpoint
14
- end
10
+ def self.eds_endpoint() end
15
11
 
16
12
  def set_mock_overrides(dict)
17
13
  @mock_overrides = dict
@@ -25,34 +21,33 @@ module Uaeds
25
21
 
26
22
  def generate_attributes(identifier)
27
23
  # I'm sure there's a more elegant way to write this, but it's already written.
28
- return {
29
- :uid => @mock_overrides[:uid] || "mockuser#{identifier}", # netid
30
- :uaId => @mock_overrides[:uaId] || ('%012i' % identifier), # 12 digits
31
- :isoNumber => @mock_overrides[:isoNumber] || ('%016i' % identifier), # cat card, 16 digits
32
- :emplId => @mock_overrides[:emplid] || ('%08i' % identifier), # also SID, 8 digit
33
- :cn => @mock_overrides[:cn] || "mock user #{identifier}", # complete name
34
- :givenName => @mock_overrides[:givenName] || "mock", # First + initial
35
- :sn => @mock_overrides[:sn] || "user #{identifier}", # surname/last name
36
- :mail => @mock_overrides[:mail] || "mockuser#{identifier}@example.com", # email
37
- :eduPersonPrimaryAffiliation => @mock_overrides[:eduPersonPrimaryAffiliation] || "staff", # staff, student, member, etc.
38
- :employeeTitle => @mock_overrides[:employeeTitle] || "Test Robot",
39
- :employeePrimaryDept => @mock_overrides[:employeePrimaryDept] || "0000",
40
- :employeePrimaryDeptName => @mock_overrides[:employeePrimaryDeptName] || "Robot Wing"
24
+ {
25
+ uid: @mock_overrides[:uid] || "mockuser#{identifier}", # netid
26
+ uaId: @mock_overrides[:uaId] || ('%012i' % identifier), # 12 digits
27
+ isoNumber: @mock_overrides[:isoNumber] || ('%016i' % identifier), # cat card, 16 digits
28
+ emplId: @mock_overrides[:emplid] || ('%08i' % identifier), # also SID, 8 digit
29
+ cn: @mock_overrides[:cn] || "mock user #{identifier}", # complete name
30
+ givenName: @mock_overrides[:givenName] || 'mock j', # First + initial
31
+ preferredGivenname: @mock_overrides[:preferredGivenname] || 'mock',
32
+ sn: @mock_overrides[:sn] || "user #{identifier}", # surname/last name
33
+ mail: @mock_overrides[:mail] || "mockuser#{identifier}@example.com", # email
34
+ # staff, student, member, etc.
35
+ eduPersonPrimaryAffiliation: @mock_overrides[:eduPersonPrimaryAffiliation] || 'staff',
36
+ employeeTitle: @mock_overrides[:employeeTitle] || 'Test Robot',
37
+ employeePrimaryDept: @mock_overrides[:employeePrimaryDept] || '0000',
38
+ employeePrimaryDeptName: @mock_overrides[:employeePrimaryDeptName] || 'Robot Wing'
41
39
  }
42
40
  end
43
-
44
41
  end
45
42
 
46
43
  class MockDSMLPerson < DSMLPerson
47
-
48
- def initialize(data={})
49
- @xml = data
50
- @value_h = {}
44
+ def initialize(data = {})
45
+ @xml = data
46
+ @value_h = {}
51
47
  end
52
48
 
53
49
  def get_xml_attr(attr)
54
- return @xml[attr]
50
+ @xml[attr]
55
51
  end
56
52
  end
57
-
58
53
  end
data/lib/uaeds/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Uaeds
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -1,24 +1,19 @@
1
+ require 'uaeds'
1
2
  require 'uaeds/mock_eds'
2
-
3
-
4
3
  module Uaeds
5
-
6
4
  describe MockEdsDSML, MockDSMLPerson do
7
-
8
5
  describe 'MockEdsDSML' do
9
- let(:eds){ MockEdsDSML.instance }
10
-
6
+ let(:eds) { MockEdsDSML.instance }
11
7
  it 'provides an mock instance' do
12
8
  expect(eds).to be_an_instance_of MockEdsDSML
13
9
  end
14
10
  end
15
11
 
16
12
  describe 'MockEdsDSML can retrieve a mock person' do
17
- before{
13
+ before {
18
14
  @test_id = 1
19
15
  }
20
- let(:person){ MockEdsDSML.instance.person_by_uaid(@test_id) }
21
-
16
+ let(:person) { MockEdsDSML.instance.person_by_uaid(@test_id) }
22
17
  it 'provides a mock person' do
23
18
  expect(person).to be_an_instance_of MockDSMLPerson
24
19
  expect(person.uaid).to eq('%012i' % @test_id)
@@ -27,20 +22,16 @@ module Uaeds
27
22
  end
28
23
 
29
24
  describe 'can override default mock values' do
30
- before{
25
+ before {
31
26
  @test_id = 1
32
- MockEdsDSML.instance.set_mock_overrides({:givenName => 'Larry'})
27
+ MockEdsDSML.instance.set_mock_overrides(preferredGivenname: 'Larry')
33
28
  }
34
- let(:person){ MockEdsDSML.instance.person_by_uaid(@test_id) }
35
-
29
+ let(:person) { MockEdsDSML.instance.person_by_uaid(@test_id) }
36
30
  it 'overrode property' do
37
31
  expect(person).to be_an_instance_of MockDSMLPerson
38
32
  expect(person.uaid).to eq('%012i' % @test_id)
39
33
  expect(person.first_name).to eq('Larry')
40
34
  end
41
35
  end
42
-
43
36
  end
44
37
  end
45
-
46
-
data/spec/uaeds_spec.rb CHANGED
@@ -3,12 +3,11 @@ require 'uaeds/eds_dsml'
3
3
  require 'uaeds/eds_json'
4
4
  require 'highline/import'
5
5
 
6
- def color(a,b)
7
- HighLine.color(a,b)
6
+ def color(a, b)
7
+ HighLine.color(a, b)
8
8
  end
9
9
 
10
10
  module Uaeds
11
-
12
11
  describe EdsDSML, EdsJSON do
13
12
  eds_user = nil
14
13
  eds_key = nil
@@ -19,94 +18,89 @@ module Uaeds
19
18
  person_0 = nil
20
19
  person_1 = nil
21
20
  eds_test_user_netid = nil
22
-
21
+
23
22
  describe 'Get access credentials for testing' do
24
23
  info_color = [:yellow, :bold]
25
24
  question_color = [:green]
26
25
  error_color = [:red, :bold]
27
-
26
+
28
27
  say(color("To test this library access to an EDS system is required.", info_color))
29
28
  say(color("Please provide access credentials and endpoints for", info_color))
30
29
  say(color("testing as prompted.\n", info_color))
31
-
30
+
32
31
  eds_user = ask(color("EDS user name?", question_color)) do |input|
33
32
  input.validate = /.+/
34
33
  input.responses[:not_valid] = color("Please provide an EDS user name.", error_color)
35
34
  input.responses[:ask_on_error] = ""
36
35
  end
37
-
36
+
38
37
  eds_key = ask(color("EDS key?", question_color)) do |input|
39
38
  input.echo = "*"
40
39
  input.validate = /.+/
41
40
  input.responses[:not_valid] = color("Please provide an EDS key.", error_color)
42
41
  input.responses[:ask_on_error] = ""
43
42
  end
44
-
43
+
45
44
  eds_dsml_ep = ask(color("DSML endpoint?", question_color)) do |input|
46
45
  input.validate = /.+/
47
46
  input.responses[:not_valid] = color("Please provide a DSML service endpoint.", error_color)
48
47
  input.responses[:ask_on_error] = ""
49
48
  end
50
-
49
+
51
50
  eds_json_ep = ask(color("JSON endpoint?", question_color)) do |input|
52
51
  input.validate = /.+/
53
52
  input.responses[:not_valid] = color("Please provide a JSON service endpoint.", error_color)
54
53
  input.responses[:ask_on_error] = ""
55
54
  end
56
-
55
+
57
56
  eds_test_user_netid = ask(color("Please provide a NetID for testing.", question_color)) do |input|
58
57
  input.validate = /^\s*[a-zA-Z0-9]{3,16}\s*$/
59
58
  input.responses[:not_valid] = color("Please provide a NetID for testing.", error_color)
60
59
  input.responses[:ask_on_error] = ""
61
60
  end
62
-
61
+
63
62
  eds_user.strip!
64
63
  eds_key.strip!
65
64
  eds_dsml_ep.strip!
66
65
  eds_json_ep.strip!
67
66
  eds_test_user_netid.strip!
68
-
67
+
69
68
  puts(color("\nStarting tests...\n++++++++++++++\n", [:blue, :bold]))
70
-
69
+
71
70
  it 'Should have test credentials' do
72
71
  expect(eds_user).not_to be_empty
73
72
  expect(eds_key).not_to be_empty
74
73
  expect(eds_dsml_ep).not_to be_empty
75
74
  expect(eds_json_ep).not_to be_empty
76
75
  end
77
-
76
+
78
77
  Eds.eds_user = eds_user
79
78
  Eds.eds_key = eds_key
80
79
  EdsDSML.eds_endpoint = "https://#{eds_dsml_ep}"
81
80
  EdsJSON.eds_endpoint = "https://#{eds_json_ep}"
82
-
83
81
  end
84
-
85
-
82
+
83
+
86
84
  describe 'EdsDSML and EdsJSON retrieve the same results' do
87
-
88
85
  eds0 = EdsDSML.instance
89
86
  eds1 = EdsJSON.instance
90
-
91
87
  describe 'EdsDSML and EdsJSON should match when retrieved by NetId' do
92
-
93
88
  person_0 = eds0.person_by_netid(eds_test_user_netid)
94
89
  person_1 = eds1.person_by_netid(eds_test_user_netid)
95
-
96
90
  it 'retrieved a DSML person' do
97
91
  expect(person_0).to_not be_nil
98
92
  expect(person_0).to be_an_instance_of(DSMLPerson)
99
93
  end
100
-
94
+
101
95
  it 'retrieved a JSON person' do
102
96
  expect(person_1).to_not be_nil
103
97
  expect(person_1).to be_an_instance_of(JSONPerson)
104
98
  end
105
-
99
+
106
100
  it 'has the sanem netid' do
107
101
  expect(person_1.netid).to eq(person_0.netid)
108
102
  end
109
-
103
+
110
104
  it 'has the same name' do
111
105
  expect(person_0.name).to eq(person_1.name)
112
106
  end
@@ -117,18 +111,13 @@ module Uaeds
117
111
  # probably nil
118
112
  expect(person_1.emplid).to eq(person_0.emplid)
119
113
  end
120
-
121
114
  end
122
115
 
123
-
124
116
  describe 'EdsDSML and EdsJSON should match when retrieved by uaid' do
125
-
126
117
  person_1 = eds1.person_by_uaid(person_0.uaid)
127
-
128
118
  # Currently uiad's starting with a letter
129
119
  # can not be retrieved by the DSML API.
130
120
  # person_0 = eds0.person_by_uaid(person_1.uaid)
131
-
132
121
  it 'has the same netid' do
133
122
  expect(person_1.netid).to eq(person_0.netid)
134
123
  end
@@ -141,7 +130,6 @@ module Uaeds
141
130
  it 'has the same emplid' do
142
131
  expect(person_1.emplid).to eq(person_0.emplid)
143
132
  end
144
-
145
133
  end
146
134
 
147
135
  describe 'EdsDSML and EdsJSON both retrieve the proper user' do
@@ -149,16 +137,15 @@ module Uaeds
149
137
  expect(person_1.netid).to eq(eds_test_user_netid)
150
138
  expect(person_0.netid).to eq(eds_test_user_netid)
151
139
  end
152
-
153
140
  end
154
-
141
+
155
142
  describe 'EdsDSML and EdsJSON return nil for undefined attributes' do
156
143
  it 'returns nil' do
157
144
  expect(person_0.lookup_value('robotDinosaur')).to be_nil
158
145
  expect(person_1.lookup_value('robotDinosaur')).to be_nil
159
146
  end
160
147
  end
161
-
148
+
162
149
  describe 'EdsDSML returns nils for all values when blank entry is found' do
163
150
  person_2 = eds0.person_by_uaid('T0T0T0T0T0T0T0T0T0T0T0T0')
164
151
  it 'has nils' do
@@ -168,6 +155,5 @@ module Uaeds
168
155
  end
169
156
  end
170
157
  end
171
-
172
158
  end
173
- end
159
+ end
data/uaeds.gemspec CHANGED
@@ -4,25 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'uaeds/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "uaeds"
7
+ spec.name = 'uaeds'
8
8
  spec.version = Uaeds::VERSION
9
- spec.authors = ["dgsan"]
10
- spec.email = ["dgsan@gmx.com"]
11
- spec.description = "Tool for working with UA's 'Enterprise Directory Service,' an XML-based (DSML) (or JSON-based) lookup service."
12
- spec.summary = 'Tool for working with UA EDS'
13
- spec.homepage = "https://github.com/dgsan/uaeds"
14
- spec.license = "MIT"
9
+ spec.authors = ['dgsan']
10
+ spec.email = ['dgsan@gmx.com']
11
+ spec.description = "Tool for working with 'Enterprise Directory Service,' an XML-based (DSML) (or JSON-based) lookup service."
12
+ spec.summary = 'Tool for working with EDS'
13
+ spec.homepage = 'https://github.com/dgsan/uaeds'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency 'bundler', "~> 1.3"
22
- spec.add_development_dependency 'rake', "~> 10.1"
23
- spec.add_development_dependency 'rspec', "~> 2.6"
24
- spec.add_development_dependency 'highline', "~> 1.6"
25
- spec.add_runtime_dependency 'nokogiri', "~> 1.6"
26
- spec.add_runtime_dependency 'json', "~> 1.8"
19
+ spec.require_paths = ['lib']
27
20
 
21
+ spec.add_development_dependency 'bundler', '~> 1.16'
22
+ spec.add_development_dependency 'rake', '~> 12.3'
23
+ spec.add_development_dependency 'rspec', '~> 3.2'
24
+ spec.add_development_dependency 'highline', '~> 1.6'
25
+ spec.add_runtime_dependency 'nokogiri', '~> 1.8'
26
+ spec.add_runtime_dependency 'json', '~> 2.1'
28
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uaeds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - dgsan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2018-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '1.16'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.1'
33
+ version: '12.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.1'
40
+ version: '12.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.6'
47
+ version: '3.2'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.6'
54
+ version: '3.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: highline
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,30 +72,30 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: '1.8'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: '1.8'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.8'
89
+ version: '2.1'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.8'
97
- description: Tool for working with UA's 'Enterprise Directory Service,' an XML-based
98
- (DSML) (or JSON-based) lookup service.
96
+ version: '2.1'
97
+ description: Tool for working with 'Enterprise Directory Service,' an XML-based (DSML)
98
+ (or JSON-based) lookup service.
99
99
  email:
100
100
  - dgsan@gmx.com
101
101
  executables: []
@@ -144,7 +144,7 @@ rubyforge_project:
144
144
  rubygems_version: 2.5.2
145
145
  signing_key:
146
146
  specification_version: 4
147
- summary: Tool for working with UA EDS
147
+ summary: Tool for working with EDS
148
148
  test_files:
149
149
  - spec/mock_uaeds_spec.rb
150
150
  - spec/spec_helper.rb