berkeley_library-av-core 0.4.0 → 0.4.1
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 +4 -4
- data/CHANGES.md +8 -0
- data/lib/berkeley_library/av/config.rb +15 -1
- data/lib/berkeley_library/av/core/module_info.rb +2 -2
- data/spec/lib/berkeley_library/av/config_spec.rb +48 -2
- metadata +3 -4
- data/Jenkinsfile +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 569fd96dfe6a21d1063777121fdc2d8f56d5dd032f0f666d4a09139f9d67bf72
|
4
|
+
data.tar.gz: ecb0b263d9b9e89a5cdb8a2c6fadc5bf26f5e0fcdc089ece07eaef2c0c56a0fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ece212939d614f6b1818325f6105d6e0dbd41b5ce29cf6ff5b728a66ba6431bdbba7415116e456d94328c5e8241c3285f0ce41b486b7913e88dc252305fe910e
|
7
|
+
data.tar.gz: e7f9fa98fe978ad7fd4c2697913203397ec0b03cdf3896c6a3541b1122f5353d80368e61639db4be0d078fa53a37086ce947afbe6466b0417355b9d32d527c99
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# 0.4.1 (2023-02-21)
|
2
|
+
|
3
|
+
- Add `BerkeleyLibrary::AV::Config.log_settings!`
|
4
|
+
|
5
|
+
# 0.4.0 (2023-01-05)
|
6
|
+
|
7
|
+
- Initial public release to RubyGems
|
8
|
+
|
1
9
|
# 0.3.0 (2022-02-01)
|
2
10
|
|
3
11
|
- Rename `Record#ucb_access?` and `Metadata#ucb_access?` to `calnet_or_ip?` for clarity.
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require 'berkeley_library/
|
1
|
+
require 'berkeley_library/logging'
|
2
|
+
require 'berkeley_library/util'
|
2
3
|
|
3
4
|
module BerkeleyLibrary
|
4
5
|
module AV
|
@@ -34,6 +35,8 @@ module BerkeleyLibrary
|
|
34
35
|
|
35
36
|
# View state key to use when generating Alma permalinks, e.g. `iqob43`; see
|
36
37
|
# https://knowledge.exlibrisgroup.com/Primo/Knowledge_Articles/What_is_the_key_in_short_permalinks%3F
|
38
|
+
#
|
39
|
+
# Note that despite the name 'key', this is not a secret.
|
37
40
|
def alma_permalink_key
|
38
41
|
@alma_permalink_key ||= value_from_rails_config(:alma_permalink_key)
|
39
42
|
end
|
@@ -158,8 +161,19 @@ module BerkeleyLibrary
|
|
158
161
|
raise ArgumentError, "Missing AV configuration settings: #{missing_settings.join(', ')}"
|
159
162
|
end
|
160
163
|
|
164
|
+
# Logs settings to the specified logger, or to the default logger.
|
165
|
+
# @param to_logger The logger to log to, if not the default.
|
166
|
+
def log_settings!(to_logger: BerkeleyLibrary::Logging.logger)
|
167
|
+
settings = REQUIRED_SETTINGS.to_h { |attr| [attr, loggable_value(send(attr))] }
|
168
|
+
to_logger.info("#{name} settings:", settings:)
|
169
|
+
end
|
170
|
+
|
161
171
|
private
|
162
172
|
|
173
|
+
def loggable_value(v)
|
174
|
+
v.is_a?(URI) ? v.to_s : v
|
175
|
+
end
|
176
|
+
|
163
177
|
def sru_base_uri_for(domain, inst_code)
|
164
178
|
URIs.append("https://#{domain}/view/sru/", inst_code)
|
165
179
|
end
|
@@ -8,8 +8,8 @@ module BerkeleyLibrary
|
|
8
8
|
SUMMARY = 'UC Berkeley Library audio/video core code'.freeze
|
9
9
|
DESCRIPTION = 'Gem for UC Berkeley Library shared audio/video code'.freeze
|
10
10
|
LICENSE = 'MIT'.freeze
|
11
|
-
VERSION = '0.4.
|
12
|
-
HOMEPAGE = 'https://
|
11
|
+
VERSION = '0.4.1'.freeze
|
12
|
+
HOMEPAGE = 'https://github.com/BerkeleyLibrary/av-core'.freeze
|
13
13
|
|
14
14
|
private_class_method :new
|
15
15
|
end
|
@@ -9,7 +9,7 @@ module BerkeleyLibrary
|
|
9
9
|
Config.send(:clear!)
|
10
10
|
end
|
11
11
|
|
12
|
-
describe
|
12
|
+
describe :configured? do
|
13
13
|
it 'defaults to false' do
|
14
14
|
expect(AV.configured?).to eq(false)
|
15
15
|
end
|
@@ -66,7 +66,7 @@ module BerkeleyLibrary
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
describe
|
69
|
+
describe :missing do
|
70
70
|
it 'defaults to all settings' do
|
71
71
|
expect(Config.missing).to eq(Config::REQUIRED_SETTINGS)
|
72
72
|
end
|
@@ -107,6 +107,52 @@ module BerkeleyLibrary
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
+
describe :log_settings! do
|
111
|
+
it 'logs all settings' do
|
112
|
+
settings = {
|
113
|
+
avplayer_base_uri: 'http://avplayer.example.edu',
|
114
|
+
alma_sru_host: 'berkeley.alma.exlibrisgroup.com',
|
115
|
+
alma_primo_host: 'search.library.berkeley.edu',
|
116
|
+
alma_institution_code: '01UCS_BER',
|
117
|
+
alma_permalink_key: 'iqob43',
|
118
|
+
tind_base_uri: 'http://tind.example.edu',
|
119
|
+
wowza_base_uri: 'http://wowza.example.edu'
|
120
|
+
}
|
121
|
+
settings.each { |setting, value| Config.send("#{setting}=", value) }
|
122
|
+
|
123
|
+
expect(BerkeleyLibrary::Logging.logger)
|
124
|
+
.to receive(:info).with(/config/i, settings:)
|
125
|
+
Config.log_settings!
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'logs nil for missing settings' do
|
129
|
+
settings = Config::REQUIRED_SETTINGS.to_h { |attr| [attr, nil] }
|
130
|
+
|
131
|
+
expect(BerkeleyLibrary::Logging.logger)
|
132
|
+
.to receive(:info).with(/config/i, settings:)
|
133
|
+
Config.log_settings!
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'accepts a custom logger' do
|
137
|
+
settings = {
|
138
|
+
avplayer_base_uri: 'http://avplayer.example.edu',
|
139
|
+
alma_sru_host: 'berkeley.alma.exlibrisgroup.com',
|
140
|
+
alma_primo_host: 'search.library.berkeley.edu',
|
141
|
+
alma_institution_code: '01UCS_BER',
|
142
|
+
alma_permalink_key: 'iqob43',
|
143
|
+
tind_base_uri: 'http://tind.example.edu',
|
144
|
+
wowza_base_uri: 'http://wowza.example.edu'
|
145
|
+
}
|
146
|
+
settings.each { |setting, value| Config.send("#{setting}=", value) }
|
147
|
+
|
148
|
+
logger = instance_double(Ougai::Logger)
|
149
|
+
expect(logger)
|
150
|
+
.to receive(:info).with(/config/i, settings:)
|
151
|
+
|
152
|
+
Config.log_settings!(to_logger: logger)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
110
156
|
describe :avplayer_base_uri= do
|
111
157
|
it 'converts strings to URIs' do
|
112
158
|
expected_uri = URI.parse('http://avplayer.example.edu')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkeley_library-av-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Moles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: berkeley_library-logging
|
@@ -336,7 +336,6 @@ files:
|
|
336
336
|
- ".simplecov"
|
337
337
|
- CHANGES.md
|
338
338
|
- Gemfile
|
339
|
-
- Jenkinsfile
|
340
339
|
- LICENSE.md
|
341
340
|
- README.md
|
342
341
|
- Rakefile
|
@@ -422,7 +421,7 @@ files:
|
|
422
421
|
- spec/lib/berkeley_library/av/types/file_type_spec.rb
|
423
422
|
- spec/lib/berkeley_library/av/util_spec.rb
|
424
423
|
- spec/spec_helper.rb
|
425
|
-
homepage: https://
|
424
|
+
homepage: https://github.com/BerkeleyLibrary/av-core
|
426
425
|
licenses:
|
427
426
|
- MIT
|
428
427
|
metadata:
|
data/Jenkinsfile
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
dockerComposePipeline(
|
2
|
-
commands: [
|
3
|
-
'bundle exec rake coverage',
|
4
|
-
'bundle exec rake rubocop',
|
5
|
-
'bundle exec rake bundle:audit',
|
6
|
-
'bundle exec rake gem'
|
7
|
-
],
|
8
|
-
artifacts: [
|
9
|
-
junit: 'artifacts/rspec/**/*.xml',
|
10
|
-
html : [
|
11
|
-
'Code Coverage': 'artifacts/rcov',
|
12
|
-
'RuboCop' : 'artifacts/rubocop'
|
13
|
-
],
|
14
|
-
raw : ['artifacts/**/*.gem']
|
15
|
-
]
|
16
|
-
)
|