exlibris-aleph 0.1.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/README.md +89 -0
  2. data/Rakefile +2 -4
  3. data/lib/exlibris-aleph.rb +8 -21
  4. data/lib/exlibris/aleph.rb +13 -0
  5. data/lib/exlibris/aleph/abstract.rb +28 -0
  6. data/lib/exlibris/aleph/config.rb +78 -0
  7. data/lib/exlibris/aleph/patron.rb +71 -56
  8. data/lib/exlibris/aleph/record.rb +34 -40
  9. data/lib/exlibris/aleph/rest/base.rb +56 -0
  10. data/lib/exlibris/aleph/tab_helper.rb +84 -99
  11. data/lib/exlibris/aleph/{config/config_base.rb → tabs_parser/base.rb} +2 -2
  12. data/lib/exlibris/aleph/{config → tabs_parser}/pc_tab_exp_field_extended.rb +2 -2
  13. data/lib/exlibris/aleph/{config/config_by_sub_library.rb → tabs_parser/sub_library.rb} +2 -2
  14. data/lib/exlibris/aleph/{config → tabs_parser}/tab15_by_item_process_status.rb +2 -2
  15. data/lib/exlibris/aleph/{config → tabs_parser}/tab15_by_item_status.rb +2 -2
  16. data/lib/exlibris/aleph/{config → tabs_parser}/tab31.rb +2 -2
  17. data/lib/exlibris/aleph/{config → tabs_parser}/tab37.rb +2 -2
  18. data/lib/exlibris/aleph/{config → tabs_parser}/tab40.rb +2 -2
  19. data/lib/exlibris/aleph/{config → tabs_parser}/tab_sub_library.rb +2 -2
  20. data/lib/exlibris/aleph/{config → tabs_parser}/tab_www_item_desc.rb +2 -2
  21. data/lib/exlibris/aleph/task_installer.rb +23 -0
  22. data/lib/exlibris/aleph/version.rb +1 -1
  23. data/lib/exlibris/aleph/write_attributes.rb +38 -0
  24. data/lib/exlibris/aleph/xml_util.rb +50 -0
  25. data/lib/exlibris/aleph/xservice/bor_auth.rb +47 -0
  26. data/lib/tasks/exlibris-aleph_tasks.rake +1 -8
  27. data/test/{dummy/config → config}/aleph/alephe/sub_libraries.yml +0 -1
  28. data/test/{dummy/config → config}/aleph/nyu50/collections.yml +0 -1
  29. data/test/{dummy/config → config}/aleph/nyu50/item_permissions_by_item_process_status.yml +0 -1
  30. data/test/{dummy/config → config}/aleph/nyu50/item_permissions_by_item_status.yml +104 -105
  31. data/test/{dummy/config → config}/aleph/nyu50/items.yml +0 -1
  32. data/test/{dummy/config → config}/aleph/nyu50/patron_permissions.yml +27 -28
  33. data/test/{dummy/config → config}/aleph/nyu50/patrons.yml +0 -1
  34. data/test/{dummy/config → config}/aleph/nyu50/pickup_locations.yml +0 -1
  35. data/test/{dummy/config → config}/aleph/nyu51/collections.yml +0 -1
  36. data/test/{dummy/config → config}/aleph/nyu51/item_permissions_by_item_process_status.yml +0 -1
  37. data/test/{dummy/config → config}/aleph/nyu51/item_permissions_by_item_status.yml +6 -7
  38. data/test/{dummy/config → config}/aleph/nyu51/items.yml +0 -1
  39. data/test/{dummy/config → config}/aleph/nyu51/patron_permissions.yml +27 -28
  40. data/test/{dummy/config → config}/aleph/nyu51/patrons.yml +0 -1
  41. data/test/{dummy/config → config}/aleph/nyu51/pickup_locations.yml +0 -1
  42. data/test/config_test.rb +24 -0
  43. data/test/patron_test.rb +98 -0
  44. data/test/{unit/record_benchmarks.rb → record_benchmarks.rb} +0 -0
  45. data/test/record_test.rb +64 -0
  46. data/test/support/config.yml +2 -0
  47. data/test/{unit/tab_helper_benchmarks.rb → tab_helper_benchmarks.rb} +5 -20
  48. data/test/tab_helper_test.rb +178 -0
  49. data/test/test_helper.rb +26 -22
  50. data/test/vcr_cassettes/bor_auth.yml +8 -10
  51. data/test/vcr_cassettes/patron.yml +77 -18
  52. data/test/vcr_cassettes/patron_address.yml +45 -0
  53. data/test/vcr_cassettes/patron_bogus_url.yml +731 -0
  54. data/test/vcr_cassettes/patron_error.yml +93 -0
  55. data/test/vcr_cassettes/record.yml +18 -17
  56. data/test/vcr_cassettes/record_bogus_url.yml +690 -0
  57. data/test/{unit → xservice}/bor_auth_test.rb +4 -4
  58. metadata +160 -150
  59. data/README.rdoc +0 -67
  60. data/lib/exlibris/aleph/bor_auth.rb +0 -45
  61. data/lib/exlibris/aleph/railtie.rb +0 -9
  62. data/lib/exlibris/aleph/rest.rb +0 -43
  63. data/lib/exlibris/aleph/tasks.rb +0 -25
  64. data/test/dummy/README.rdoc +0 -261
  65. data/test/dummy/Rakefile +0 -7
  66. data/test/dummy/app/assets/javascripts/application.js +0 -15
  67. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  68. data/test/dummy/app/controllers/application_controller.rb +0 -3
  69. data/test/dummy/app/helpers/application_helper.rb +0 -2
  70. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  71. data/test/dummy/config.ru +0 -4
  72. data/test/dummy/config/application.rb +0 -56
  73. data/test/dummy/config/boot.rb +0 -10
  74. data/test/dummy/config/database.yml +0 -25
  75. data/test/dummy/config/environment.rb +0 -5
  76. data/test/dummy/config/environments/development.rb +0 -37
  77. data/test/dummy/config/environments/production.rb +0 -67
  78. data/test/dummy/config/environments/test.rb +0 -37
  79. data/test/dummy/config/initializers/aleph.rb +0 -1
  80. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  81. data/test/dummy/config/initializers/inflections.rb +0 -15
  82. data/test/dummy/config/initializers/mime_types.rb +0 -5
  83. data/test/dummy/config/initializers/secret_token.rb +0 -7
  84. data/test/dummy/config/initializers/session_store.rb +0 -8
  85. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  86. data/test/dummy/config/locales/en.yml +0 -5
  87. data/test/dummy/config/routes.rb +0 -58
  88. data/test/dummy/db/README +0 -0
  89. data/test/dummy/db/test.sqlite3 +0 -0
  90. data/test/dummy/log/aleph/aleph_tab_helper.log +0 -1
  91. data/test/dummy/log/aleph/tab_helper.log +0 -109
  92. data/test/dummy/log/tab_helper.log +0 -16
  93. data/test/dummy/log/test.log +0 -5160
  94. data/test/dummy/public/404.html +0 -26
  95. data/test/dummy/public/422.html +0 -26
  96. data/test/dummy/public/500.html +0 -25
  97. data/test/dummy/public/favicon.ico +0 -0
  98. data/test/dummy/script/rails +0 -6
  99. data/test/unit/patron_test.rb +0 -41
  100. data/test/unit/record_test.rb +0 -32
  101. data/test/unit/tab_helper_test.rb +0 -222
@@ -1,7 +1,7 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- module Config
4
- class Tab31 < Exlibris::Aleph::Config::ConfigBySubLibrary
3
+ module TabParser
4
+ class Tab31 < Exlibris::Aleph::TabParser::SubLibrary
5
5
 
6
6
  def initialize(args)
7
7
  args[:aleph_file_name] = "tab31"
@@ -1,7 +1,7 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- module Config
4
- class Tab37 < Exlibris::Aleph::Config::ConfigBase
3
+ module TabParser
4
+ class Tab37 < Exlibris::Aleph::TabParser::Base
5
5
 
6
6
  def initialize(args)
7
7
  args[:aleph_file_name] = "tab37"
@@ -1,7 +1,7 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- module Config
4
- class Tab40 < Exlibris::Aleph::Config::ConfigBySubLibrary
3
+ module TabParser
4
+ class Tab40 < Exlibris::Aleph::TabParser::SubLibrary
5
5
 
6
6
  def initialize(args)
7
7
  args[:aleph_file_name] = "tab40.eng"
@@ -1,7 +1,7 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- module Config
4
- class TabSubLibrary < Exlibris::Aleph::Config::ConfigBase
3
+ module TabParser
4
+ class TabSubLibrary < Exlibris::Aleph::TabParser::Base
5
5
 
6
6
  def initialize(args)
7
7
  args[:aleph_file_name] = "tab_sub_library.eng"
@@ -1,7 +1,7 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- module Config
4
- class TabWwwItemDesc < Exlibris::Aleph::Config::ConfigBase
3
+ module TabParser
4
+ class TabWwwItemDesc < Exlibris::Aleph::TabParser::Base
5
5
 
6
6
  def initialize(args)
7
7
  args[:aleph_file_name] = "tab_www_item_desc.eng"
@@ -0,0 +1,23 @@
1
+ module Exlibris
2
+ module Aleph
3
+ if defined?(::Rails) && ::Rails.version >= '3.1.0'
4
+ class Railtie < Rails::Railtie
5
+ rake_tasks do
6
+ load "tasks/exlibris-aleph_tasks.rake"
7
+ end
8
+ end
9
+ else
10
+ require 'rake'
11
+ class TaskInstaller
12
+ include Rake::DSL if defined? Rake::DSL
13
+ class << self
14
+ def install_tasks
15
+ @rake_tasks ||= []
16
+ @rake_tasks << load("tasks/exlibris-aleph_tasks.rake")
17
+ @rake_tasks
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  module Exlibris
2
2
  module Aleph
