base_indexer 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/README.rdoc +33 -0
- data/Rakefile +11 -22
- data/lib/base_indexer/version.rb +1 -1
- data/lib/tasks/index.rake +299 -0
- metadata +46 -33
- data/MIT-LICENSE +0 -20
- data/lib/base_indexer/message.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTM2N2NiMmY0NWUxNmE5Mjk1Y2JlNjk2OGZkM2U2OGJiZjJhZjQ5Mg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YzU2NDhhMmJjNTEzOTY5NzE5OGY3Y2NiZWZjOTdmMGM3MjY4OGIxZg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZTgzNzQxZTJkMTBhMWU4ZDZlZTQzZjZiNWM4M2I5NDVjZjliMmFkNzk5ZTY0
|
10
|
+
OGQzN2U3ZTJlNTZkZjE1MjM3OGVjNmEyZDg2MWQ0MTNmOWQ1NjU5MjBjOWVh
|
11
|
+
MGEzZmMyMDc3YTk5ZjEyOThhYzEwYTIzZWI1MzM0YWIyYjJkM2E=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NDViNDc4MDQxZjlkMDA0NDY1NTYyMGU2NWZiZTkzMDViODM0NTlhNjVlNzU3
|
14
|
+
NDQzYWVkMDdjNGQyMWRlM2E0Nzk0NWIxZGE4NTg4NzQ3NjUxNjM4YTljNWFi
|
15
|
+
Yjc0ZWM4M2Q2ODE2ZWZjZTYyZDk5ZmUzZWIyMmI5ZjVkYmI2OTA=
|
data/README.rdoc
CHANGED
@@ -38,3 +38,36 @@ To extend mapper functionality.
|
|
38
38
|
2. Implement MyMapper.map to converts the input to solr doc hash.
|
39
39
|
3. Override MyIndexerClassName.map to call your new class instead of the default one.
|
40
40
|
|
41
|
+
== Rake Tasks For Indexing Druids
|
42
|
+
|
43
|
+
All rake tasks that perform batch indexing will generate log files in the "log" folder within the app itself. You can tail the log file to watch the progress. The
|
44
|
+
log file is also useful since you can pass it to the "reindexer" rake task to retry just the errored out druids. The name of the log file will depend on which
|
45
|
+
rake task you are running, and will be timestamped to be unique.
|
46
|
+
|
47
|
+
=== Index a single druid:
|
48
|
+
|
49
|
+
rake index RAILS_ENV=production target=revs_prod druid=oo000oo0001
|
50
|
+
|
51
|
+
=== Index a list of druids from a pre-assembly run, a remeditaion run, or a simple CSV:
|
52
|
+
|
53
|
+
rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1.yaml log_type=preassembly # preassembly run
|
54
|
+
nohup rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1.yaml log_type=preassembly & # for a long running process, which will be most runs that have more than a few dozen druids, nohup it
|
55
|
+
|
56
|
+
rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1_remediate.yaml log_type=remediate # remediation run
|
57
|
+
|
58
|
+
rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander.csv log_type=csv # a simple csv file -- it must have a header line, with the header of "druid" definining the items you wish to index
|
59
|
+
|
60
|
+
=== Index an entire collection, including the collection itself, along with all of its members (be sure to check the dor-fetcher-url parameter in the Rails environment you are running under to be sure it is connecting where you expect):
|
61
|
+
|
62
|
+
rake collection_indexer RAILS_ENV=production target=revs_prod collection_druid=oo000oo0001
|
63
|
+
nohup rake collection_indexer RAILS_ENV=production target=revs_prod collection_druid=oo000oo0001 & # for a long running process, e.g. a collection with more than a few dozen druids, nohup it
|
64
|
+
|
65
|
+
=== Re-Index Just Errored Out Items
|
66
|
+
|
67
|
+
If you had errors when indexing from a preassembly/remediation log or from indexing an entire collection, you can re-run the errored out druids only with the log file. All log files are kept in the log folder in the revs-indexer-service app.
|
68
|
+
|
69
|
+
rake reindexer RAILS_ENV=production target=revs_prod file=log/logfile.log
|
70
|
+
|
71
|
+
nohup rake reindexer RAILS_ENV=production target=revs_prod file=log/logfile.log & # probably no need to nohup unless there were alot of errors
|
72
|
+
|
73
|
+
|
data/Rakefile
CHANGED
@@ -8,36 +8,25 @@ require 'rspec/core'
|
|
8
8
|
require 'rspec/core/rake_task'
|
9
9
|
require 'yard'
|
10
10
|
require 'yard/rake/yardoc_task'
|
11
|
-
require 'engine_cart/rake_task'
|
12
11
|
|
13
12
|
Bundler::GemHelper.install_tasks
|
14
13
|
|
15
14
|
|
16
|
-
# Travis ci task
|
17
|
-
task :default => :ci
|
18
|
-
task :ci => ['engine_cart:generate'] do
|
19
|
-
# run the tests
|
20
|
-
RAILS_ENV = 'test'
|
21
|
-
Rake::Task['spec'].invoke
|
22
|
-
RSpec::Core::RakeTask.new(:rspec) do |spec|
|
23
|
-
spec.rspec_opts = ["-c", "-f progress", "--tty", "-r ./spec/spec_helper.rb"]
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
15
|
|
16
|
+
APP_RAKEFILE = File.expand_path("../spec/internal/Rakefile", __FILE__)
|
17
|
+
load 'rails/tasks/engine.rake'
|
18
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
28
19
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
#desc "run continuous integration suite (tests, coverage, docs)"
|
34
|
-
#task :ci => [:rspec, :doc]
|
20
|
+
# Travis ci task
|
21
|
+
task :default => :ci
|
22
|
+
desc "run continuous integration suite (tests, coverage, docs)"
|
23
|
+
task :ci => [:rspec, :doc]
|
35
24
|
|
36
25
|
# Run rspec
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
26
|
+
task :spec => :rspec
|
27
|
+
RSpec::Core::RakeTask.new(:rspec) do |spec|
|
28
|
+
spec.rspec_opts = ["-c", "-f progress", "--tty", "-r ./spec/spec_helper.rb"]
|
29
|
+
end
|
41
30
|
|
42
31
|
# Use yard to build docs
|
43
32
|
begin
|
data/lib/base_indexer/version.rb
CHANGED
@@ -0,0 +1,299 @@
|
|
1
|
+
require 'retries'
|
2
|
+
|
3
|
+
def log(logger,message,log_type=:info)
|
4
|
+
case log_type
|
5
|
+
when :error
|
6
|
+
logger.error(message)
|
7
|
+
else
|
8
|
+
logger.info(message)
|
9
|
+
end
|
10
|
+
puts message
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'Index a specific list of druids from a pre-assembly log YAML file, a remediate log file, or a simple CSV. Specify target to index into and log file to index from.'
|
14
|
+
#Run me: rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1.yaml log_type=preassembly
|
15
|
+
#Run me: rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1_remediation.yaml log_type=remediate
|
16
|
+
#Run me: rake log_indexer RAILS_ENV=production target=revs_prod log_file=/tmp/mailander_1.csv log_type=csv # csv must contain a heading called "druid" with the druid to index
|
17
|
+
|
18
|
+
# Examples:
|
19
|
+
task :log_indexer => :environment do |t, args|
|
20
|
+
|
21
|
+
target = ENV['target'] # must pass in the target so specify solr core to index into
|
22
|
+
log_file_path = ENV['log_file'] # must specify pre-assembly log file to index from
|
23
|
+
log_type = ENV['log_type'] || 'preassembly' # log type (either preassembly, csv, or remediate), defaults to preassembly
|
24
|
+
|
25
|
+
raise 'You must specify a target and log file.' if target.blank? || log_file_path.blank?
|
26
|
+
raise 'Log type must be preassembly, remediate or csv.' unless ['preassembly','remediate','csv'].include? log_type
|
27
|
+
raise 'Log file not found.' unless File.readable? log_file_path
|
28
|
+
|
29
|
+
target_config=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]
|
30
|
+
|
31
|
+
raise 'Target not found.' if target_config.nil?
|
32
|
+
|
33
|
+
if log_type.blank? || log_type == 'preassembly'
|
34
|
+
log_completed=:pre_assem_finished
|
35
|
+
elsif log_type == 'remediate'
|
36
|
+
log_completed=:remediate_completed
|
37
|
+
end
|
38
|
+
|
39
|
+
output_log_file_name="#{Rails.root}/log/#{File.basename(log_file_path,File.extname(log_file_path))}_indexer_#{Time.now.strftime('%Y%m%d-%H%M%S')}.log"
|
40
|
+
my_logger=Logger.new(output_log_file_name) # set up a new log file
|
41
|
+
|
42
|
+
start_time=Time.now
|
43
|
+
|
44
|
+
errors=0
|
45
|
+
indexed=0
|
46
|
+
|
47
|
+
druids=[]
|
48
|
+
|
49
|
+
if ['preassembly','remediate'].include? log_type
|
50
|
+
YAML.load_stream(IO.read(log_file_path)) { |obj| druids << obj[:pid] if obj[log_completed] == true}
|
51
|
+
else
|
52
|
+
csv = CSV.parse(IO.read(log_file_path), :headers => true)
|
53
|
+
druids=csv.map { |row| row.to_hash.with_indifferent_access['druid'] }.delete_if {|druid| druid.nil?}
|
54
|
+
end
|
55
|
+
|
56
|
+
solr_server=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]['url']
|
57
|
+
|
58
|
+
log my_logger,"** Indexing #{druids.size} druids from #{log_file_path} into solr server #{solr_server} (target=#{target}). Log file is of type #{log_type}."
|
59
|
+
log my_logger,"Indexing started at #{start_time}"
|
60
|
+
|
61
|
+
indexer = BaseIndexer::MainIndexerEngine.new
|
62
|
+
|
63
|
+
counter=0
|
64
|
+
|
65
|
+
druids.each do |druid|
|
66
|
+
|
67
|
+
druid.gsub!('druid:','')
|
68
|
+
counter+=1
|
69
|
+
|
70
|
+
begin
|
71
|
+
with_retries(:max_tries => 5, :base_sleep_seconds => 3, :max_sleep_seconds => 60) do
|
72
|
+
indexer.index(druid,[target])
|
73
|
+
log my_logger,"#{counter} of #{druids.size}: #{druid}"
|
74
|
+
indexed += 1
|
75
|
+
end
|
76
|
+
rescue => e
|
77
|
+
log my_logger,"ERROR: Failed to index #{druid}: #{e.message}",:error
|
78
|
+
errors += 1
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
log my_logger,"Objects indexed: #{indexed} out of #{druids.size}"
|
84
|
+
log(my_logger,"ERRORS Encountered, #{errors} objects not indexed") if errors > 0
|
85
|
+
log my_logger,"Completed at #{Time.now}, total time was #{'%.2f' % ((Time.now - start_time)/60.0)} minutes"
|
86
|
+
puts "Logged output at #{output_log_file_name}"
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
desc 'Index a single druid. Specify target to index into and druid to index.'
|
91
|
+
#Run me: rake index RAILS_ENV=production target=revs_prod druid=oo000oo0001
|
92
|
+
# Examples:
|
93
|
+
task :index => :environment do |t, args|
|
94
|
+
|
95
|
+
target = ENV['target'] # must pass in the target so specify solr core to index into
|
96
|
+
druid = ENV['druid']
|
97
|
+
|
98
|
+
raise 'You must specify a target and druid.' if target.blank? || druid.blank?
|
99
|
+
|
100
|
+
target_config=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]
|
101
|
+
|
102
|
+
raise 'Target not found.' if target_config.nil?
|
103
|
+
|
104
|
+
solr_server=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]['url']
|
105
|
+
|
106
|
+
puts "** Indexing #{druid} druid into solr server #{solr_server} (target=#{target})."
|
107
|
+
|
108
|
+
indexer = BaseIndexer::MainIndexerEngine.new
|
109
|
+
indexer.index(druid.gsub('druid:',''),[target])
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
desc 'Index an entire collection, including the collection itself and all of its members. Specify target to index into and collection druid to index.'
|
114
|
+
#Run me: rake collection_indexer RAILS_ENV=production target=revs_prod collection_druid=oo000oo0001
|
115
|
+
# Examples:
|
116
|
+
task :collection_indexer => :environment do |t, args|
|
117
|
+
|
118
|
+
target = ENV['target'] # must pass in the target so specify solr core to index into
|
119
|
+
collection_druid = ENV['collection_druid']
|
120
|
+
|
121
|
+
raise 'You must specify a target and collection druid.' if target.blank? || collection_druid.blank?
|
122
|
+
|
123
|
+
target_config=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]
|
124
|
+
|
125
|
+
raise 'Target not found.' if target_config.nil?
|
126
|
+
|
127
|
+
solr_server=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]['url']
|
128
|
+
|
129
|
+
output_log_file_name="#{Rails.root}/log/collection_#{collection_druid}_indexer_#{Time.now.strftime('%Y%m%d-%H%M%S')}.log"
|
130
|
+
my_logger=Logger.new(output_log_file_name) # set up a new log file
|
131
|
+
|
132
|
+
log my_logger,"** Indexing collection #{collection_druid} druid and all of its members into solr server #{solr_server} (target=#{target})."
|
133
|
+
|
134
|
+
start_time=Time.now
|
135
|
+
log my_logger,"Indexing started at #{start_time}"
|
136
|
+
|
137
|
+
indexer = BaseIndexer::MainIndexerEngine.new
|
138
|
+
|
139
|
+
df = DorFetcher::Client.new({:service_url => Rails.application.config.dor_fetcher_url})
|
140
|
+
|
141
|
+
collection_druid=collection_druid.gsub('druid:','')
|
142
|
+
|
143
|
+
indexer.index(collection_druid,[target])
|
144
|
+
log my_logger,"Indexed collection: #{collection_druid}"
|
145
|
+
|
146
|
+
druids = df.druid_array(df.get_collection(collection_druid, {}))
|
147
|
+
|
148
|
+
log my_logger,"** Found #{druids.size} members of the collection"
|
149
|
+
|
150
|
+
counter=0
|
151
|
+
indexed=0
|
152
|
+
errors=0
|
153
|
+
|
154
|
+
druids.each do |druid|
|
155
|
+
|
156
|
+
druid=druid.gsub('druid:','')
|
157
|
+
counter+=1
|
158
|
+
|
159
|
+
begin
|
160
|
+
with_retries(:max_tries => 5, :base_sleep_seconds => 3, :max_sleep_seconds => 60) do
|
161
|
+
indexer.index(druid,[target])
|
162
|
+
log my_logger,"#{counter} of #{druids.size}: #{druid}"
|
163
|
+
indexed += 1
|
164
|
+
end
|
165
|
+
rescue => e
|
166
|
+
log my_logger,"ERROR: Failed to index #{druid}: #{e.message}",:error
|
167
|
+
errors += 1
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
log my_logger,"Objects indexed: #{indexed} out of #{druids.size} + 1 collection druid"
|
173
|
+
log(my_logger,"ERRORS Encountered, #{errors} objects not indexed") if errors > 0
|
174
|
+
log my_logger,"Completed at #{Time.now}, total time was #{'%.2f' % ((Time.now - start_time)/60.0)} minutes"
|
175
|
+
puts "Logged output at #{output_log_file_name}"
|
176
|
+
|
177
|
+
end
|
178
|
+
|
179
|
+
desc 'ReIndex just the druids that errored out from a previous batch index run. Specify target to index into and batch errored log file to index from.'
|
180
|
+
#Run me: rake reindexer RAILS_ENV=production target=revs_prod file=./log/index.log
|
181
|
+
# Examples:
|
182
|
+
task :reindexer => :environment do |t, args|
|
183
|
+
|
184
|
+
target = ENV['target'] # must pass in the target so specify solr core to index into
|
185
|
+
file_path = ENV['file'] # must specify previous indexing log file to index from
|
186
|
+
|
187
|
+
raise 'You must specify a target and file.' if target.blank? || file_path.blank?
|
188
|
+
raise 'File not found.' unless File.readable? file_path
|
189
|
+
|
190
|
+
target_config=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]
|
191
|
+
|
192
|
+
raise 'Target not found.' if target_config.nil?
|
193
|
+
|
194
|
+
start_time=Time.now
|
195
|
+
|
196
|
+
errors=0
|
197
|
+
indexed=0
|
198
|
+
|
199
|
+
solr_server=BaseIndexer.solr_configuration_class_name.constantize.instance.get_configuration_hash[target]['url']
|
200
|
+
|
201
|
+
output_log_file_name="#{Rails.root}/log/#{File.basename(file_path,File.extname(file_path))}_reindex_#{Time.now.strftime('%Y%m%d-%H%M%S')}.log"
|
202
|
+
my_logger=Logger.new(output_log_file_name) # set up a new log file
|
203
|
+
|
204
|
+
log my_logger,"** Indexing errored out druids from #{file_path} into solr server #{solr_server} (target=#{target})."
|
205
|
+
log my_logger,"Indexing started at #{start_time}"
|
206
|
+
|
207
|
+
indexer = BaseIndexer::MainIndexerEngine.new
|
208
|
+
|
209
|
+
counter=0
|
210
|
+
|
211
|
+
IO.readlines(file_path).each do |line|
|
212
|
+
|
213
|
+
downcased_line=line.downcase
|
214
|
+
|
215
|
+
if downcased_line.include? 'error'
|
216
|
+
druid=downcased_line.scan(/[a-z][a-z][0-9][0-9][0-9][a-z][a-z][0-9][0-9][0-9][0-9]/).first
|
217
|
+
|
218
|
+
unless druid.blank?
|
219
|
+
begin
|
220
|
+
counter+=1
|
221
|
+
with_retries(:max_tries => 5, :base_sleep_seconds => 3, :max_sleep_seconds => 60) do
|
222
|
+
indexer.index(druid,[target])
|
223
|
+
log my_logger,"#{counter}: #{druid}"
|
224
|
+
indexed += 1
|
225
|
+
end
|
226
|
+
rescue => e
|
227
|
+
log my_logger,"ERROR: Failed to index #{druid}: #{e.message}",:error
|
228
|
+
errors += 1
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
end
|
233
|
+
|
234
|
+
end
|
235
|
+
|
236
|
+
log my_logger,"Objects indexed: #{indexed}"
|
237
|
+
log(my_logger,"ERRORS Encountered, #{errors} objects not indexed") if errors > 0
|
238
|
+
log my_logger,"Completed at #{Time.now}, total time was #{'%.2f' % ((Time.now - start_time)/60.0)} minutes"
|
239
|
+
puts "Logged output at #{output_log_file_name}"
|
240
|
+
|
241
|
+
end
|
242
|
+
|
243
|
+
desc 'Delete the druids specified in the supplied text file (one druid per line, header not necessary). Be careful! It will delete from all targets.'
|
244
|
+
#Run me: rake delete_druids RAILS_ENV=production file=druid_list.txt
|
245
|
+
# Examples:
|
246
|
+
task :delete_druids => :environment do |t, args|
|
247
|
+
|
248
|
+
file_path = ENV['file'] # must specify previous indexing log file to index from
|
249
|
+
|
250
|
+
raise 'You must specify a druid file.' if file_path.blank?
|
251
|
+
raise 'File not found.' unless File.readable? file_path
|
252
|
+
|
253
|
+
print "Are you sure you wish to delete all of the druids from all targets specified in #{file_path}? (y/n) "
|
254
|
+
STDOUT.flush
|
255
|
+
answer=STDIN.gets.chomp
|
256
|
+
|
257
|
+
raise 'STOP!' unless (answer && ['y','yes'].include?(answer.downcase))
|
258
|
+
|
259
|
+
output_log_file_name="#{Rails.root}/log/#{File.basename(file_path,File.extname(file_path))}_delete_#{Time.now.strftime('%Y%m%d-%H%M%S')}.log"
|
260
|
+
my_logger=Logger.new(output_log_file_name) # set up a new log file
|
261
|
+
|
262
|
+
start_time=Time.now
|
263
|
+
|
264
|
+
errors=0
|
265
|
+
indexed=0
|
266
|
+
|
267
|
+
log my_logger,"** Deleting druids from #{file_path} in all targets."
|
268
|
+
log my_logger,"Deleting started at #{start_time}"
|
269
|
+
|
270
|
+
indexer = BaseIndexer::MainIndexerEngine.new
|
271
|
+
|
272
|
+
counter=0
|
273
|
+
|
274
|
+
IO.readlines(file_path).each do |line|
|
275
|
+
|
276
|
+
downcased_line=line.downcase
|
277
|
+
druid=downcased_line.scan(/[a-z][a-z][0-9][0-9][0-9][a-z][a-z][0-9][0-9][0-9][0-9]/).first
|
278
|
+
|
279
|
+
unless druid.blank?
|
280
|
+
counter+=1
|
281
|
+
|
282
|
+
begin
|
283
|
+
with_retries(:max_tries => 5, :base_sleep_seconds => 3, :max_sleep_seconds => 60) do
|
284
|
+
indexer.delete druid
|
285
|
+
log my_logger,"#{counter}: #{druid}"
|
286
|
+
indexed += 1
|
287
|
+
end
|
288
|
+
rescue => e
|
289
|
+
log my_logger,"ERROR: Failed to delete #{druid}: #{e.message}",:error
|
290
|
+
errors += 1
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
log my_logger,"Objects deleted: #{indexed}"
|
296
|
+
log(my_logger,"ERRORS Encountered, #{errors} objects not deleted",:error) if errors > 0
|
297
|
+
log my_logger,"Completed at #{Time.now}, total time was #{'%.2f' % ((Time.now - start_time)/60.0)} minutes"
|
298
|
+
|
299
|
+
end
|
metadata
CHANGED
@@ -1,187 +1,201 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: base_indexer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmed Alsum
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.1'
|
20
|
-
- -
|
20
|
+
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.1.9
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '4.1'
|
30
|
-
- -
|
30
|
+
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.1.9
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: discovery-indexer
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ! '>='
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: retries
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
45
59
|
- !ruby/object:Gem::Version
|
46
60
|
version: '0'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: sqlite3
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
50
64
|
requirements:
|
51
|
-
- -
|
65
|
+
- - ! '>='
|
52
66
|
- !ruby/object:Gem::Version
|
53
67
|
version: '0'
|
54
68
|
type: :development
|
55
69
|
prerelease: false
|
56
70
|
version_requirements: !ruby/object:Gem::Requirement
|
57
71
|
requirements:
|
58
|
-
- -
|
72
|
+
- - ! '>='
|
59
73
|
- !ruby/object:Gem::Version
|
60
74
|
version: '0'
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
76
|
name: rspec
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
64
78
|
requirements:
|
65
|
-
- -
|
79
|
+
- - ~>
|
66
80
|
- !ruby/object:Gem::Version
|
67
81
|
version: 3.1.0
|
68
82
|
type: :development
|
69
83
|
prerelease: false
|
70
84
|
version_requirements: !ruby/object:Gem::Requirement
|
71
85
|
requirements:
|
72
|
-
- -
|
86
|
+
- - ~>
|
73
87
|
- !ruby/object:Gem::Version
|
74
88
|
version: 3.1.0
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: rspec-rails
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
78
92
|
requirements:
|
79
|
-
- -
|
93
|
+
- - ~>
|
80
94
|
- !ruby/object:Gem::Version
|
81
95
|
version: 3.1.0
|
82
96
|
type: :development
|
83
97
|
prerelease: false
|
84
98
|
version_requirements: !ruby/object:Gem::Requirement
|
85
99
|
requirements:
|
86
|
-
- -
|
100
|
+
- - ~>
|
87
101
|
- !ruby/object:Gem::Version
|
88
102
|
version: 3.1.0
|
89
103
|
- !ruby/object:Gem::Dependency
|
90
104
|
name: capybara
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
92
106
|
requirements:
|
93
|
-
- -
|
107
|
+
- - ! '>='
|
94
108
|
- !ruby/object:Gem::Version
|
95
109
|
version: '0'
|
96
110
|
type: :development
|
97
111
|
prerelease: false
|
98
112
|
version_requirements: !ruby/object:Gem::Requirement
|
99
113
|
requirements:
|
100
|
-
- -
|
114
|
+
- - ! '>='
|
101
115
|
- !ruby/object:Gem::Version
|
102
116
|
version: '0'
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
name: vcr
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
106
120
|
requirements:
|
107
|
-
- -
|
121
|
+
- - ! '>='
|
108
122
|
- !ruby/object:Gem::Version
|
109
123
|
version: '0'
|
110
124
|
type: :development
|
111
125
|
prerelease: false
|
112
126
|
version_requirements: !ruby/object:Gem::Requirement
|
113
127
|
requirements:
|
114
|
-
- -
|
128
|
+
- - ! '>='
|
115
129
|
- !ruby/object:Gem::Version
|
116
130
|
version: '0'
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
132
|
name: webmock
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
|
-
- -
|
135
|
+
- - ! '>='
|
122
136
|
- !ruby/object:Gem::Version
|
123
137
|
version: '0'
|
124
138
|
type: :development
|
125
139
|
prerelease: false
|
126
140
|
version_requirements: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
|
-
- -
|
142
|
+
- - ! '>='
|
129
143
|
- !ruby/object:Gem::Version
|
130
144
|
version: '0'
|
131
145
|
- !ruby/object:Gem::Dependency
|
132
146
|
name: coveralls
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
134
148
|
requirements:
|
135
|
-
- -
|
149
|
+
- - ! '>='
|
136
150
|
- !ruby/object:Gem::Version
|
137
151
|
version: '0'
|
138
152
|
type: :development
|
139
153
|
prerelease: false
|
140
154
|
version_requirements: !ruby/object:Gem::Requirement
|
141
155
|
requirements:
|
142
|
-
- -
|
156
|
+
- - ! '>='
|
143
157
|
- !ruby/object:Gem::Version
|
144
158
|
version: '0'
|
145
159
|
- !ruby/object:Gem::Dependency
|
146
160
|
name: yard
|
147
161
|
requirement: !ruby/object:Gem::Requirement
|
148
162
|
requirements:
|
149
|
-
- -
|
163
|
+
- - ! '>='
|
150
164
|
- !ruby/object:Gem::Version
|
151
165
|
version: '0'
|
152
166
|
type: :development
|
153
167
|
prerelease: false
|
154
168
|
version_requirements: !ruby/object:Gem::Requirement
|
155
169
|
requirements:
|
156
|
-
- -
|
170
|
+
- - ! '>='
|
157
171
|
- !ruby/object:Gem::Version
|
158
172
|
version: '0'
|
159
173
|
- !ruby/object:Gem::Dependency
|
160
174
|
name: engine_cart
|
161
175
|
requirement: !ruby/object:Gem::Requirement
|
162
176
|
requirements:
|
163
|
-
- -
|
177
|
+
- - ! '>='
|
164
178
|
- !ruby/object:Gem::Version
|
165
179
|
version: '0'
|
166
180
|
type: :development
|
167
181
|
prerelease: false
|
168
182
|
version_requirements: !ruby/object:Gem::Requirement
|
169
183
|
requirements:
|
170
|
-
- -
|
184
|
+
- - ! '>='
|
171
185
|
- !ruby/object:Gem::Version
|
172
186
|
version: '0'
|
173
187
|
- !ruby/object:Gem::Dependency
|
174
188
|
name: jettywrapper
|
175
189
|
requirement: !ruby/object:Gem::Requirement
|
176
190
|
requirements:
|
177
|
-
- -
|
191
|
+
- - ! '>='
|
178
192
|
- !ruby/object:Gem::Version
|
179
193
|
version: '0'
|
180
194
|
type: :development
|
181
195
|
prerelease: false
|
182
196
|
version_requirements: !ruby/object:Gem::Requirement
|
183
197
|
requirements:
|
184
|
-
- -
|
198
|
+
- - ! '>='
|
185
199
|
- !ruby/object:Gem::Version
|
186
200
|
version: '0'
|
187
201
|
description: Description of BaseIndexer.
|
@@ -191,7 +205,6 @@ executables: []
|
|
191
205
|
extensions: []
|
192
206
|
extra_rdoc_files: []
|
193
207
|
files:
|
194
|
-
- MIT-LICENSE
|
195
208
|
- README.rdoc
|
196
209
|
- Rakefile
|
197
210
|
- app/controllers/base_indexer/about_controller.rb
|
@@ -207,11 +220,11 @@ files:
|
|
207
220
|
- lib/base_indexer/collection.rb
|
208
221
|
- lib/base_indexer/engine.rb
|
209
222
|
- lib/base_indexer/main_indexer_engine.rb
|
210
|
-
- lib/base_indexer/message.rb
|
211
223
|
- lib/base_indexer/solr/solr_configuration.rb
|
212
224
|
- lib/base_indexer/solr/solr_configuration_from_file.rb
|
213
225
|
- lib/base_indexer/version.rb
|
214
226
|
- lib/tasks/base_indexer_tasks.rake
|
227
|
+
- lib/tasks/index.rake
|
215
228
|
homepage:
|
216
229
|
licenses:
|
217
230
|
- Apache 2
|
@@ -222,17 +235,17 @@ require_paths:
|
|
222
235
|
- lib
|
223
236
|
required_ruby_version: !ruby/object:Gem::Requirement
|
224
237
|
requirements:
|
225
|
-
- -
|
238
|
+
- - ! '>='
|
226
239
|
- !ruby/object:Gem::Version
|
227
240
|
version: '0'
|
228
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
242
|
requirements:
|
230
|
-
- -
|
243
|
+
- - ! '>='
|
231
244
|
- !ruby/object:Gem::Version
|
232
245
|
version: '0'
|
233
246
|
requirements: []
|
234
247
|
rubyforge_project:
|
235
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.4.2
|
236
249
|
signing_key:
|
237
250
|
specification_version: 4
|
238
251
|
summary: Summary of BaseIndexer.
|
data/MIT-LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright 2015 YOURNAME
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|