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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c7ea4cd421f377a0dfde47d401fe4b6ca20109d1
4
- data.tar.gz: 43b93f9e9e73097db8b2b32c5fa4c1c93e57606c
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTM2N2NiMmY0NWUxNmE5Mjk1Y2JlNjk2OGZkM2U2OGJiZjJhZjQ5Mg==
5
+ data.tar.gz: !binary |-
6
+ YzU2NDhhMmJjNTEzOTY5NzE5OGY3Y2NiZWZjOTdmMGM3MjY4OGIxZg==
5
7
  SHA512:
6
- metadata.gz: 87306d3dc67800ebbb6f7488d3154f92c1ec003d90ad08a22e5914c2636ed0f8731fd8c7b4fdb94147440cb80bceecc1e28e794eb6bda00de2c06c1cfb196869
7
- data.tar.gz: ea79ed4b56a09f6c816e90afbbf780b97c2565866b21b277f1735eaf46abbf6f1f48221cabc16ec772fd3d62f6fcc2cf2d7e9ef59d68252aa2f8790f3e295692
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
- require 'rspec/core/rake_task'
30
-
31
- RSpec::Core::RakeTask.new(:spec)
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
- #task :spec => :rspec
38
- #RSpec::Core::RakeTask.new(:rspec) do |spec|
39
- # spec.rspec_opts = ["-c", "-f progress", "--tty", "-r ./spec/spec_helper.rb"]
40
- #end
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
@@ -1,3 +1,3 @@
1
1
  module BaseIndexer
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -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.2
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-15 00:00:00.000000000 Z
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.2.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.
@@ -1,6 +0,0 @@
1
- module BaseIndexer
2
- class Message
3
- attr_accessor :status
4
- attr_accessor :text_message
5
- end
6
- end