alma 0.2.6 → 0.3.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +54 -0
  3. data/.circleci/setup-rubygems.sh +3 -0
  4. data/.github/dependabot.yml +7 -0
  5. data/.gitignore +3 -0
  6. data/.rubocop.yml +134 -0
  7. data/.ruby-version +1 -1
  8. data/CODE_OF_CONDUCT.md +1 -1
  9. data/Gemfile +4 -3
  10. data/Guardfile +75 -0
  11. data/README.md +136 -26
  12. data/Rakefile +3 -1
  13. data/alma.gemspec +21 -16
  14. data/lib/alma/alma_record.rb +3 -3
  15. data/lib/alma/api_defaults.rb +39 -0
  16. data/lib/alma/availability_response.rb +50 -53
  17. data/lib/alma/bib.rb +26 -42
  18. data/lib/alma/bib_holding.rb +25 -0
  19. data/lib/alma/bib_item.rb +28 -38
  20. data/lib/alma/bib_item_set.rb +72 -12
  21. data/lib/alma/bib_set.rb +7 -21
  22. data/lib/alma/config.rb +10 -4
  23. data/lib/alma/course.rb +47 -0
  24. data/lib/alma/course_set.rb +17 -0
  25. data/lib/alma/electronic/README.md +20 -0
  26. data/lib/alma/electronic/batch_utils.rb +224 -0
  27. data/lib/alma/electronic/business.rb +29 -0
  28. data/lib/alma/electronic.rb +167 -0
  29. data/lib/alma/error.rb +16 -4
  30. data/lib/alma/fine.rb +16 -0
  31. data/lib/alma/fine_set.rb +36 -21
  32. data/lib/alma/item_request_options.rb +23 -0
  33. data/lib/alma/library.rb +29 -0
  34. data/lib/alma/library_set.rb +21 -0
  35. data/lib/alma/loan.rb +31 -2
  36. data/lib/alma/loan_set.rb +62 -15
  37. data/lib/alma/location.rb +29 -0
  38. data/lib/alma/location_set.rb +21 -0
  39. data/lib/alma/renewal_response.rb +19 -11
  40. data/lib/alma/request.rb +167 -0
  41. data/lib/alma/request_options.rb +36 -17
  42. data/lib/alma/request_set.rb +64 -15
  43. data/lib/alma/response.rb +45 -0
  44. data/lib/alma/result_set.rb +27 -35
  45. data/lib/alma/user.rb +111 -92
  46. data/lib/alma/user_request.rb +19 -0
  47. data/lib/alma/user_set.rb +5 -6
  48. data/lib/alma/version.rb +3 -1
  49. data/lib/alma.rb +34 -22
  50. data/log/.gitignore +4 -0
  51. metadata +118 -10
  52. data/.travis.yml +0 -5
  53. data/lib/alma/api.rb +0 -33
data/lib/alma/user.rb CHANGED
@@ -1,35 +1,52 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Alma
2
4
  class User
5
+ class ResponseError < Alma::StandardError
6
+ end
3
7
  extend Forwardable
8
+ extend Alma::ApiDefaults
4
9
 
5
- def self.find(user_id)
6
- response = HTTParty.get("#{self.users_base_path}/#{user_id}", headers: headers)
7
- if response.code == 200
8
- Alma::User.new JSON.parse(response.body)
9
- else
10
- raise StandardError, parse(response.body)
11
- end
12
- end
10
+ def self.find(user_id, args = {})
11
+ args[:expand] ||= "fees,requests,loans"
12
+ response = HTTParty.get("#{self.users_base_path}/#{user_id}", query: args, headers: headers, timeout: timeout)
13
13
 