3
- VERSION = "0.1.6"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -0,0 +1,38 @@
1
+ module Exlibris
2
+ module Aleph
3
+ #
4
+ # Write passed in arguments to instance attributes
5
+ #
6
+ module WriteAttributes
7
+
8
+ def initialize *args
9
+ # Just call super w/o any args for now. Eventually, we'll want to check the arity and adjust.
10
+ # self.class.superclass.instance_method(:initialize).arity.eql? self.class.instance_method(:initialize).arity
11
+ super
12
+ write_attributes args.last unless args.last.nil?
13
+ end
14
+
15
+ def write_attributes attributes
16
+ attributes.each do |attribute, value|
17
+ write_attribute attribute, value
18
+ end
19
+ end
20
+
21
+ def attributize symbol
22
+ symbol.id2name.sub(/=$/, "").to_sym
23
+ end
24
+ protected :attributize
25
+
26
+ def write_attribute attribute, value
27
+ attribute_writer = writify attribute
28
+ send attribute_writer, value if respond_to? attribute_writer
29
+ end
30
+ private :write_attribute
31
+
32
+ def writify key
33
+ "#{key}=".to_sym
34
+ end
35
+ private :writify
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,50 @@
1
+ module Exlibris
2
+ module Aleph
3
+ #
4
+ # Utility for parsing and building XML
5
+ #
6
+ module XmlUtil
7
+ require 'nokogiri'
8
+
9
+ def self.included(klass)
10
+ klass.class_eval do
11
+ extend ClassAttributes
12
+ end
13
+ end
14
+
15
+ module ClassAttributes
16
+ def xml_options
17
+ @xml_options ||= {
18
+ :encoding => 'UTF-8',
19
+ :indent => 0,
20
+ :save_with => Nokogiri::XML::Node::SaveOptions::AS_XML | Nokogiri::XML::Node::SaveOptions::NO_DECLARATION
21
+ }
22
+ end
23
+ end
24
+
25
+ attr_reader :raw_xml
26
+ protected :raw_xml
27
+
28
+ # Returns an XML string and takes any args that are
29
+ # understood by Nokogiri::XML::Builder.
30
+ def build_xml options={}, &block
31
+ Nokogiri::XML::Builder.new(options.merge(:encoding => 'UTF-8'), &block).to_xml(xml_options).strip
32
+ end
33
+ protected :build_xml
34
+
35
+ def xml_options
36
+ @xml_options ||= self.class.xml_options
37
+ end
38
+ protected :xml_options
39
+
40
+ def xml(*args)
41
+ Nokogiri::XML((args.shift[:xml] || raw_xml))
42
+ end
43
+ protected :xml
44
+
45
+ def to_xml
46
+ xml.to_xml(xml_options).strip
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,47 @@
1
+ module Exlibris
2
+ module Aleph
3
+ module Xservice
4
+ require 'open-uri'
5
+ require 'nokogiri'
6
+ # ==Overview
7
+ # Exlibris::Aleph::BorAuth provides access to the BorAuth Aleph XService.
8
+ class BorAuth
9
+ attr_reader :response, :error, :session_id
10
+
11
+ # Creates an instance of Exlibris::Aleph::BorAuth based on the input parameters.
12
+ def initialize(aleph_url, library, sub_library, translate, bor_id, bor_verification)
13
+ url = "#{aleph_url}/X?"
14
+ url += "op=bor-auth&library=#{library}&"
15
+ url += "sub_library=#{sub_library}&translate=#{translate}&"
16
+ url += "bor_id=#{bor_id}&verification=#{bor_verification}&"
17
+ @response = Nokogiri.XML(open(url))
18
+ @session_id = @response.at("//session-id").inner_text unless @response.at("//session-id").nil?
19
+ @error = @response.at("//error").inner_text unless @response.at("//error").nil?
20
+ end
21
+
22
+ # Returns a Hash of permissions for the Aleph sub library passed into the constructor.
23
+ def permissions
24
+ rv = {}
25
+ return rv unless @response and self.error.nil?
26
+ rv[:home_sub_library] = @response.at("z303-home-library").inner_text unless @response.at("z303-home-library").nil?
27
+ rv[:bor_status] = @response.at("z305-bor-status").inner_text unless @response.at("z305-bor-status").nil?
28
+ rv[:bor_type] = @response.at("z305-bor-type").inner_text unless @response.at("z305-bor-type").nil?
29
+ rv[:loan_permission] = @response.at("z305-loan-permission").inner_text unless @response.at("z305-loan-permission").nil?
30
+ rv[:photo_permission] = @response.at("z305-photo-permission").inner_text unless @response.at("z305-photo-permission").nil?
31
+ rv[:over_permission] = @response.at("z305-over-permission").inner_text unless @response.at("z305-over-permission").nil?
32
+ rv[:multi_hold] = @response.at("z305-multi-hold").inner_text unless @response.at("z305-multi-hold").nil?
33
+ rv[:loan_check] = @response.at("z305-loan-check").inner_text unless @response.at("z305-loan-check").nil?
34
+ rv[:hold_permission] = @response.at("z305-hold-permission").inner_text unless @response.at("z305-hold-permission").nil?
35
+ rv[:renew_permission] = @response.at("z305-renew-permission").inner_text unless @response.at("z305-renew-permission").nil?
36
+ rv[:rr_permission] = @response.at("z305-rr-permission").inner_text unless @response.at("z305-rr-permission").nil?
37
+ rv[:ignore_late_return] = @response.at("z305-ignore-late-return").inner_text unless @response.at("z305-ignore-late-return").nil?
38
+ rv[:hold_on_shelf] = @response.at("z305-hold-on-shelf").inner_text unless @response.at("z305-hold-on-shelf").nil?
39
+ rv[:end_block_date] = @response.at("z305-end-block-date").inner_text unless @response.at("z305-end-block-date").nil?
40
+ rv[:booking_permission] = @response.at("z305-booking-permission").inner_text unless @response.at("z305-booking-permission").nil?
41
+ rv[:booking_ignore_hours] = @response.at("z305-booking-ignore-hours").inner_text unless @response.at("z305-booking-ignore-hours").nil?
42
+ return rv
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,14 +1,7 @@
1
1
  namespace :exlibris do
