alma 0.2.4 → 0.3.2

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 (52) hide show
  1. checksums.yaml +5 -5
  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/Gemfile +5 -1
  9. data/Guardfile +75 -0
  10. data/README.md +146 -57
  11. data/Rakefile +3 -1
  12. data/alma.gemspec +21 -12
  13. data/lib/alma.rb +34 -54
  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 +69 -31
  17. data/lib/alma/bib.rb +54 -29
  18. data/lib/alma/bib_holding.rb +25 -0
  19. data/lib/alma/bib_item.rb +164 -0
  20. data/lib/alma/bib_item_set.rb +93 -0
  21. data/lib/alma/bib_set.rb +5 -10
  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.rb +167 -0
  26. data/lib/alma/electronic/README.md +20 -0
  27. data/lib/alma/electronic/batch_utils.rb +224 -0
  28. data/lib/alma/electronic/business.rb +29 -0
  29. data/lib/alma/error.rb +16 -4
  30. data/lib/alma/fine.rb +16 -0
  31. data/lib/alma/fine_set.rb +41 -8
  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 -4
  37. data/lib/alma/location.rb +29 -0
  38. data/lib/alma/location_set.rb +21 -0
  39. data/lib/alma/renewal_response.rb +25 -14
  40. data/lib/alma/request.rb +167 -0
  41. data/lib/alma/request_options.rb +66 -0
  42. data/lib/alma/request_set.rb +69 -5
  43. data/lib/alma/response.rb +45 -0
  44. data/lib/alma/result_set.rb +27 -35
  45. data/lib/alma/user.rb +142 -86
  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/log/.gitignore +4 -0
  50. metadata +149 -10
  51. data/.travis.yml +0 -5
  52. data/lib/alma/api.rb +0 -33
@@ -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.4"
4
+ VERSION = "0.3.2"
3
5
  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.4
4
+ version: 0.3.2
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: 2017-03-08 00:00:00.000000000 Z
13
+ date: 2021-05-06 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: ezwadl
@@ -24,34 +26,76 @@ dependencies:
24
26
  - - ">="
25
27
  - !ruby/object:Gem::Version
26
28
  version: '0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: httparty
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: xml-simple
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
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'
27
71
  - !ruby/object:Gem::Dependency
28
72
  name: bundler
29
73
  requirement: !ruby/object:Gem::Requirement
30
74
  requirements:
31
75
  - - "~>"
32
76
  - !ruby/object:Gem::Version
33
- version: '1.13'
77
+ version: '2.0'
34
78
  type: :development
35
79
  prerelease: false
36
80
  version_requirements: !ruby/object:Gem::Requirement
37
81
  requirements:
38
82
  - - "~>"
39
83
  - !ruby/object:Gem::Version
40
- version: '1.13'
84
+ version: '2.0'
41
85
  - !ruby/object:Gem::Dependency
42
86
  name: rake
43
87
  requirement: !ruby/object:Gem::Requirement
44
88
  requirements:
45
89
  - - "~>"
46
90
  - !ruby/object:Gem::Version
47
- version: '10.0'
91
+ version: '13.0'
48
92
  type: :development
49
93
  prerelease: false
50
94
  version_requirements: !ruby/object:Gem::Requirement
51
95
  requirements:
52
96
  - - "~>"
53
97
  - !ruby/object:Gem::Version
54
- version: '10.0'
98
+ version: '13.0'
55
99
  - !ruby/object:Gem::Dependency
56
100
  name: rspec
57
101
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +138,96 @@ dependencies:
94
138
  - - ">="
95
139
  - !ruby/object:Gem::Version
96
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'
97
211
  description: Client for Ex Libris Alma Web Services
98
212
  email:
213
+ - jennifer.anton@temple.edu
214
+ - david.kinzer@temple.edu
99
215
  - chad.nelson@temple.edu
100
216
  executables: []
101
217
  extensions: []
102
218
  extra_rdoc_files: []
103
219
  files:
220
+ - ".circleci/config.yml"
221
+ - ".circleci/setup-rubygems.sh"
222
+ - ".github/dependabot.yml"
104
223
  - ".gitignore"
105
224
  - ".rspec"
225
+ - ".rubocop.yml"
106
226
  - ".ruby-gemset"
107
227
  - ".ruby-version"
108
- - ".travis.yml"
109
228
  - CODE_OF_CONDUCT.md
110
229
  - Gemfile
230
+ - Guardfile
111
231
  - LICENSE.txt
112
232
  - README.md
113
233
  - Rakefile
@@ -116,23 +236,43 @@ files:
116
236
  - bin/setup
117
237
  - lib/alma.rb
118
238
  - lib/alma/alma_record.rb
119
- - lib/alma/api.rb
239
+ - lib/alma/api_defaults.rb
120
240
  - lib/alma/availability_response.rb
121
241
  - lib/alma/bib.rb
242
+ - lib/alma/bib_holding.rb
243
+ - lib/alma/bib_item.rb
244
+ - lib/alma/bib_item_set.rb
122
245
  - lib/alma/bib_set.rb
123
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
124
253
  - lib/alma/error.rb
254
+ - lib/alma/fine.rb
125
255
  - lib/alma/fine_set.rb
256
+ - lib/alma/item_request_options.rb
257
+ - lib/alma/library.rb
258
+ - lib/alma/library_set.rb
126
259
  - lib/alma/loan.rb
127
260
  - lib/alma/loan_set.rb
261
+ - lib/alma/location.rb
262
+ - lib/alma/location_set.rb
128
263
  - lib/alma/renewal_response.rb
264
+ - lib/alma/request.rb
265
+ - lib/alma/request_options.rb
129
266
  - lib/alma/request_set.rb
267
+ - lib/alma/response.rb
130
268
  - lib/alma/result_set.rb
131
269
  - lib/alma/user.rb
270
+ - lib/alma/user_request.rb
132
271
  - lib/alma/user_set.rb
133
272
  - lib/alma/version.rb
134
273
  - lib/alma/wadl/bib.wadl
135
274
  - lib/alma/wadl/user.wadl
275
+ - log/.gitignore
136
276
  homepage: https://github.com/tulibraries/alma_rb
137
277
  licenses:
138
278
  - MIT
@@ -152,8 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
292
  - !ruby/object:Gem::Version
153
293
  version: '0'
154
294
  requirements: []
155
- rubyforge_project:
156
- rubygems_version: 2.5.2
295
+ rubygems_version: 3.1.4
157
296
  signing_key:
158
297
  specification_version: 4
159
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.3.3
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