14
- # Authenticates a Alma user with their Alma Password
15
- # @param [Hash] args
16
- # @option args [String] :user_id The unique id of the user
17
- # @option args [String] :password The users local alma password
18
- # @return [Boolean] Whether or not the user Successfully authenticated
19
- def self.authenticate(args)
20
- user_id = args.delete(:user_id) { raise ArgumentError }
21
- args.merge!({op: 'auth'})
22
- response = HTTParty.post("#{users_base_path}/#{user_id}", query: args, headers: headers)
23
- response.code == 204
24
- end
14
+ Alma::User.new response
15
+ end
16
+
17
+ # Authenticates a Alma user with their Alma Password
18
+ # @param [Hash] args
19
+ # @option args [String] :user_id The unique id of the user
20
+ # @option args [String] :password The users local alma password
21
+ # @return [Boolean] Whether or not the user Successfully authenticated
22
+ def self.authenticate(args)
23
+ user_id = args.delete(:user_id) { raise ArgumentError }
24
+ args.merge!({ op: "auth" })
25
+ response = HTTParty.post("#{users_base_path}/#{user_id}", query: args, headers: headers, timeout: timeout)
26
+ response.code == 204
27
+ end
25
28
 
26
29
 
27
30
  # The User object can respond directly to Hash like access of attributes
28
31
  def_delegators :response, :[], :[]=, :has_key?, :keys, :to_json
29
32
 
30
- def initialize(response_body)
31
- @response = response_body
32
- @recheck_loans = true
33
+ def initialize(response)
34
+ @raw_response = response
35
+ @response = response.parsed_response
36
+ validate(response)
37
+ end
38
+
39
+ def loggable
40
+ { uri: @raw_response&.request&.uri.to_s
41
+ }.select { |k, v| !(v.nil? || v.empty?) }
42
+ end
43
+
44
+ def validate(response)
45
+ if response.code != 200
46
+ log = loggable.merge(response.parsed_response)
47
+ error = "The user was not found."
48
+ raise ResponseError.new(error, log)
49
+ end
33
50
  end
34
51
 
35
52
  def response
@@ -37,7 +54,19 @@ module Alma
37
54
  end
38
55
 
39
56
  def id
40
- self['primary_id']
57
+ self["primary_id"]
58
+ end
59
+
60
+ def total_fines
61
+ response.dig("fees", "value") || "0"
62
+ end
63
+
64
+ def total_requests
65
+ response.dig("requests", "value") || "0"
66
+ end
67
+
68
+ def total_loans
69
+ response.dig("loans", "value") || "0"
41
70
  end
42
71
 
43
72
 
@@ -54,43 +83,29 @@ module Alma
54
83
 
55
84
  # Persist the user in it's current state back to Alma
56
85
  def save!
57
- response = HTTParty.put("#{users_base_path}/#{id}", headers: headers, body: to_json)
86
+ response = HTTParty.put("#{users_base_path}/#{id}", timeout: timeout, headers: headers, body: to_json)
58
87
  get_body_from(response)
59
88
  end
60
89
 
61
90
 
62
91
  def fines
63
- response = HTTParty.get("#{users_base_path}/#{id}/fees", headers: headers)
64
- if response.code == 200
65
- Alma::FineSet.new get_body_from(response)
66
- else
67
- raise StandardError, get_body_from(response)
68
- end
92
+ Alma::Fine.where_user(id)
69
93
  end
70
94
 
71
95
  def requests
72
- #TODO Handle Additional Parameters
73
- #TODO Handle Pagination
74
- #TODO Handle looping through all results
75
- response = HTTParty.get("#{users_base_path}/#{id}/requests", headers: headers)
76
- Alma::RequestSet.new(get_body_from(response))
96
+ Alma::UserRequest.where_user(id)
77
97
  end
78
98
 
79
99
 
80
- def loans(args={})
81
- unless @loans && !recheck_loans?
82
- @loans = send_loans_request(args)
83
- @recheck_loans = false
84
- end
85
- @loans
100
+ def loans(args = {})
101
+ @loans ||= Alma::Loan.where_user(id, args)
86
102
  end
87
103
 