2
2
  namespace :aleph do
3
- desc "Initialize rake environment"
4
- task :initialize do
5
- Dir.glob("config/initializers/*.rb").each do |initializer|
6
- require File.expand_path(File.join(Rails.root, initializer), __FILE__)
7
- end
8
- end
9
-
10
3
  desc "Refresh Aleph YAML Config"
11
- task :refresh => :initialize do
4
+ task :refresh do
12
5
  Exlibris::Aleph::TabHelper.refresh_yml
13
6
  end
14
7
  end
@@ -799,4 +799,3 @@ NEW__:
799
799
  :type: '1'
800
800
  :library: NYU50
801
801
  :text: NYU TEST
802
- ...
@@ -1166,4 +1166,3 @@ TWEB:
1166
1166
  :collection_code: TNSIS
1167
1167
  :sub_library: TWEB
1168
1168
  :text: Internet Resources
1169
- ...
@@ -61874,4 +61874,3 @@ TNSOS:
61874
61874
  :reloaning_limit: '00'
61875
61875
  :booking_permission: N
61876
61876
  :booking_hours: A
61877
- ...
@@ -119,9 +119,9 @@ BAFC:
119
119
  :reloaning_limit: '00'
120
120
  :booking_permission: N
121
121
  :booking_hours: A
122
- '08':
122
+ 08:
123
123
  :sub_library: BAFC
124
- :item_status: '08'
124
+ :item_status: 08
125
125
  :item_process_status: ! '##'
126
126
  :text: Reference
127
127
  :loan: N
@@ -136,9 +136,9 @@ BAFC:
136
136
  :reloaning_limit: '00'
137
137
  :booking_permission: N
138
138
  :booking_hours: A
139
- '09':
139
+ 09:
140
140
  :sub_library: BAFC
141
- :item_status: '09'
141
+ :item_status: 09
142
142
  :item_process_status: ! '##'
143
143
  :text: Recorded music
144
144
  :loan: Y
@@ -868,9 +868,9 @@ BFALE:
868
868
  :reloaning_limit: '00'
869
869
  :booking_permission: N
870
870
  :booking_hours: A
871
- '08':
871
+ 08:
872
872
  :sub_library: BFALE
873
- :item_status: '08'
873
+ :item_status: 08
874
874
  :item_process_status: ! '##'
875
875
  :text: Reference
876
876
  :loan: Y
@@ -885,9 +885,9 @@ BFALE:
885
885
  :reloaning_limit: '00'
886
886
  :booking_permission: N
887
887
  :booking_hours: A
888
- '09':
888
+ 09:
889
889
  :sub_library: BFALE
890
- :item_status: '09'
890
+ :item_status: 09
891
891
  :item_process_status: ! '##'
892
892
  :text: Recorded music
893
893
  :loan: Y
@@ -1600,9 +1600,9 @@ BLCC:
1600
1600
  :reloaning_limit: '00'
1601
1601
  :booking_permission: N
1602
1602
  :booking_hours: A
1603
- '08':
1603
+ 08:
1604
1604
  :sub_library: BLCC
1605
- :item_status: '08'
1605
+ :item_status: 08
1606
1606
  :item_process_status: ! '##'
1607
1607
  :text: Reference
1608
1608
  :loan: N
@@ -1617,9 +1617,9 @@ BLCC:
1617
1617
  :reloaning_limit: '00'
1618
1618
  :booking_permission: N
1619
1619
  :booking_hours: A
1620
- '09':
1620
+ 09:
1621
1621
  :sub_library: BLCC
1622
- :item_status: '09'
1622
+ :item_status: 09
1623
1623
  :item_process_status: ! '##'
1624
1624
  :text: Recorded music
1625
1625
  :loan: N
@@ -2315,9 +2315,9 @@ BOBST:
2315
2315
  :reloaning_limit: '00'
2316
2316
  :booking_permission: N
2317
2317
  :booking_hours: A
2318
- '08':
2318
+ 08:
2319
2319
  :sub_library: BOBST
2320
- :item_status: '08'
2320
+ :item_status: 08
2321
2321
  :item_process_status: ! '##'
2322
2322
  :text: Reference
2323
2323
  :loan: N
@@ -2332,9 +2332,9 @@ BOBST:
2332
2332
  :reloaning_limit: '00'
2333
2333
  :booking_permission: N
2334
2334
  :booking_hours: A
2335
- '09':
2335
+ 09:
2336
2336
  :sub_library: BOBST
2337
- :item_status: '09'
2337
+ :item_status: 09
2338
2338
  :item_process_status: ! '##'
