marc2solr 0.1.4 → 0.1.6
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.
- data/CHANGES +6 -0
- data/Rakefile +4 -5
- data/VERSION +1 -1
- data/bin/marc2solr +41 -37
- data/lib/marc2solr/marc2solr_custom.rb +2 -2
- data/lib/marc2solr.rb +16 -10
- metadata +184 -161
data/CHANGES
CHANGED
data/Rakefile
CHANGED
@@ -11,19 +11,18 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/billdueber/marc2solr"
|
12
12
|
gem.authors = ["BillDueber"]
|
13
13
|
|
14
|
-
gem.add_dependency 'marc4j4r', '>= 1.
|
14
|
+
gem.add_dependency 'marc4j4r', '>= 1.3.0'
|
15
15
|
gem.add_dependency 'jruby_streaming_update_solr_server', '>=0.5.2'
|
16
|
-
gem.add_dependency 'marcspec', '>= 1.6.
|
16
|
+
gem.add_dependency 'marcspec', '>= 1.6.5'
|
17
17
|
gem.add_dependency 'threach', '>= 0.2.0'
|
18
|
-
gem.add_dependency '
|
18
|
+
gem.add_dependency 'jlogger', '>=0.0.4'
|
19
19
|
gem.add_dependency 'library_stdnums', '>=0.2.0'
|
20
20
|
gem.add_dependency 'trollop'
|
21
|
+
|
21
22
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
22
23
|
gem.add_development_dependency "yard", ">= 0"
|
23
24
|
|
24
25
|
gem.bindir = 'bin'
|
25
|
-
gem.executables << 'solrmarc_to_marc2solr'
|
26
|
-
gem.executables << 'marc2solr'
|
27
26
|
|
28
27
|
end
|
29
28
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
data/bin/marc2solr
CHANGED
@@ -21,7 +21,7 @@ opts = MARC2Solr::Conf.new
|
|
21
21
|
###########################
|
22
22
|
|
23
23
|
|
24
|
-
|
24
|
+
LOG = opts.masterLogger
|
25
25
|
|
26
26
|
# Perform the command
|
27
27
|
|
@@ -32,13 +32,13 @@ case opts.command
|
|
32
32
|
#################
|
33
33
|
|
34
34
|
when "commit"
|
35
|
-
|
35
|
+
LOG.info "Commit to #{opts.sussURL}"
|
36
36
|
if opts[:dryrun]
|
37
|
-
|
38
|
-
|
37
|
+
LOG.debug "Using javabin" if opts[:javabin]
|
38
|
+
LOG.info "DRY RUN. Stopping now."
|
39
39
|
else
|
40
40
|
opts.suss.commit
|
41
|
-
|
41
|
+
LOG.info "Commit done"
|
42
42
|
end
|
43
43
|
|
44
44
|
|
@@ -49,7 +49,7 @@ when "commit"
|
|
49
49
|
when "delete"
|
50
50
|
delfiles = opts.rest
|
51
51
|
unless delfiles.size > 0
|
52
|
-
|
52
|
+
LOG.error "command 'delete' needs at least one filename"
|
53
53
|
puts "\n\nERROR: command 'delete' needs at least one filename"
|
54
54
|
opts.print_command_help('delete')
|
55
55
|
end
|
@@ -60,7 +60,7 @@ when "delete"
|
|
60
60
|
# Make sure they can all be opened
|
61
61
|
delfiles.each do |filename|
|
62
62
|
unless File.readable? filename
|
63
|
-
|
63
|
+
LOG.error "Can't open configuration file `#{filename}`"
|
64
64
|
raise ArgumentError, "Can't open configuration file `#{filename}`"
|
65
65
|
end
|
66
66
|
end
|
@@ -71,24 +71,24 @@ when "delete"
|
|
71
71
|
delfiles.each do |filename|
|
72
72
|
count = 0
|
73
73
|
f = File.open(filename)
|
74
|
-
|
75
|
-
|
74
|
+
LOG.info "Deleting IDs listed in #{filename}"
|
75
|
+
LOG.info "DRY RUN ONLY" if opts[:dryrun]
|
76
76
|
f.each_line do |id|
|
77
77
|
id.chomp!
|
78
78
|
suss.deleteById(id) unless opts[:dryrun]
|
79
|
-
|
79
|
+
LOG.debug "Deleted id\t{}", id
|
80
80
|
count += 1
|
81
81
|
total += 1
|
82
82
|
end
|
83
83
|
f.close
|
84
|
-
|
84
|
+
LOG.info "Tried to delete #{count} ids from file '#{filename}'"
|
85
85
|
end
|
86
|
-
|
86
|
+
LOG.info "Tried to delete #{total} ids from all #{delfiles.size} files" if delfiles.size > 1
|
87
87
|
|
88
88
|
unless opts[:dryrun] or opts[:skipcommit]
|
89
|
-
|
89
|
+
LOG.info "Sending final commit"
|
90
90
|
suss.commit
|
91
|
-
|
91
|
+
LOG.info "Final commit finished"
|
92
92
|
end
|
93
93
|
|
94
94
|
|
@@ -100,7 +100,7 @@ when "index"
|
|
100
100
|
marcfiles = opts.rest
|
101
101
|
|
102
102
|
unless marcfiles.size > 0
|
103
|
-
|
103
|
+
LOG.error "command 'delete' needs at least one marc file to index"
|
104
104
|
puts "\n\nERROR: command 'index' needs at least one filename"
|
105
105
|
opts.print_command_help('index')
|
106
106
|
end
|
@@ -108,48 +108,48 @@ when "index"
|
|
108
108
|
|
109
109
|
# Make sure everything can be opened
|
110
110
|
unless File.readable? opts[:indexfile]
|
111
|
-
|
111
|
+
LOG.error "Index configuration file '#{opts[:indexfile]}' (set with --indexfile) cannot be found/read"
|
112
112
|
raise ArgumentError, "Index configuration file '#{opts[:indexfile]}' (set with --indexfile) cannot be found/read"
|
113
113
|
else
|
114
|
-
|
114
|
+
LOG.debug "Found index file #{opts[:indexfile]}"
|
115
115
|
end
|
116
116
|
|
117
117
|
unless File.readable? opts[:tmapdir]
|
118
|
-
|
118
|
+
LOG.error "Translation Map directory '#{opts[:tmapdir]}' (set with --tmapdir) cannot be found/read"
|
119
119
|
raise ArgumentError, "Translation Map directory '#{opts[:tmapdir]}' (set with --tmapdir) cannot be found/read"
|
120
120
|
else
|
121
|
-
|
121
|
+
LOG.debug "Found translation maps directory #{opts[:tmapdir]}"
|
122
122
|
end
|
123
123
|
|
124
124
|
marcfiles.each do |filename|
|
125
125
|
if filename == "STDIN"
|
126
|
-
|
126
|
+
LOG.info "Using standard input as a marc file"
|
127
127
|
next
|
128
128
|
end
|
129
129
|
unless File.readable? filename
|
130
|
-
|
130
|
+
LOG.error "Can't open MARC file `#{filename}`"
|
131
131
|
raise ArgumentError, "Can't open MARC file `#{filename}`"
|
132
132
|
else
|
133
|
-
|
133
|
+
LOG.debug "Adding marc file #{filename} to queue"
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
137
|
|
138
138
|
# Load all the files in the customdir(s)
|
139
|
-
|
139
|
+
LOG.debug "Loading custom routines"
|
140
140
|
if opts[:customdir].size > 0
|
141
141
|
opts[:customdir].each do |dir|
|
142
142
|
unless File.exist? dir
|
143
|
-
|
143
|
+
LOG.warn "Skipping load directory '#{dir}': Not found"
|
144
144
|
opts[:customdir].delete dir
|
145
145
|
end
|
146
|
-
|
146
|
+
LOG.info "Loading files in #{dir}"
|
147
147
|
Dir.glob(["#{dir}/*.jar"]).each do |x|
|
148
|
-
|
148
|
+
LOG.debug "Loading #{x}"
|
149
149
|
require x
|
150
150
|
end
|
151
151
|
Dir.glob(["#{dir}/*.rb"]).each do |x|
|
152
|
-
|
152
|
+
LOG.debug "Loading #{x}"
|
153
153
|
require x
|
154
154
|
end
|
155
155
|
end
|
@@ -166,26 +166,28 @@ when "index"
|
|
166
166
|
|
167
167
|
# Set up if we're using threach or not
|
168
168
|
if opts[:threads] > 1
|
169
|
+
LOG.info "Using #{opts[:threads]} threads; activiating threach"
|
169
170
|
method = :threach
|
170
171
|
args = [opts[:threads], :each_with_index]
|
171
172
|
else
|
173
|
+
LOG.info "Using 1 thread"
|
172
174
|
method = :each_with_index
|
173
175
|
args = []
|
174
176
|
end
|
175
177
|
|
176
178
|
|
177
179
|
if opts[:dryrun]
|
178
|
-
|
180
|
+
LOG.info "Begin DRY RUN; nothing will be sent to Solr"
|
179
181
|
end
|
180
182
|
|
181
183
|
# Clear solr if so declared
|
182
184
|
if opts[:clearsolr]
|
183
185
|
if opts[:dryrun]
|
184
|
-
|
186
|
+
LOG.info "Would have cleared out solr (but for dryrun)"
|
185
187
|
else
|
186
188
|
suss.deleteByQuery('*:*')
|
187
189
|
suss.commit
|
188
|
-
|
190
|
+
LOG.info "Cleared out solr"
|
189
191
|
end
|
190
192
|
end
|
191
193
|
|
@@ -195,11 +197,13 @@ when "index"
|
|
195
197
|
|
196
198
|
start = Time.new.to_f
|
197
199
|
marcfiles.each do |filename|
|
198
|
-
|
200
|
+
LOG.info "Indexing file {}", filename
|
199
201
|
|
200
202
|
reader = opts.reader(filename)
|
201
203
|
reader.send(method, *args) do |r, i|
|
202
204
|
Thread.current[:index] = i
|
205
|
+
|
206
|
+
LOG.debug "Record {} with 001 {}", i, r['001'].value
|
203
207
|
|
204
208
|
doc = ss.doc_from_marc(r, opts[:benchmark])
|
205
209
|
|
@@ -215,7 +219,7 @@ when "index"
|
|
215
219
|
|
216
220
|
if Thread.current[:index] % opts[:logbatchsize] == 0
|
217
221
|
pace = Thread.current[:index] / (Time.new.to_f - start)
|
218
|
-
|
222
|
+
LOG.info "%d indexed (overall pace: %.0f rec/sec)" % [Thread.current[:index], pace]
|
219
223
|
end
|
220
224
|
end # reader
|
221
225
|
end # marcfiles
|
@@ -223,21 +227,21 @@ when "index"
|
|
223
227
|
# Commit
|
224
228
|
|
225
229
|
unless opts[:dryrun] or opts[:skipcommit]
|
226
|
-
|
230
|
+
LOG.info "Sending final commit"
|
227
231
|
suss.commit
|
228
|
-
|
232
|
+
LOG.info "Final commit finished"
|
229
233
|
end
|
230
234
|
|
231
235
|
# Be done
|
232
|
-
|
236
|
+
LOG.info "Done indexing"
|
233
237
|
pace = i / (Time.new.to_f - start)
|
234
|
-
|
238
|
+
LOG.info "%d indexed (overall pace: %.0f rec/sec)" % [i, pace]
|
235
239
|
|
236
240
|
|
237
241
|
# Log the benchmarking information if requested
|
238
242
|
if opts[:benchmark]
|
239
243
|
ss.benchmarks.keys.sort{|a,b| ss.benchmarks[b].real <=> ss.benchmarks[a].real}.each do |k|
|
240
|
-
|
244
|
+
LOG.info("%-20s %s" % [k + ':', ss.benchmarks[k].real.to_s])
|
241
245
|
end
|
242
246
|
end
|
243
247
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'jlogger'
|
3
3
|
require 'library_stdnums'
|
4
4
|
|
5
5
|
module MARC2Solr
|
6
6
|
module Custom
|
7
|
-
LOG =
|
7
|
+
LOG = JLogger::RootLogger.new
|
8
8
|
|
9
9
|
# Custom routines are defined as module methods that take two arguments: a MARC4J4R record,
|
10
10
|
# and an (optional) array of other arguments passed in.
|
data/lib/marc2solr.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'jlogger'
|
4
4
|
require 'trollop'
|
5
5
|
require 'ftools'
|
6
6
|
require 'jruby_streaming_update_solr_server'
|
@@ -9,7 +9,7 @@ require 'marc4j4r'
|
|
9
9
|
module MARC2Solr
|
10
10
|
|
11
11
|
class Conf
|
12
|
-
include
|
12
|
+
include JLogger::Simple
|
13
13
|
|
14
14
|
SUB_COMMANDS = %w(index delete commit help)
|
15
15
|
|
@@ -149,7 +149,7 @@ module MARC2Solr
|
|
149
149
|
# Load the config files
|
150
150
|
if @cmdline[:config]
|
151
151
|
@cmdline[:config].each do |f|
|
152
|
-
log.info "Reading config-file '
|
152
|
+
log.info "Reading config-file '{}'", f.path
|
153
153
|
self.instance_eval(f.read)
|
154
154
|
end
|
155
155
|
end
|
@@ -367,7 +367,12 @@ module MARC2Solr
|
|
367
367
|
|
368
368
|
def suss
|
369
369
|
url = self.sussURL
|
370
|
-
log.
|
370
|
+
log.info "Set suss url to {}", url
|
371
|
+
if @config[:sussthreads] > 1
|
372
|
+
log.info "Using {} threads for the suss", @config[:sussthreads]
|
373
|
+
else
|
374
|
+
log.info "Using a single thread for the suss"
|
375
|
+
end
|
371
376
|
|
372
377
|
suss = StreamingUpdateSolrServer.new(url,@config[:susssize],@config[:sussthreads])
|
373
378
|
if self[:javabin]
|
@@ -378,23 +383,24 @@ module MARC2Solr
|
|
378
383
|
end
|
379
384
|
|
380
385
|
def masterLogger
|
381
|
-
mlog =
|
386
|
+
mlog = JLogger::RootLogger.new
|
382
387
|
mlog.loglevel = @config[:loglevel].downcase.to_sym
|
383
388
|
|
384
389
|
firstfile = self.rest[0] || self.command
|
385
390
|
logfilename = File.basename(firstfile).gsub(/\..*$/, '') # remove the last extension
|
386
391
|
logfilename += '-' + Time.new.strftime('%Y%m%d-%H%M%S') + '.log'
|
387
392
|
|
388
|
-
Logback::Simple.loglevel = @config[:loglevel].downcase.to_sym
|
389
393
|
case @config[:logfile]
|
390
394
|
when "STDERR"
|
391
|
-
|
395
|
+
mlog.startConsole
|
392
396
|
when "DEFAULT"
|
393
|
-
|
397
|
+
mlog.startFile(logfilename)
|
394
398
|
when 'NONE', nil
|
399
|
+
mlog.stopConsole
|
400
|
+
mlog.loglevel = :off
|
395
401
|
# do nothing
|
396
402
|
else
|
397
|
-
|
403
|
+
mlog.startFile(@config[:logfile])
|
398
404
|
end
|
399
405
|
return mlog
|
400
406
|
end
|
@@ -417,7 +423,7 @@ module MARC2Solr
|
|
417
423
|
gzipped = true
|
418
424
|
end
|
419
425
|
|
420
|
-
log.info "Sniffed marc file type as
|
426
|
+
log.info "Sniffed marc file type as {}", ext
|
421
427
|
case ext
|
422
428
|
when /xml/, /marcxml/
|
423
429
|
type = :marcxml
|
metadata
CHANGED
@@ -1,199 +1,222 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marc2solr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
version: 0.1.
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
|
-
|
13
|
+
- BillDueber
|
13
14
|
autorequire:
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-15 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: marc4j4r
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 27
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 3
|
33
|
+
- 0
|
34
|
+
version: 1.3.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: jruby_streaming_update_solr_server
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 15
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 5
|
49
|
+
- 2
|
50
|
+
version: 0.5.2
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: marcspec
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 5
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 6
|
65
|
+
- 5
|
66
|
+
version: 1.6.5
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: threach
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 23
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 2
|
81
|
+
- 0
|
82
|
+
version: 0.2.0
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: jlogger
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 23
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
- 0
|
97
|
+
- 4
|
98
|
+
version: 0.0.4
|
99
|
+
type: :runtime
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: library_stdnums
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
hash: 23
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
- 2
|
113
|
+
- 0
|
114
|
+
version: 0.2.0
|
115
|
+
type: :runtime
|
116
|
+
version_requirements: *id006
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: trollop
|
119
|
+
prerelease: false
|
120
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
hash: 3
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
version: "0"
|
129
|
+
type: :runtime
|
130
|
+
version_requirements: *id007
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rspec
|
133
|
+
prerelease: false
|
134
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
hash: 13
|
140
|
+
segments:
|
141
|
+
- 1
|
142
|
+
- 2
|
143
|
+
- 9
|
144
|
+
version: 1.2.9
|
145
|
+
type: :development
|
146
|
+
version_requirements: *id008
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: yard
|
149
|
+
prerelease: false
|
150
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
156
|
+
segments:
|
157
|
+
- 0
|
158
|
+
version: "0"
|
159
|
+
type: :development
|
160
|
+
version_requirements: *id009
|
140
161
|
description: Given a file of MARC records, send them to Sorl for indexing based on a set of MARCSpecs
|
141
162
|
email: bill@dueber.com
|
142
163
|
executables:
|
143
|
-
|
144
|
-
|
145
|
-
- solrmarc_to_marc2solr
|
146
|
-
- marc2solr
|
164
|
+
- marc2solr
|
165
|
+
- solrmarc_to_marc2solr
|
147
166
|
extensions: []
|
148
167
|
|
149
168
|
extra_rdoc_files:
|
150
|
-
|
151
|
-
|
169
|
+
- LICENSE
|
170
|
+
- README.md
|
152
171
|
files:
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
172
|
+
- .document
|
173
|
+
- .gitignore
|
174
|
+
- CHANGES
|
175
|
+
- LICENSE
|
176
|
+
- README.md
|
177
|
+
- Rakefile
|
178
|
+
- VERSION
|
179
|
+
- bin/marc2solr
|
180
|
+
- bin/solrmarc_to_marc2solr
|
181
|
+
- lib/marc2solr.rb
|
182
|
+
- lib/marc2solr/marc2solr_custom.rb
|
183
|
+
- spec/marc2solr_spec.rb
|
184
|
+
- spec/spec.opts
|
185
|
+
- spec/spec_helper.rb
|
167
186
|
has_rdoc: true
|
168
187
|
homepage: http://github.com/billdueber/marc2solr
|
169
188
|
licenses: []
|
170
189
|
|
171
190
|
post_install_message:
|
172
191
|
rdoc_options:
|
173
|
-
|
192
|
+
- --charset=UTF-8
|
174
193
|
require_paths:
|
175
|
-
|
194
|
+
- lib
|
176
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
177
197
|
requirements:
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
hash: 3
|
201
|
+
segments:
|
202
|
+
- 0
|
203
|
+
version: "0"
|
183
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
|
+
none: false
|
184
206
|
requirements:
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
hash: 3
|
210
|
+
segments:
|
211
|
+
- 0
|
212
|
+
version: "0"
|
190
213
|
requirements: []
|
191
214
|
|
192
215
|
rubyforge_project:
|
193
|
-
rubygems_version: 1.3.
|
216
|
+
rubygems_version: 1.3.7
|
194
217
|
signing_key:
|
195
218
|
specification_version: 3
|
196
219
|
summary: "MARC2Solr: Get MARC into Solr via JRuby"
|
197
220
|
test_files:
|
198
|
-
|
199
|
-
|
221
|
+
- spec/marc2solr_spec.rb
|
222
|
+
- spec/spec_helper.rb
|