88
104
  def renew_loan(loan_id)
89
- response = send_loan_renewal_request({user_id: id, loan_id: loan_id})
105
+ response = self.class.send_loan_renewal_request({ user_id: id, loan_id: loan_id })
90
106
  if response.renewed?
91
107
  @recheck_loans ||= true
92
108
  end
93
- get_body_from response
94
109
  end
95
110
 
96
111
 
@@ -98,81 +113,85 @@ module Alma
98
113
  loan_ids.map { |id| renew_loan(id) }
99
114
  end
100
115
 
101
-
102
116
  def renew_all_loans
103
117
  renew_multiple_loans(loans.map(&:loan_id))
104
118
  end
105
119
 
106
-
107
- def recheck_loans?
108
- @recheck_loans
109
- end
110
-
111
-
112
120
  def preferred_email
113
121
  self["contact_info"]["email"].select { |k, v| k["preferred"] }.first["email_address"]
114
122
  end
115
123
 
116
-
117
124
  def email
118
125
  self["contact_info"]["email"].map { |e| e["email_address"] }
119
126
  end
120
127
 
128
+ def preferred_first_name
129
+ pref_first = self["pref_first_name"] unless self["pref_first_name"] == ""
130
+ pref_first || self["first_name"] || ""
131
+ end
121
132
 
122
- private
123
-
124
- def send_loans_request(args={})
125
- #TODO Handle looping through all results
126
-
127
- # Always expand renewable unless you really don't want to
128
- args["expand"] ||= "renewable"
129
- response = HTTParty.get("#{users_base_path}/#{id}/loans", query: args, headers: headers)
130
- Alma::LoanSet.new(get_body_from(response))
133
+ def preferred_middle_name
134
+ pref_middle = self["pref_middle_name"] unless self["pref_middle_name"] == ""
135
+ pref_middle || self["middle_name"] || ""
131
136
  end
132
137
 
133
- # Attempts to renew a single item for a user
134
- # @param [Hash] args
135
- # @option args [String] :user_id The unique id of the user
136
- # @option args [String] :loan_id The unique id of the loan
137
- # @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
138
- # @return [RenewalResponse] Object indicating the renewal message
139
- def send_loan_renewal_request(args)
140
- user_id = args.delete(:user_id) { raise ArgumentError }
141
- loan_id = args.delete(:loan_id) { raise ArgumentError }
142
- params = {op: 'renew'}
143
- response = HTTParty.post("#{users_base_path}/#{id}/loans/#{loan_id}", query: params, headers: headers)
144
- RenewalResponse.new(get_body_from(response))
138
+ def preferred_last_name
139
+ pref_last = self["pref_last_name"] unless self["pref_last_name"] == ""
140
+ pref_last || self["last_name"]
145
141
  end
146
142
 
143
+ def preferred_suffix
144
+ self["pref_name_suffix"] || ""
145
+ end
147
146
 
148
- def get_body_from(response)
149
- JSON.parse(response.body)
147
+ def preferred_name
148
+ "#{preferred_first_name} #{preferred_middle_name} #{preferred_last_name} #{preferred_suffix}"
150
149
  end
151
150
 
152
151
 
153
- def self.users_base_path
154
- "https://api-na.hosted.exlibrisgroup.com/almaws/v1/users"
155
- end
156
152
 
157
- def users_base_path
158
- self.class.users_base_path
159
- end
153
+ private
160
154
 
161
- def self.headers
162
- { "Authorization": "apikey #{self.apikey}",
163
- "Accept": "application/json",
164
- "Content-Type": "application/json" }
165
- end
155
+ # Attempts to renew a single item for a user
156
+ # @param [Hash] args
157
+ # @option args [String] :user_id The unique id of the user
158
+ # @option args [String] :loan_id The unique id of the loan
159
+ # @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
160
+ # @return [RenewalResponse] Object indicating the renewal message
161
+ def self.send_loan_renewal_request(args)
162
+ loan_id = args.delete(:loan_id) { raise ArgumentError }
163
+ user_id = args.delete(:user_id) { raise ArgumentError }
164
+ params = { op: "renew" }
165
+ response = HTTParty.post("#{users_base_path}/#{user_id}/loans/#{loan_id}", query: params, headers: headers)
166
+ RenewalResponse.new(response)
167
+ end
166
168
 
169
+ # Attempts to renew multiple items for a user
170
+ # @param [Hash] args
171
+ # @option args [String] :user_id The unique id of the user
172
+ # @option args [Array<String>] :loan_ids The unique ids of the loans
173
+ # @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
174
+ # @return [Array<RenewalResponse>] Array of Objects indicating the renewal messages
175
+ def self.send_multiple_loan_renewal_requests(args)
176
+ loan_ids = args.delete(:loan_ids) { raise ArgumentError }
177
+ loan_ids.map { |id| Alma::User.send_loan_renewal_request(args.merge(loan_id: id)) }
178
+ end
167
179
 
168
- def headers
169
- self.class.headers
170
- end
180
+ def get_body_from(response)
181
+ JSON.parse(response.body)
182
+ end
171
183
 
172
184
 
173
- def self.apikey
174
- Alma.configuration.apikey
175
- end
185
+ def self.users_base_path
186
+ "https://api-na.hosted.exlibrisgroup.com/almaws/v1/users"
187
+ end
176
188
 
177
- end
189
+ def users_base_path
190
+ self.class.users_base_path
191
+ end
192
+
193
+ def headers
194
+ self.class.headers
195
+ end
178
196
  end
197
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alma
4
+ class UserRequest < AlmaRecord
5
+ extend Alma::ApiDefaults
6
+
7
+ def self.where_user(user_id, args = {})
8
+ # Default to upper limit
9
+ args[:limit] ||= 100
10
+ response = HTTParty.get(
11
+ "#{users_base_path}/#{user_id}/requests",
12
+ query: args,
13
+ headers: headers,
14
+ timeout: timeout
15
+ )
16
+ Alma::RequestSet.new(response)
17
+ end
18
+ end
19
+ end
data/lib/alma/user_set.rb CHANGED
@@ -1,18 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Alma
2
4
  class UserSet
3
-
4
5
  def top_level_key
5
- 'users'
6
-
6
+ "users"
7
7
  end
8
8
 
9
9
  def response_records_key
10
- 'user'
10
+ "user"
11
11
  end
12
12
 
13
13
  def single_record_class
14
14
  Alma::User
15
15
  end
16
-
17
16
  end
18
- end
17
+ end
data/lib/alma/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Alma
2
- VERSION = "0.2.6"
4
+ VERSION = "0.3.3"
3
5
  end
data/lib/alma.rb CHANGED
@@ -1,27 +1,39 @@
1
- require 'alma/version'
2
- require 'alma/config'
3
- require 'alma/api'
4
- require 'alma/error'
5
- require 'alma/alma_record'
6
- require 'alma/user'
7
- require 'alma/bib'
8
- require 'alma/loan'
9
- require 'alma/result_set'
10
- require 'alma/loan_set'
11
- require 'alma/user_set'
12
- require 'alma/fine_set'
13
- require 'alma/user_set'
14
- require 'alma/bib_set'
15
- require 'alma/request_set'
16
- require 'alma/renewal_response'
17
- require 'alma/availability_response'
18
- require 'alma/bib_item'
19
- require 'alma/request_options'
1
+ # frozen_string_literal: true
2
+
3
+ require "alma/version"
4
+ require "alma/config"
5
+ require "alma/api_defaults"
6
+ require "alma/error"
7
+ require "alma/alma_record"
8
+ require "alma/response"
9
+ require "alma/user"
10
+ require "alma/bib"
11
+ require "alma/loan"
12
+ require "alma/result_set"
13
+ require "alma/loan_set"
14
+ require "alma/user_set"
15
+ require "alma/fine_set"
16
+ require "alma/fine"
17
+ require "alma/bib_set"
18
+ require "alma/request_set"
19
+ require "alma/renewal_response"
20
+ require "alma/availability_response"
21
+ require "alma/bib_item"
22
+ require "alma/request_options"
23
+ require "alma/item_request_options"
24
+ require "alma/request"
25
+ require "alma/user_request"
26
+ require "alma/electronic"
27
+ require "alma/bib_holding"
28
+ require "alma/library"
29
+ require "alma/library_set"
30
+ require "alma/location"
31
+ require "alma/location_set"
32
+ require "alma/course_set"
33
+ require "alma/course"
20
34
 