2339
2339
  :text: Recorded music
2340
2340
  :loan: Y
@@ -3030,9 +3030,9 @@ BREF6:
3030
3030
  :reloaning_limit: '00'
3031
3031
  :booking_permission: N
3032
3032
  :booking_hours: A
3033
- '08':
3033
+ 08:
3034
3034
  :sub_library: BREF6
3035
- :item_status: '08'
3035
+ :item_status: 08
3036
3036
  :item_process_status: ! '##'
3037
3037
  :text: Reference
3038
3038
  :loan: Y
@@ -3047,9 +3047,9 @@ BREF6:
3047
3047
  :reloaning_limit: '00'
3048
3048
  :booking_permission: N
3049
3049
  :booking_hours: A
3050
- '09':
3050
+ 09:
3051
3051
  :sub_library: BREF6
3052
- :item_status: '09'
3052
+ :item_status: 09
3053
3053
  :item_process_status: ! '##'
3054
3054
  :text: Recorded music
3055
3055
  :loan: Y
@@ -3779,9 +3779,9 @@ BRES:
3779
3779
  :reloaning_limit: '00'
3780
3780
  :booking_permission: N
3781
3781
  :booking_hours: A
3782
- '08':
3782
+ 08:
3783
3783
  :sub_library: BRES
3784
- :item_status: '08'
3784
+ :item_status: 08
3785
3785
  :item_process_status: ! '##'
3786
3786
  :text: Reference
3787
3787
  :loan: N
@@ -3796,9 +3796,9 @@ BRES:
3796
3796
  :reloaning_limit: '00'
3797
3797
  :booking_permission: N
3798
3798
  :booking_hours: A
3799
- '09':
3799
+ 09:
3800
3800
  :sub_library: BRES
3801
- :item_status: '09'
3801
+ :item_status: 09
3802
3802
  :item_process_status: ! '##'
3803
3803
  :text: Recorded music
3804
3804
  :loan: N
@@ -4494,9 +4494,9 @@ BTAM:
4494
4494
  :reloaning_limit: '00'
4495
4495
  :booking_permission: N
4496
4496
  :booking_hours: A
4497
- '08':
4497
+ 08:
4498
4498
  :sub_library: BTAM
4499
- :item_status: '08'
4499
+ :item_status: 08
4500
4500
  :item_process_status: ! '##'
4501
4501
  :text: Reference
4502
4502
  :loan: Y
@@ -4511,9 +4511,9 @@ BTAM:
4511
4511
  :reloaning_limit: '00'
4512
4512
  :booking_permission: N
4513
4513
  :booking_hours: A
4514
- '09':
4514
+ 09:
4515
4515
  :sub_library: BTAM
4516
- :item_status: '09'
4516
+ :item_status: 09
4517
4517
  :item_process_status: ! '##'
4518
4518
  :text: Recorded music
4519
4519
  :loan: Y
@@ -5226,9 +5226,9 @@ BWEB:
5226
5226
  :reloaning_limit: '00'
5227
5227
  :booking_permission: N
5228
5228
  :booking_hours: A
5229
- '08':
5229
+ 08:
5230
5230
  :sub_library: BWEB
5231
- :item_status: '08'
5231
+ :item_status: 08
5232
5232
  :item_process_status: ! '##'
5233
5233
  :text: Reference
5234
5234
  :loan: Y
@@ -5243,9 +5243,9 @@ BWEB:
5243
5243
  :reloaning_limit: '00'
5244
5244
  :booking_permission: N
5245
5245
  :booking_hours: A
5246
- '09':
5246
+ 09:
5247
5247
  :sub_library: BWEB
5248
- :item_status: '09'
5248
+ :item_status: 09
5249
5249
  :item_process_status: ! '##'
5250
5250
  :text: Recorded music
5251
5251
  :loan: Y
@@ -5975,9 +5975,9 @@ CU:
5975
5975
  :reloaning_limit: '00'
5976
5976
  :booking_permission: N
5977
5977
  :booking_hours: A
5978
- '08':
5978
+ 08:
5979
5979
  :sub_library: CU
5980
- :item_status: '08'
5980
+ :item_status: 08
5981
5981
  :item_process_status: ! '##'
5982
5982
  :text: Reference
5983
5983
  :loan: N
@@ -5992,9 +5992,9 @@ CU:
5992
5992
  :reloaning_limit: '00'
5993
5993
  :booking_permission: N
5994
5994
  :booking_hours: A
5995
- '09':
5995
+ 09:
5996
5996
  :sub_library: CU
5997
- :item_status: '09'
5997
+ :item_status: 09
5998
5998
  :item_process_status: ! '##'
5999
5999
  :text: Recorded music
6000
6000
  :loan: N
@@ -6707,9 +6707,9 @@ KBHS:
6707
6707
  :reloaning_limit: '00'
6708
6708
  :booking_permission: N
6709
6709
  :booking_hours: A
6710
- '08':
6710
+ 08:
6711
6711
  :sub_library: KBHS
6712
- :item_status: '08'
6712
+ :item_status: 08
6713
6713
  :item_process_status: ! '##'
6714
6714
  :text: Reference
6715
6715
  :loan: Y
