traject_horizon 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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,
@@ -1,3 +1,3 @@
1
1
  module TrajectHorizon
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
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.0
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-06 00:00:00.000000000 Z
11
+ date: 2014-01-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: traject
16
- requirement: !ruby/object:Gem::Requirement
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
- type: :runtime
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :runtime
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :runtime
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :development
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :development
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :development
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
- description:
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
- post_install_message:
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.8.23
154
- signing_key:
155
- specification_version: 3
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: