to_spotlight 0.0.3 → 0.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 +4 -4
- data/app/controllers/to_spotlight/spotlight_transfer_controller.rb +28 -8
- data/app/jobs/to_spotlight/spotlight_transfer_job.rb +11 -12
- data/app/models/to_spotlight/spotlight_transfer.rb +4 -0
- data/app/views/to_spotlight/spotlight_transfer/_list_transfers.html.erb +1 -1
- data/app/views/to_spotlight/spotlight_transfer/approve.html.erb +1 -1
- data/lib/to_spotlight/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dc3e37bf423a699fa57b0be84458a76c686728ba2a03e9c77568038e23f5182
|
4
|
+
data.tar.gz: f7afd69a08db348741e5bdfed68a600bfadfc7538af0334417efabacf8618578
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4bf67bc61638150beb70abc78e6a2f91575824e777c7c983a5eda3ce07ef2617544ef03c38c05d51fbb19d9894d3ecce29496f028877d51b4bd8e3a305ab3ae
|
7
|
+
data.tar.gz: b8f4385cd08ed6a9de0afa4598c966665e85d9c287e3162c08c9bd05260c3eefadb3d5aee52f9f99e9563eda600a52dc9869aa84796accc7e320577834796b8b
|
@@ -43,9 +43,10 @@ module ToSpotlight
|
|
43
43
|
def approve
|
44
44
|
now = params[:commit].downcase.include?('now')
|
45
45
|
transfer = ToSpotlight::SpotlightTransfer.find params[:transfer_id]
|
46
|
-
works = ::
|
46
|
+
works = ::ActiveFedora::Base.where member_of_collection_ids_ssim: transfer.collection_id
|
47
47
|
mappings = mapping_invert transfer.mappings
|
48
|
-
SpotlightTransferJob.perform_later(works, mappings)
|
48
|
+
SpotlightTransferJob.perform_later(works.to_a, mappings) if now
|
49
|
+
SpotlightTransferJob.set(wait_until: Date.today.end_of_day).perform_later(works.to_a, mappings) unless now
|
49
50
|
#@res = ::Net::HTTP.post URI('http://localhost:3000/from_hyrax/receive'),
|
50
51
|
# { transfer: transfer.attributes,
|
51
52
|
# now: now,
|
@@ -56,10 +57,10 @@ module ToSpotlight
|
|
56
57
|
|
57
58
|
private
|
58
59
|
|
59
|
-
def mapping_invert
|
60
|
+
def mapping_invert(hash)
|
60
61
|
result = []
|
61
|
-
test
|
62
|
-
test.reduce({}, :merge).map { |k, v| v.map { |val| [val, k] } }.each { |a| a.each { |a2| result<<a2 } }
|
62
|
+
test = hash.map { |h| {h['hyrax'] => h['spotlight'].values} }
|
63
|
+
test.reduce({}, :merge).map { |k, v| v.map { |val| [val, k] } }.each { |a| a.each { |a2| result << a2 } }
|
63
64
|
Hash[result]
|
64
65
|
end
|
65
66
|
|
@@ -72,11 +73,11 @@ module ToSpotlight
|
|
72
73
|
end
|
73
74
|
|
74
75
|
def curated_fields
|
75
|
-
work_fields
|
76
|
+
{"common_fields" => (work_fields - excluded_fields - field_differences), "differences" => field_differences}
|
76
77
|
end
|
77
78
|
|
78
|
-
def work_fields
|
79
|
-
work.new.attributes.keys
|
79
|
+
def work_fields
|
80
|
+
curated_works.map { |work| work.constantize.new.attributes.keys }.flatten.uniq
|
80
81
|
#%w[id head tail depositor title date_uploaded date_modified state
|
81
82
|
# proxy_depositor on_behalf_of arkivo_checksum owner alternative_title
|
82
83
|
# edition geographic_coverage coordinates chronological_coverage extent
|
@@ -98,5 +99,24 @@ module ToSpotlight
|
|
98
99
|
representative_id thumbnail_id rendering_ids admin_set_id embargo_id
|
99
100
|
lease_id]
|
100
101
|
end
|
102
|
+
|
103
|
+
def field_differences
|
104
|
+
if @dif.nil?
|
105
|
+
@dif = []
|
106
|
+
curated_works.each do |work|
|
107
|
+
@dif += (work.constantize.new.attributes.keys - common_fields)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
@dif.uniq
|
111
|
+
end
|
112
|
+
|
113
|
+
def common_fields
|
114
|
+
@all_works_hash ||= intersect(curated_works.map { |w| w.constantize.new.attributes.keys })
|
115
|
+
end
|
116
|
+
|
117
|
+
def intersect a_of_a
|
118
|
+
eval a_of_a.map{|a| a.inspect}.join(' & ')
|
119
|
+
end
|
120
|
+
|
101
121
|
end
|
102
122
|
end
|
@@ -5,7 +5,7 @@ module ToSpotlight
|
|
5
5
|
def perform(works, mappings)
|
6
6
|
base_url = ::Account.where(tenant: Apartment::Tenant.current).first.cname
|
7
7
|
csv_headers = %w[url full_title_tesim] + mappings.keys + %w[children]
|
8
|
-
csv_array = csv_headers
|
8
|
+
csv_array = [csv_headers.join(',')]
|
9
9
|
#items = []
|
10
10
|
works.each do |wk|
|
11
11
|
#if comp
|
@@ -30,16 +30,16 @@ module ToSpotlight
|
|
30
30
|
doc = ::SolrDocument.find wk.id
|
31
31
|
|
32
32
|
line_hash = {}
|
33
|
-
line_hash
|
34
|
-
line_hash
|
33
|
+
line_hash['url'] = "http://#{base_url}/downloads/#{wk.file_sets.first.id}?locale=en" #url
|
34
|
+
line_hash['full_title_tesim'] = (doc.title.length > 1 ? doc.title.join('; ') : doc.title.first) #full_title_tesim
|
35
35
|
|
36
36
|
mappings.each do |skey, field|
|
37
37
|
line_hash[skey] = create_cell doc, field
|
38
38
|
end
|
39
39
|
|
40
|
-
line_hash
|
40
|
+
line_hash['children'] = children.join('|')
|
41
41
|
|
42
|
-
csv_array << line_hash.values_at(*csv_headers).map { |cell| cell =
|
42
|
+
csv_array << line_hash.values_at(*csv_headers).map { |cell| cell = '' if cell.nil?; "\"#{cell.gsub("\"","\"\"")}\"" }.join(',')
|
43
43
|
|
44
44
|
end
|
45
45
|
|
@@ -50,7 +50,6 @@ module ToSpotlight
|
|
50
50
|
File.open(dir.join(filename), 'wb') do |file|
|
51
51
|
file.write(csv_array.join("\n"))
|
52
52
|
end
|
53
|
-
items
|
54
53
|
end
|
55
54
|
|
56
55
|
def base_url
|
@@ -58,13 +57,13 @@ module ToSpotlight
|
|
58
57
|
end
|
59
58
|
|
60
59
|
def empty_fs_line fs_id, commas
|
61
|
-
"http://#{base_url}downloads/#{fs_id}?locale=en" + (
|
60
|
+
"http://#{base_url}downloads/#{fs_id}?locale=en" + (',' * commas)
|
62
61
|
end
|
63
62
|
|
64
63
|
def create_cell w, field
|
65
|
-
if w.respond_to?((field +
|
66
|
-
w.send(field +
|
67
|
-
|
64
|
+
if w.respond_to?((field + '_label').to_sym)
|
65
|
+
w.send(field + '_label').join(';')
|
66
|
+
elsif w.respond_to?(field.to_sym)
|
68
67
|
if w.send(field).is_a?(Array)
|
69
68
|
w.send(field).join(';')
|
70
69
|
else
|
@@ -84,7 +83,7 @@ module ToSpotlight
|
|
84
83
|
def get_resource list
|
85
84
|
output = []
|
86
85
|
list.each do |url|
|
87
|
-
if url.include?
|
86
|
+
if url.include? 'http'
|
88
87
|
output << Hyrax::ResourceTypesService.label(url)
|
89
88
|
else
|
90
89
|
output << url
|
@@ -96,7 +95,7 @@ module ToSpotlight
|
|
96
95
|
def get_rights list
|
97
96
|
output = []
|
98
97
|
list.each do |url|
|
99
|
-
if url.include?
|
98
|
+
if url.include? 'http'
|
100
99
|
output << ::VaultRightsStatementsService.label(url)
|
101
100
|
else
|
102
101
|
output << url
|
data/lib/to_spotlight/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_spotlight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sephirothkod
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|