@@ -6724,9 +6724,9 @@ KBHS:
6724
6724
  :reloaning_limit: '00'
6725
6725
  :booking_permission: N
6726
6726
  :booking_hours: A
6727
- '09':
6727
+ 09:
6728
6728
  :sub_library: KBHS
6729
- :item_status: '09'
6729
+ :item_status: 09
6730
6730
  :item_process_status: ! '##'
6731
6731
  :text: Recorded music
6732
6732
  :loan: Y
@@ -7439,9 +7439,9 @@ MISC:
7439
7439
  :reloaning_limit: '00'
7440
7440
  :booking_permission: N
7441
7441
  :booking_hours: A
7442
- '08':
7442
+ 08:
7443
7443
  :sub_library: MISC
7444
- :item_status: '08'
7444
+ :item_status: 08
7445
7445
  :item_process_status: ! '##'
7446
7446
  :text: Reference
7447
7447
  :loan: Y
@@ -7456,9 +7456,9 @@ MISC:
7456
7456
  :reloaning_limit: '00'
7457
7457
  :booking_permission: N
7458
7458
  :booking_hours: A
7459
- '09':
7459
+ 09:
7460
7460
  :sub_library: MISC
7461
- :item_status: '09'
7461
+ :item_status: 09
7462
7462
  :item_process_status: ! '##'
7463
7463
  :text: Recorded music
7464
7464
  :loan: Y
@@ -8171,9 +8171,9 @@ NCOUR:
8171
8171
  :reloaning_limit: '00'
8172
8172
  :booking_permission: N
8173
8173
  :booking_hours: A
8174
- '08':
8174
+ 08:
8175
8175
  :sub_library: NCOUR
8176
- :item_status: '08'
8176
+ :item_status: 08
8177
8177
  :item_process_status: ! '##'
8178
8178
  :text: Reference
8179
8179
  :loan: N
@@ -8188,9 +8188,9 @@ NCOUR:
8188
8188
  :reloaning_limit: '00'
8189
8189
  :booking_permission: N
8190
8190
  :booking_hours: A
8191
- '09':
8191
+ 09:
8192
8192
  :sub_library: NCOUR
8193
- :item_status: '09'
8193
+ :item_status: 09
8194
8194
  :item_process_status: ! '##'
8195
8195
  :text: Recorded music
8196
8196
  :loan: N
@@ -8903,9 +8903,9 @@ NIFA:
8903
8903
  :reloaning_limit: '00'
8904
8904
  :booking_permission: N
8905
8905
  :booking_hours: A
8906
- '08':
8906
+ 08:
8907
8907
  :sub_library: NIFA
8908
- :item_status: '08'
8908
+ :item_status: 08
8909
8909
  :item_process_status: ! '##'
8910
8910
  :text: Reference
8911
8911
  :loan: N
@@ -8920,9 +8920,9 @@ NIFA:
8920
8920
  :reloaning_limit: '00'
8921
8921
  :booking_permission: N
8922
8922
  :booking_hours: A
8923
- '09':
8923
+ 09:
8924
8924
  :sub_library: NIFA
8925
- :item_status: '09'
8925
+ :item_status: 09
8926
8926
  :item_process_status: ! '##'
8927
8927
  :text: Recorded music
8928
8928
  :loan: N
@@ -9584,9 +9584,9 @@ NIFAC:
9584
9584
  :reloaning_limit: '00'
9585
9585
  :booking_permission: N
9586
9586
  :booking_hours: A
9587
- '08':
9587
+ 08:
9588
9588
  :sub_library: NIFAC
9589
- :item_status: '08'
9589
+ :item_status: 08
9590
9590
  :item_process_status: ! '##'
9591
9591
  :text: Reference
9592
9592
  :loan: N
@@ -9601,9 +9601,9 @@ NIFAC:
9601
9601
  :reloaning_limit: '00'
9602
9602
  :booking_permission: N
9603
9603
  :booking_hours: A
9604
- '09':
9604
+ 09:
9605
9605
  :sub_library: NIFAC
9606
- :item_status: '09'
9606
+ :item_status: 09
9607
9607
  :item_process_status: ! '##'
9608
9608
  :text: Recorded music
9609
9609
  :loan: N
@@ -10265,9 +10265,9 @@ NISAW:
10265
10265
  :reloaning_limit: '00'
10266
10266
  :booking_permission: N
10267
10267
  :booking_hours: A
10268
- '08':
10268
+ 08:
10269
10269
  :sub_library: NISAW
10270
- :item_status: '08'
10270
+ :item_status: 08
10271
10271
  :item_process_status: ! '##'
10272
10272
  :text: Reference
10273
10273
  :loan: Y
@@ -10282,9 +10282,9 @@ NISAW:
10282
10282
  :reloaning_limit: '00'
10283
10283
  :booking_permission: N
10284
10284
  :booking_hours: A
10285
- '09':
10285
+ 09:
10286
10286
  :sub_library: NISAW
10287
- :item_status: '09'
10287
+ :item_status: 09
10288
10288
  :item_process_status: ! '##'
10289
10289
  :text: Recorded music
10290
10290
  :loan: Y
@@ -10946,9 +10946,9 @@ NKEV:
10946
10946
  :reloaning_limit: '00'
