traject_horizon 1.2.0 → 1.2.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 +7 -0
- data/README.md +19 -0
- data/lib/traject/horizon_reader.rb +12 -0
- data/lib/traject_horizon/version.rb +1 -1
- metadata +47 -61
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 29c758569e67537ff229e7164ecf684050602286
|
4
|
+
data.tar.gz: e1cebb44ff2ac1cb794b7e591eef29c3e8b4741b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ea9b3cf1c58394594ed9093e56d065925eb86981acc8b2f70a66316f4906a470aae828fb2fb2ed7c56346b84dd34bf2af9659195100c9432bac0b8cf231d7199
|
7
|
+
data.tar.gz: 6ab6d5e79a425dc7f3bdfe643d19fac16c29c401fe9dfa85a8d4027d34465f5b2f0f3450bf27a63fc16d4ee8dd7fd279d78d3caf776182f0aef03507c019d783
|
data/README.md
CHANGED
@@ -149,6 +149,25 @@ Currently, item/copy information may not be treated entirely consistent here,
|
|
149
149
|
there may be edge-case encoding bugs related to non-ascii item/copy notes etc,
|
150
150
|
and it may not be possible to output them in Marc8. Sorry.
|
151
151
|
|
152
|
+
## Note on Horizon deleted records
|
153
|
+
|
154
|
+
When records are deleted in horizon, they remain in the Horizon database for a while until purged.
|
155
|
+
While deleted records remain, they have leader byte 5 set to 'd', which indicates deleted in Marc21.
|
156
|
+
|
157
|
+
You may want to skip these records when indexing. There's no feature
|
158
|
+
in `traject_horizon` to do that at present, but you can use the standard
|
159
|
+
traject `skip!` feature. At the beginning of your traject configuration:
|
160
|
+
|
161
|
+
~~~ruby
|
162
|
+
# Skip records with leader byte 5 'd', those are records marked
|
163
|
+
# for deletion but not yet purged from horizon.
|
164
|
+
each_record do |record, context|
|
165
|
+
if record.leader[5] == 'd'
|
166
|
+
context.skip!("Leader byte 5 is 'd', record marked for deletion in Horizon")
|
167
|
+
end
|
168
|
+
end
|
169
|
+
~~~
|
170
|
+
|
152
171
|
## Challenges
|
153
172
|
|
154
173
|
I had to reverse engineer the Horizon database to figure out how to turn it into
|
@@ -29,6 +29,12 @@ module Traject
|
|
29
29
|
# [horizon.database] (default 'horizon')
|
30
30
|
# [horizon.jtds_type] default 'sybase', or 'sqlserver'
|
31
31
|
#
|
32
|
+
# [horizon.timeout] value in SECONDS given to jtds driver for socketTimeout and loginTimeout.
|
33
|
+
# if this is not set, if Horizon db or server goes down in mid-export,
|
34
|
+
# your program may hang forever. However, the trade-off is when this is set,
|
35
|
+
# a slow query may trigger timeout. As a compromise, we've set DEFAULT
|
36
|
+
# to 1200 seconds (20 minutes).
|
37
|
+
#
|
32
38
|
#
|
33
39
|
# == What to export
|
34
40
|
#
|
@@ -688,6 +694,10 @@ module Traject
|
|
688
694
|
# Not sure if useCursors makes a difference, but just in case.
|
689
695
|
url += ";useCursors=true"
|
690
696
|
|
697
|
+
if timeout = settings['horizon.timeout']
|
698
|
+
url += ";socketTimeout=#{timeout};loginTimeout=#{timeout}"
|
699
|
+
end
|
700
|
+
|
691
701
|
if include_password
|
692
702
|
password = settings['horizon.password'] or raise ArgumentError.new("Need horizon.password setting")
|
693
703
|
url += ";password=#{password}"
|
@@ -714,6 +724,8 @@ module Traject
|
|
714
724
|
|
715
725
|
def self.default_settings
|
716
726
|
{
|
727
|
+
"horizon.timeout" => 1200, # 1200 seconds == 20 minutes
|
728
|
+
|
717
729
|
"horizon.batch_size" => 400,
|
718
730
|
|
719
731
|
"horizon.public_only" => true,
|
metadata
CHANGED
@@ -1,113 +1,100 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traject_horizon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonathan Rochkind
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: traject
|
16
|
-
|
17
|
-
none: false
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
26
21
|
requirements:
|
27
|
-
- -
|
22
|
+
- - '>='
|
28
23
|
- !ruby/object:Gem::Version
|
29
24
|
version: '0'
|
25
|
+
prerelease: false
|
26
|
+
type: :runtime
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: marc-marc4j
|
32
|
-
|
33
|
-
none: false
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
|
-
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
42
35
|
requirements:
|
43
|
-
- -
|
36
|
+
- - '>='
|
44
37
|
- !ruby/object:Gem::Version
|
45
38
|
version: '0'
|
39
|
+
prerelease: false
|
40
|
+
type: :runtime
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: ensure_valid_encoding
|
48
|
-
|
49
|
-
none: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: 0.5.3
|
54
|
-
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
58
49
|
requirements:
|
59
|
-
- -
|
50
|
+
- - '>='
|
60
51
|
- !ruby/object:Gem::Version
|
61
52
|
version: 0.5.3
|
53
|
+
prerelease: false
|
54
|
+
type: :runtime
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: bundler
|
64
|
-
|
65
|
-
none: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '1.3'
|
70
|
-
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
74
63
|
requirements:
|
75
64
|
- - ~>
|
76
65
|
- !ruby/object:Gem::Version
|
77
66
|
version: '1.3'
|
67
|
+
prerelease: false
|
68
|
+
type: :development
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rake
|
80
|
-
|
81
|
-
none: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
|
-
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
90
77
|
requirements:
|
91
|
-
- -
|
78
|
+
- - '>='
|
92
79
|
- !ruby/object:Gem::Version
|
93
80
|
version: '0'
|
81
|
+
prerelease: false
|
82
|
+
type: :development
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: minitest
|
96
|
-
|
97
|
-
none: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
|
-
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
106
91
|
requirements:
|
107
|
-
- -
|
92
|
+
- - '>='
|
108
93
|
- !ruby/object:Gem::Version
|
109
94
|
version: '0'
|
110
|
-
|
95
|
+
prerelease: false
|
96
|
+
type: :development
|
97
|
+
description:
|
111
98
|
email:
|
112
99
|
- jonathan@dnil.net
|
113
100
|
executables: []
|
@@ -132,30 +119,29 @@ files:
|
|
132
119
|
homepage: http://github.com/jrochkind/traject_horizon
|
133
120
|
licenses:
|
134
121
|
- MIT
|
135
|
-
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
136
124
|
rdoc_options: []
|
137
125
|
require_paths:
|
138
126
|
- lib
|
139
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
128
|
requirements:
|
142
|
-
- -
|
129
|
+
- - '>='
|
143
130
|
- !ruby/object:Gem::Version
|
144
131
|
version: '0'
|
145
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
133
|
requirements:
|
148
|
-
- -
|
134
|
+
- - '>='
|
149
135
|
- !ruby/object:Gem::Version
|
150
136
|
version: '0'
|
151
137
|
requirements: []
|
152
|
-
rubyforge_project:
|
153
|
-
rubygems_version: 1.
|
154
|
-
signing_key:
|
155
|
-
specification_version:
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.1.11
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
156
142
|
summary: Horizon ILS MARC Exporter, a plugin for the traject tool
|
157
143
|
test_files:
|
158
144
|
- test/horizon_bib_auth_merge_test.rb
|
159
145
|
- test/horizon_convert_text_test.rb
|
160
146
|
- test/test_helper.rb
|
161
|
-
has_rdoc:
|
147
|
+
has_rdoc:
|