21
35
  module Alma
36
+ require "httparty"
22
37
 
23
38
  ROOT = File.dirname __dir__
24
- WADL_DIR = File.join(Alma::ROOT, 'lib','alma','wadl')
25
-
26
-
27
39
  end
data/log/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ # Ignore everything in this directory
2
+ *
3
+ # Except this file
4
+ !.gitignore
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
+ - Jennifer Anton
8
+ - David Kinzer
7
9
  - Chad Nelson
8
10
  autorequire:
9
11
  bindir: exe
10
12
  cert_chain: []
11
- date: 2018-06-14 00:00:00.000000000 Z
13
+ date: 2021-12-02 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: ezwadl
@@ -52,34 +54,48 @@ dependencies:
52
54
  - - ">="
53
55
  - !ruby/object:Gem::Version
54
56
  version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: activesupport
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
55
71
  - !ruby/object:Gem::Dependency
56
72
  name: bundler
57
73
  requirement: !ruby/object:Gem::Requirement
58
74
  requirements:
59
75
  - - "~>"
60
76
  - !ruby/object:Gem::Version
61
- version: '1.13'
77
+ version: '2.0'
62
78
  type: :development
63
79
  prerelease: false
64
80
  version_requirements: !ruby/object:Gem::Requirement
65
81
  requirements:
66
82
  - - "~>"
67
83
  - !ruby/object:Gem::Version
68
- version: '1.13'
84
+ version: '2.0'
69
85
  - !ruby/object:Gem::Dependency
70
86
  name: rake
71
87
  requirement: !ruby/object:Gem::Requirement
72
88
  requirements:
73
89
  - - "~>"
74
90
  - !ruby/object:Gem::Version
75
- version: '10.0'
91
+ version: '13.0'
76
92
  type: :development
77
93
  prerelease: false
78
94
  version_requirements: !ruby/object:Gem::Requirement
79
95
  requirements:
80
96
  - - "~>"
81
97
  - !ruby/object:Gem::Version
82
- version: '10.0'
98
+ version: '13.0'
83
99
  - !ruby/object:Gem::Dependency
84
100
  name: rspec
85
101
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +138,96 @@ dependencies:
122
138
  - - ">="
123
139
  - !ruby/object:Gem::Version
124
140
  version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rubocop
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ - !ruby/object:Gem::Dependency
156
+ name: rubocop-rails
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ - !ruby/object:Gem::Dependency
170
+ name: byebug
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ - !ruby/object:Gem::Dependency
184
+ name: guard
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ - !ruby/object:Gem::Dependency
198
+ name: guard-rspec
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: '0'
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
125
211
  description: Client for Ex Libris Alma Web Services
126
212
  email:
213
+ - jennifer.anton@temple.edu
214
+ - david.kinzer@temple.edu
127
215
  - chad.nelson@temple.edu
128
216
  executables: []
129
217
  extensions: []
130
218
  extra_rdoc_files: []
131
219
  files:
220
+ - ".circleci/config.yml"
221
+ - ".circleci/setup-rubygems.sh"
222
+ - ".github/dependabot.yml"
132
223
  - ".gitignore"