10947
10947
  :booking_permission: N
10948
10948
  :booking_hours: A
10949
- '08':
10949
+ 08:
10950
10950
  :sub_library: NKEV
10951
- :item_status: '08'
10951
+ :item_status: 08
10952
10952
  :item_process_status: ! '##'
10953
10953
  :text: Reference
10954
10954
  :loan: Y
@@ -10963,9 +10963,9 @@ NKEV:
10963
10963
  :reloaning_limit: '00'
10964
10964
  :booking_permission: N
10965
10965
  :booking_hours: A
10966
- '09':
10966
+ 09:
10967
10967
  :sub_library: NKEV
10968
- :item_status: '09'
10968
+ :item_status: 09
10969
10969
  :item_process_status: ! '##'
10970
10970
  :text: Recorded music
10971
10971
  :loan: Y
@@ -11627,9 +11627,9 @@ NLAPI:
11627
11627
  :reloaning_limit: '00'
11628
11628
  :booking_permission: N
11629
11629
  :booking_hours: A
11630
- '08':
11630
+ 08:
11631
11631
  :sub_library: NLAPI
11632
- :item_status: '08'
11632
+ :item_status: 08
11633
11633
  :item_process_status: ! '##'
11634
11634
  :text: Reference
11635
11635
  :loan: Y
@@ -11644,9 +11644,9 @@ NLAPI:
11644
11644
  :reloaning_limit: '00'
11645
11645
  :booking_permission: N
11646
11646
  :booking_hours: A
11647
- '09':
11647
+ 09:
11648
11648
  :sub_library: NLAPI
11649
- :item_status: '09'
11649
+ :item_status: 09
11650
11650
  :item_process_status: ! '##'
11651
11651
  :text: Recorded music
11652
11652
  :loan: Y
@@ -12308,9 +12308,9 @@ NOFFS:
12308
12308
  :reloaning_limit: '00'
12309
12309
  :booking_permission: N
12310
12310
  :booking_hours: A
12311
- '08':
12311
+ 08:
12312
12312
  :sub_library: NOFFS
12313
- :item_status: '08'
12313
+ :item_status: 08
12314
12314
  :item_process_status: ! '##'
12315
12315
  :text: Reference
12316
12316
  :loan: Y
@@ -12325,9 +12325,9 @@ NOFFS:
12325
12325
  :reloaning_limit: '00'
12326
12326
  :booking_permission: N
12327
12327
  :booking_hours: A
12328
- '09':
12328
+ 09:
12329
12329
  :sub_library: NOFFS
12330
- :item_status: '09'
12330
+ :item_status: 09
12331
12331
  :item_process_status: ! '##'
12332
12332
  :text: Recorded music
12333
12333
  :loan: Y
@@ -13007,9 +13007,9 @@ NREI:
13007
13007
  :reloaning_limit: '00'
13008
13008
  :booking_permission: N
13009
13009
  :booking_hours: A
13010
- '08':
13010
+ 08:
13011
13011
  :sub_library: NREI
13012
- :item_status: '08'
13012
+ :item_status: 08
13013
13013
  :item_process_status: ! '##'
13014
13014
  :text: Reference
13015
13015
  :loan: Y
@@ -13024,9 +13024,9 @@ NREI:
13024
13024
  :reloaning_limit: '00'
13025
13025
  :booking_permission: N
13026
13026
  :booking_hours: A
13027
- '09':
13027
+ 09:
13028
13028
  :sub_library: NREI
13029
- :item_status: '09'
13029
+ :item_status: 09
13030
13030
  :item_process_status: ! '##'
13031
13031
  :text: Recorded music
13032
13032
  :loan: N
@@ -13688,9 +13688,9 @@ NYHS:
13688
13688
  :reloaning_limit: '00'
13689
13689
  :booking_permission: N
13690
13690
  :booking_hours: A
13691
- '08':
13691
+ 08:
13692
13692
  :sub_library: NYHS
13693
- :item_status: '08'
13693
+ :item_status: 08
13694
13694
  :item_process_status: ! '##'
13695
13695
  :text: Reference
13696
13696
  :loan: Y
@@ -13705,9 +13705,9 @@ NYHS:
13705
13705
  :reloaning_limit: '00'
13706
13706
  :booking_permission: N
13707
13707
  :booking_hours: A
13708
- '09':
13708
+ 09:
13709
13709
  :sub_library: NYHS
13710
- :item_status: '09'
13710
+ :item_status: 09
13711
13711
  :item_process_status: ! '##'
13712
13712
  :text: Recorded music
13713
13713
  :loan: Y
@@ -14369,9 +14369,9 @@ NYSID:
14369
14369
  :reloaning_limit: '00'
14370
14370
  :booking_permission: N
14371
14371
  :booking_hours: A
14372
- '08':
14372
+ 08:
14373
14373
  :sub_library: NYSID
14374
- :item_status: '08'
14374
+ :item_status: 08
14375
14375
  :item_process_status: ! '##'
14376
14376
  :text: Reference
14377
14377
  :loan: N
@@ -14386,9 +14386,9 @@ NYSID:
14386
14386
  :reloaning_limit: '00'
14387
14387
  :booking_permission: N
14388
14388
  :booking_hours: A
14389
- '09':
14389
+ 09:
14390
14390
  :sub_library: NYSID
14391
- :item_status: '09'
14391
+ :item_status: 09
14392
14392
  :item_process_status: ! '##'
14393
14393
  :text: Recorded music
14394
14394
  :loan: Y
@@ -15101,9 +15101,9 @@ TNSFO:
15101
15101
  :reloaning_limit: '00'
15102
15102
  :booking_permission: N
15103
15103
  :booking_hours: A
15104
- '08':
15104
+ 08:
15105
15105
  :sub_library: TNSFO
15106
- :item_status: '08'
15106
+ :item_status: 08
15107
15107
  :item_process_status: ! '##'
15108
15108
  :text: Reference
15109
15109
  :loan: Y
@@ -15118,9 +15118,9 @@ TNSFO:
15118
15118
  :reloaning_limit: '00'
15119
15119
  :booking_permission: N
15120
15120
  :booking_hours: A
15121
- '09':
15121
+ 09:
15122
15122
  :sub_library: TNSFO
15123
- :item_status: '09'
15123
+ :item_status: 09
15124
15124
  :item_process_status: ! '##'
15125
15125
  :text: Recorded music
15126
15126
  :loan: Y
@@ -15374,9 +15374,9 @@ TNSGI:
15374
15374
  :reloaning_limit: '00'
15375
15375
  :booking_permission: N
15376
15376
  :booking_hours: A
15377
- '08':
15377
+ 08:
15378
15378
  :sub_library: TNSGI
15379
- :item_status: '08'
15379
+ :item_status: 08
15380
15380
  :item_process_status: ! '##'
15381
15381
  :text: Reference
15382
15382
  :loan: Y
@@ -15391,9 +15391,9 @@ TNSGI:
15391
15391
  :reloaning_limit: '00'
15392
15392
  :booking_permission: N
15393
15393
  :booking_hours: A
15394
- '09':
15394
+ 09:
15395
15395
  :sub_library: TNSGI
15396
- :item_status: '09'
15396
+ :item_status: 09
15397
15397
  :item_process_status: ! '##'
15398
15398
  :text: Recorded music
15399
15399
  :loan: Y
@@ -15647,9 +15647,9 @@ TNSSC:
15647
15647
  :reloaning_limit: '00'
15648
15648
  :booking_permission: N
15649
15649
  :booking_hours: A
15650
- '08':
15650
+ 08:
15651
15651
  :sub_library: TNSSC
15652
- :item_status: '08'
15652
+ :item_status: 08
15653
15653
  :item_process_status: ! '##'
15654
15654
  :text: Reference
15655
15655
  :loan: Y
@@ -15664,9 +15664,9 @@ TNSSC:
15664
15664
  :reloaning_limit: '00'
15665
15665
  :booking_permission: N
15666
15666
  :booking_hours: A
15667
- '09':
15667
+ 09:
15668
15668
  :sub_library: TNSSC
15669
- :item_status: '09'
15669
+ :item_status: 09
15670
15670
  :item_process_status: ! '##'
15671
15671
  :text: Recorded music
15672
15672
  :loan: Y
@@ -15920,9 +15920,9 @@ TWEB:
15920
15920
  :reloaning_limit: '00'
15921
15921
  :booking_permission: N
15922
15922
  :booking_hours: A
15923
- '08':
15923
+ 08:
15924
15924
  :sub_library: TWEB
15925
- :item_status: '08'
15925
+ :item_status: 08
15926
15926
  :item_process_status: ! '##'
15927
15927
  :text: Reference
15928
15928
  :loan: Y
@@ -15937,9 +15937,9 @@ TWEB:
15937
15937
  :reloaning_limit: '00'
15938
15938
  :booking_permission: N
15939
15939
  :booking_hours: A
15940
- '09':
15940
+ 09:
15941
15941
  :sub_library: TWEB
15942
- :item_status: '09'
15942
+ :item_status: 09
15943
15943
  :item_process_status: ! '##'
15944
15944
  :text: Recorded music
15945
15945
  :loan: Y
@@ -16669,9 +16669,9 @@ WEB:
16669
16669
  :reloaning_limit: '00'
16670
16670
  :booking_permission: N
16671
16671
  :booking_hours: A
16672
- '08':
16672
+ 08:
16673
16673
  :sub_library: WEB
16674
- :item_status: '08'
16674
+ :item_status: 08
16675
16675
  :item_process_status: ! '##'
16676
16676
  :text: Reference
16677
16677
  :loan: Y
@@ -16686,9 +16686,9 @@ WEB:
16686
16686
  :reloaning_limit: '00'
16687
16687
  :booking_permission: N
16688
16688
  :booking_hours: A
16689
- '09':
16689
+ 09:
16690
16690
  :sub_library: WEB
16691
- :item_status: '09'
16691
+ :item_status: 09
16692
16692
  :item_process_status: ! '##'
16693
16693
  :text: Recorded music
16694
16694
  :loan: Y
@@ -17317,4 +17317,3 @@ TNSOS:
17317
17317
  :reloaning_limit: '00'
17318
17318
  :booking_permission: N
17319
17319
  :booking_hours: A
17320
- ...