133
224
  - ".rspec"
225
+ - ".rubocop.yml"
134
226
  - ".ruby-gemset"
135
227
  - ".ruby-version"
136
- - ".travis.yml"
137
228
  - CODE_OF_CONDUCT.md
138
229
  - Gemfile
230
+ - Guardfile
139
231
  - LICENSE.txt
140
232
  - README.md
141
233
  - Rakefile
@@ -144,26 +236,43 @@ files:
144
236
  - bin/setup
145
237
  - lib/alma.rb
146
238
  - lib/alma/alma_record.rb
147
- - lib/alma/api.rb
239
+ - lib/alma/api_defaults.rb
148
240
  - lib/alma/availability_response.rb
149
241
  - lib/alma/bib.rb
242
+ - lib/alma/bib_holding.rb
150
243
  - lib/alma/bib_item.rb
151
244
  - lib/alma/bib_item_set.rb
152
245
  - lib/alma/bib_set.rb
153
246
  - lib/alma/config.rb
247
+ - lib/alma/course.rb
248
+ - lib/alma/course_set.rb
249
+ - lib/alma/electronic.rb
250
+ - lib/alma/electronic/README.md
251
+ - lib/alma/electronic/batch_utils.rb
252
+ - lib/alma/electronic/business.rb
154
253
  - lib/alma/error.rb
254
+ - lib/alma/fine.rb
155
255
  - lib/alma/fine_set.rb
256
+ - lib/alma/item_request_options.rb
257
+ - lib/alma/library.rb
258
+ - lib/alma/library_set.rb
156
259
  - lib/alma/loan.rb
157
260
  - lib/alma/loan_set.rb
261
+ - lib/alma/location.rb
262
+ - lib/alma/location_set.rb
158
263
  - lib/alma/renewal_response.rb
264
+ - lib/alma/request.rb
159
265
  - lib/alma/request_options.rb
160
266
  - lib/alma/request_set.rb
267
+ - lib/alma/response.rb
161
268
  - lib/alma/result_set.rb
162
269
  - lib/alma/user.rb
270
+ - lib/alma/user_request.rb
163
271
  - lib/alma/user_set.rb
164
272
  - lib/alma/version.rb
165
273
  - lib/alma/wadl/bib.wadl
166
274
  - lib/alma/wadl/user.wadl
275
+ - log/.gitignore
167
276
  homepage: https://github.com/tulibraries/alma_rb
168
277
  licenses:
169
278
  - MIT
@@ -183,8 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
292
  - !ruby/object:Gem::Version
184
293
  version: '0'
185
294
  requirements: []
186
- rubyforge_project:
187
- rubygems_version: 2.7.6
295
+ rubygems_version: 3.1.4
188
296
  signing_key:
189
297
  specification_version: 4
190
298
  summary: Client for Ex Libris Alma Web Services
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.13.7
data/lib/alma/api.rb DELETED
@@ -1,33 +0,0 @@
1
- require 'ezwadl'
2
-
3
- module Alma
4
- module Api
5
-
6
-
7
- def default_params
8
- { :query => { :apikey => Alma.configuration.apikey } }
9
- end
10
-
11
- def query_merge(hash)
12
- {:query => default_params[:query].merge(hash)}
13
- end
14
-
15
- def resources
16
- @resources ||= load_wadl
17
- end
18
-
19
- def load_wadl(wadl_filename = nil)
20
- wadl_filename ||= set_wadl_filename
21
- parsed_wadl = EzWadl::Parser.parse(File.join(Alma::WADL_DIR, wadl_filename)) do |rs|
22
- rs.first.path = Alma.configuration.region
23
- end
24
- parsed_wadl.first
25
- end
26
-
27
- def set_wadl_filename
28
- # Each class including this module should define this
29
- raise NotImplementedError 'You must define the wadl_filename method'
30
- end
31
-
32
- end
33
- end