cdm_migrator 0.1.3 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cb394b2b49d7e24c434c0fbe4b85f616f2e67ae
4
- data.tar.gz: 91ea320ad23de3919c5483cd2b8f69720cec721e
3
+ metadata.gz: 543741596596c9894fcc9d0ddf51846967f9490f
4
+ data.tar.gz: 28cb8c449f50eaf3485d5d0dd41206428d84a364
5
5
  SHA512:
6
- metadata.gz: 191849478a3d433b99b3f1a764106c1db1f4175f99c92088b4446901aa0ca214961410f6e0ab2f71fa174333be6fbba9dd737d26d8a62286180c95587b6785e2
7
- data.tar.gz: 361e497329beb948aedab5a6baf7c844c4711d8e8710132cdc04611ce9d7fd548f41656cb0d3d7d36e0d3eaf07e87898cddbcedb6a8b2e7aca8e86ed5dc8d6b2
6
+ metadata.gz: 84902af620888db380ce8f76e0d5b26ae2671222f4110ef0f9a8e5183beb501ee4b6b2feb78d80c82e6bdde870e089c7a53a7805f14cc0cb6542d499deb6bf8d
7
+ data.tar.gz: 79194986455bc961472cfafba1a5d7f167ea53e81d71542e713785c247f14c7d419f4a0d29b5a626bbe37bc36fcd4dc2e72fe0351778ceab0bdac9b1f845552a
@@ -1,31 +1,19 @@
1
1
  module CdmMigrator
2
2
  class CdmController < ApplicationController
3
3
 
4
+ require 'csv'
5
+
4
6
  def initialize
5
7
  super
6
8
  @cdm_url = CdmMigrator::Engine.config["cdm_url"]
7
9
  @cdm_port = CdmMigrator::Engine.config["cdm_port"]
10
+ @default_fields = CdmMigrator::Engine.config["default_fields"]
8
11
  @cdm_dirs = CdmMigrator::Engine.config["cdm_dirs"] || false
12
+ @cdm_api = CdmMigrator::Engine.config["api"]
9
13
  end
10
-
14
+
11
15
  before_action :set_exclusive_fields, only: [:generate, :mappings]
12
-
13
- def secondary_terms file_form
14
- file_form.terms - file_form.required_fields -
15
- [:visibility_during_embargo, :embargo_release_date,
16
- :visibility_after_embargo, :visibility_during_lease,
17
- :lease_expiration_date, :visibility_after_lease, :visibility,
18
- :thumbnail_id, :representative_id, :ordered_member_ids,
19
- :collection_ids, :in_works_ids, :admin_set_id]
20
- end
21
-
22
- def set_exclusive_fields
23
- #Module.const_get "Hyrax::GenericWorkForm" rescue false #.split('::').inject(Object) {|o,c| o.const_get c}
24
- file_form = Module.const_get("Hyrax::FileSetForm") rescue nil || Module.const_get("Hyrax::Forms::FileSetEditForm")
25
- work_form = Module.const_get("Hyrax::#{params[:work]}Form") rescue nil || Module.const_get("Hyrax::Forms::WorkForm")
26
- @terms = file_form.required_fields + secondary_terms(file_form)
27
- @work_only = work_form.required_fields + work_form.new(params[:work].constantize.new,nil,nil).secondary_terms - @terms
28
- end
16
+ skip_before_action :verify_authenticity_token
29
17
 
30
18
  def generate
31
19
  @h_to_c = {}
@@ -54,25 +42,23 @@ module CdmMigrator
54
42
  else
55
43
  records = json["records"].map { |rec| [rec['pointer'], rec['filetype']] }
56
44
  end
57
- headers = CSV.generate_line (['object_type','url']+@terms+@work_only)
45
+ headers = ::CSV.generate_line (['object_type','url']+@terms+@work_only)
58
46
  csv_lines = [] << headers
59
47
  records.each do |rec|
60
48
  if rec.last == "cpd"
61
49
  json = JSON.parse(Net::HTTP.get_response(URI.parse("#{@cdm_url}:#{@cdm_port}/dmwebservices/index.php?q=dmGetItemInfo/#{params[:collection]}/#{rec.first}/json")).body)
62
- csv_lines << create_line("GenericWork","",json)
50
+ csv_lines << create_line(params[:work],"",json)
63
51
  json = JSON.parse(Net::HTTP.get_response(URI.parse("#{@cdm_url}:#{@cdm_port}/dmwebservices/index.php?q=dmGetCompoundObjectInfo/#{params[:collection]}/#{rec.first}/json")).body)
64
52
  rec_pages = json['page'] || json['node']['page']
65
53
  rec_pages.each do |child|
66
54
  child_json = JSON.parse(Net::HTTP.get_response(URI.parse("#{@cdm_url}:#{@cdm_port}/dmwebservices/index.php?q=dmGetItemInfo/#{params[:collection]}/#{child['pageptr']}/json")).body)
67
- url = "file://#{file_path(child['pageptr'])}"
68
- url = "#{@cdm_url}/utils/getfile/collection/#{params[:collection]}/id/#{rec.first}/filename/#{child['pageptr']}.#{child['find']}" unless params[:file_system]=="true" #"file://#{file_path(rec.first)}"
55
+ url = api_check rec
69
56
  csv_lines << create_line("File",url,child_json)
70
57
  end
71
58
  else
72
59
  json = JSON.parse(Net::HTTP.get_response(URI.parse("#{@cdm_url}:#{@cdm_port}/dmwebservices/index.php?q=dmGetItemInfo/#{params[:collection]}/#{rec.first}/json")).body)
73
- csv_lines << create_line("GenericWork","",json)
74
- url = "file://#{file_path(rec.first)}"
75
- url = "#{@cdm_url}/utils/getfile/collection/#{params[:collection]}/id/#{rec.first}/filename/#{rec.first}.#{rec.last}" unless params[:file_system]=="true" #"file://#{file_path(rec.first)}"
60
+ csv_lines << create_line(params[:work],"",json)
61
+ url = api_check rec
76
62
  csv_lines << create_line("File",url,{})
77
63
  end
78
64
  end
@@ -86,54 +72,115 @@ module CdmMigrator
86
72
  if @cdm_dirs
87
73
  get_dirs
88
74
  end
75
+ @yaml = YAML.load_file(params['template'].tempfile) if params.has_key? 'template'
89
76
  end
90
77
 
91
78
  def collection
92
79
  json = JSON.parse(Net::HTTP.get_response(URI.parse("#{@cdm_url}:#{@cdm_port}/dmwebservices/index.php?q=dmGetCollectionList/json")).body)
93
80
  @collections = json.collect { |c| [c['name'],c['secondary_alias']] }
94
- @available_concerns = Hyrax.config.curation_concerns.map { |c| [c.to_s, c.to_s]}
81
+ load_concerns
82
+ end
83
+
84
+ def template
85
+ hashed = params[:mappings].permit!.to_h
86
+ template = {}
87
+ hashed.each do |k,v|
88
+ template[v['cdm']] = {'hydra' => v['hydra'], 'hydrac' => v['hydrac']}
89
+ end
90
+ render plain: template.to_yaml, content_type: 'text/yaml'
95
91
  end
96
92
 
97
93
  protected
98
94
 
99
- def create_line type, url, json
100
- line = [] << type
101
- line << url
102
- (@terms+@work_only).each do |term|
103
- content = []
104
- unless @h_to_c[term.to_s].nil?
105
- @h_to_c[term.to_s].each do |cdm_term|
106
- content << json[cdm_term] unless json[cdm_term].nil?
107
- end
108
- content.delete_if(&:empty?)
109
- end
110
- if content.nil? || content.empty? || content == [{}]
111
- line << ""
112
- else
113
- line << content.join('|')
114
- end
115
- end
116
- CSV.generate_line line
95
+ def api_check rec
96
+ if params[:file_system]=="true"
97
+ "file://#{file_path(rec.first)}"
98
+ elsif @cdm_api == "server"
99
+ "#{@cdm_url}:#{@cdm_port}/cgi-bin/showfile.exe?CISOROOT=/#{params[:collection]}&CISOPTR=#{rec.first}"
100
+ else
101
+ "#{@cdm_url}/utils/getfile/collection/#{params[:collection]}/id/#{rec.first}/filename/#{rec.first}.#{rec.last}"
102
+ end
103
+ end
104
+
105
+ def standalone
106
+ Hyrax rescue nil
107
+ end
108
+
109
+ def load_concerns
110
+ @available_concerns = []
111
+ unless @default_fields.nil?
112
+ @available_concerns += [['DefaultWork', 'DefaultWork']]
113
+ end
114
+ unless standalone.nil?
115
+ @available_concerns += Hyrax.config.curation_concerns.map { |c| [c.to_s, c.to_s]}
116
+ end
117
+ end
118
+
119
+ def work_form
120
+ Module.const_get("Hyrax::#{params[:work]}Form") rescue nil || Module.const_get("Hyrax::Forms::WorkForm")
121
+ end
122
+
123
+ def file_form
124
+ Module.const_get("Hyrax::FileSetForm") rescue nil || Module.const_get("Hyrax::Forms::FileSetEditForm")
125
+ end
126
+
127
+ def secondary_terms form_name
128
+ form_name.terms - form_name.required_fields -
129
+ [:visibility_during_embargo, :embargo_release_date,
130
+ :visibility_after_embargo, :visibility_during_lease,
131
+ :lease_expiration_date, :visibility_after_lease, :visibility,
132
+ :thumbnail_id, :representative_id, :ordered_member_ids,
133
+ :collection_ids, :in_works_ids, :admin_set_id, :files, :source, :member_of_collection_ids]
134
+ end
135
+
136
+ def set_exclusive_fields
137
+ if params[:work] != 'DefaultWork'
138
+ @terms = file_form.required_fields + secondary_terms(file_form)
139
+ @work_only = (secondary_terms work_form) - @terms
140
+ else
141
+ @terms = @default_fields
142
+ @work_only = []
117
143
  end
144
+ end
118
145
 
119
- def file_path pointer
120
- file_types = ['tif','jpg','mp4','mp3']
121
- files = []
122
- file_types.each do |type|
123
- files << Dir.glob("#{params['mappings_url']}/**/#{pointer}_*#{type}")
146
+ def create_line type, url, json
147
+ line = [] << type
148
+ line << url
149
+ (@terms+@work_only).each do |term|
150
+ content = []
151
+ unless @h_to_c[term.to_s].nil?
152
+ @h_to_c[term.to_s].each do |cdm_term|
153
+ content << json[cdm_term] unless json[cdm_term].nil?
154
+ end
155
+ content.delete_if(&:empty?)
124
156
  end
125
- files.each do |file|
126
- return file.first if file.count > 0
157
+ if content.nil? || content.empty? || content == [{}]
158
+ line << ""
159
+ else
160
+ line << content.join('|')
127
161
  end
128
162
  end
163
+ ::CSV.generate_line line
164
+ end
129
165
 
130
- def get_dirs
131
- @dirs = []
132
- @cdm_dirs.each do |name, dir|
133
- ent = Dir.entries(dir).select {|entry| File.directory? File.join(dir,entry) and !(entry =='.' || entry == '..') }
134
- ent = ent.map { |url| ["#{name}/#{url}", "#{dir}/#{url}"] }
135
- @dirs += ent
136
- end
166
+ def file_path pointer
167
+ file_types = ['tif','jpg','mp4','mp3']
168
+ files = []
169
+ file_types.each do |type|
170
+ files << Dir.glob("#{params['mappings_url']}/**/#{pointer}_*#{type}")
171
+ end
172
+ files.each do |file|
173
+ return file.first if file.count > 0
137
174
  end
175
+ end
176
+
177
+ def get_dirs
178
+ @dirs = []
179
+ @cdm_dirs.each do |name, dir|
180
+ ent = Dir.entries(dir).select {|entry| File.directory? File.join(dir,entry) and !(entry =='.' || entry == '..') }
181
+ ent = ent.map { |url| ["#{name}/#{url}", "#{dir}/#{url}"] }
182
+ @dirs += ent
183
+ end
184
+ end
138
185
  end
139
186
  end
@@ -21,8 +21,8 @@ module CdmMigrator
21
21
  def create
22
22
  #byebug
23
23
  csv = CSV.parse(File.read(params[:csv_import][:csv_file].path), headers: true, encoding: 'utf-8')
24
- CsvUploadJob.perform_later(params[:csv_import][:csv_file].path, params[:csv_import][:mvs], @current_user)
25
- #perform(params[:csv_import][:csv_file].path, params[:csv_import][:mvs], @current_user)
24
+ CsvUploadJob.perform_later(params[:csv_import][:csv_file].path, params[:csv_import][:mvs], current_user)
25
+ #perform(params[:csv_import][:csv_file].path, params[:csv_import][:mvs], current_user)
26
26
  flash[:notice] = "csv successfully uploaded"
27
27
  redirect_to csv_upload_path
28
28
  end
@@ -30,7 +30,6 @@ module CdmMigrator
30
30
  def perform(csv, mvs, current_user)
31
31
  @csv = CSV.parse(File.read(csv), headers: true, encoding: 'utf-8').map(&:to_hash)
32
32
  @mvs = mvs
33
- @current_user = current_user
34
33
  @works = []
35
34
  @files = {}
36
35
  @csv.each do |row|
@@ -50,10 +49,27 @@ module CdmMigrator
50
49
 
51
50
  private
52
51
 
52
+ def work_form
53
+ Module.const_get("Hyrax::#{params[:work]}Form") rescue nil || Module.const_get("Hyrax::Forms::WorkForm")
54
+ end
55
+
56
+ def file_form
57
+ Module.const_get("Hyrax::FileSetForm") rescue nil || Module.const_get("Hyrax::Forms::FileSetEditForm")
58
+ end
59
+
60
+ def secondary_terms form_name
61
+ form_name.terms - form_name.required_fields -
62
+ [:visibility_during_embargo, :embargo_release_date,
63
+ :visibility_after_embargo, :visibility_during_lease,
64
+ :lease_expiration_date, :visibility_after_lease, :visibility,
65
+ :thumbnail_id, :representative_id, :ordered_member_ids,
66
+ :collection_ids, :in_works_ids, :admin_set_id, :files, :source, :member_of_collection_ids]
67
+ end
68
+
53
69
  def create_file_from_url(url, file_name, work, file_data)
54
70
  ::FileSet.new(import_url: url, label: file_name) do |fs|
55
71
  fs.save
56
- actor = Hyrax::Actors::FileSetActor.new(fs, @current_user)
72
+ actor = Hyrax::Actors::FileSetActor.new(fs, current_user)
57
73
  actor.create_metadata#(work, visibility: work.visibility)
58
74
  actor.attach_file_to_work(work)
59
75
  #byebug
@@ -61,7 +77,7 @@ module CdmMigrator
61
77
  fs.save!
62
78
  uri = URI.parse(url.gsub(' ','%20'))
63
79
  if uri.scheme == 'file'
64
- IngestLocalFileJob.perform_later(fs, uri.path.gsub('%20',' '), @current_user)
80
+ IngestLocalFileJob.perform_later(fs, uri.path.gsub('%20',' '), current_user)
65
81
  else
66
82
  ImportUrlJob.perform_later(fs, log(actor.user))
67
83
  end
@@ -93,8 +109,8 @@ module CdmMigrator
93
109
  @works.each do |work_data|
94
110
  work = Object.const_get(work_data.first.last).new#delete("object_type")).new
95
111
  status_after, embargo_date, lease_date = nil, nil, nil
96
- final_work_data = create_data work_data, "Hyrax::GenericWorkForm", work
97
- work.apply_depositor_metadata(@current_user)
112
+ final_work_data = create_data work_data, work_form, work
113
+ work.apply_depositor_metadata(current_user)
98
114
  work.attributes = final_work_data
99
115
  work.save
100
116
  create_files(work, index)
@@ -104,7 +120,7 @@ module CdmMigrator
104
120
 
105
121
  def create_data data, type, object
106
122
  final_data = {}
107
- accepted_terms = Object.const_get(type).required_fields + Object.const_get(type).secondary_terms
123
+ accepted_terms = Object.const_get(type).required_fields + secondary_terms(type)
108
124
  data.each do |key, att|
109
125
  if(att.nil? || att.empty? || key.to_s.include?("object_type") || !accepted_terms.include?(key.to_sym) )
110
126
  next
@@ -136,7 +152,7 @@ module CdmMigrator
136
152
  @files[index].each do |file_data|
137
153
  url = file_data.delete('url')
138
154
  title = file_data.delete('title')
139
- final_file_data = create_data file_data, "Hyrax::FileSetForm", file
155
+ final_file_data = create_data file_data, file_form, file
140
156
  create_file_from_url(url, title, work, final_file_data)
141
157
  end
142
158
  end
@@ -153,4 +169,4 @@ module CdmMigrator
153
169
  operation_type: "Attach Remote File")
154
170
  end
155
171
  end
156
- end
172
+ end
@@ -5,7 +5,6 @@ class CsvUploadJob < ActiveJob::Base
5
5
  def perform(csv, mvs, current_user)
6
6
  @csv = CSV.parse(File.read(csv), headers: true, encoding: 'utf-8').map(&:to_hash)
7
7
  @mvs = mvs
8
- @current_user = current_user
9
8
  @works = []
10
9
  @files = {}
11
10
  @csv.each do |row|
@@ -24,11 +23,28 @@ class CsvUploadJob < ActiveJob::Base
24
23
  end
25
24
 
26
25
  private
26
+
27
+ def work_form
28
+ Module.const_get("Hyrax::#{params[:work]}Form") rescue nil || Module.const_get("Hyrax::Forms::WorkForm")
29
+ end
30
+
31
+ def file_form
32
+ Module.const_get("Hyrax::FileSetForm") rescue nil || Module.const_get("Hyrax::Forms::FileSetEditForm")
33
+ end
34
+
35
+ def secondary_terms form_name
36
+ form_name.terms - form_name.required_fields -
37
+ [:visibility_during_embargo, :embargo_release_date,
38
+ :visibility_after_embargo, :visibility_during_lease,
39
+ :lease_expiration_date, :visibility_after_lease, :visibility,
40
+ :thumbnail_id, :representative_id, :ordered_member_ids,
41
+ :collection_ids, :in_works_ids, :admin_set_id, :files, :source, :member_of_collection_ids]
42
+ end
27
43
 
28
44
  def create_file_from_url(url, file_name, work, file_data)
29
45
  ::FileSet.new(import_url: url, label: file_name) do |fs|
30
46
  fs.save
31
- actor = Hyrax::Actors::FileSetActor.new(fs, @current_user)
47
+ actor = Hyrax::Actors::FileSetActor.new(fs, current_user)
32
48
  actor.create_metadata#(work, visibility: work.visibility)
33
49
  actor.attach_file_to_work(work)
34
50
  #byebug
@@ -36,7 +52,7 @@ class CsvUploadJob < ActiveJob::Base
36
52
  fs.save!
37
53
  uri = URI.parse(url.gsub(' ','%20'))
38
54
  if uri.scheme == 'file'
39
- IngestLocalFileJob.perform_later(fs, uri.path.gsub('%20',' '), @current_user)
55
+ IngestLocalFileJob.perform_later(fs, uri.path.gsub('%20',' '), current_user)
40
56
  else
41
57
  ImportUrlJob.perform_later(fs, log(actor.user))
42
58
  end
@@ -68,7 +84,7 @@ class CsvUploadJob < ActiveJob::Base
68
84
  @works.each do |work_data|
69
85
  work = Object.const_get(work_data.first.last).new#delete("object_type")).new
70
86
  status_after, embargo_date, lease_date = nil, nil, nil
71
- final_work_data = create_data work_data, "Hyrax::GenericWorkForm", work
87
+ final_work_data = create_data work_data, work_form, work
72
88
  work.apply_depositor_metadata(@current_user)
73
89
  work.attributes = final_work_data
74
90
  work.save
@@ -79,7 +95,7 @@ class CsvUploadJob < ActiveJob::Base
79
95
 
80
96
  def create_data data, type, object
81
97
  final_data = {}
82
- accepted_terms = Object.const_get(type).required_fields + Object.const_get(type).secondary_terms
98
+ accepted_terms = Object.const_get(type).required_fields + secondary_terms(type)
83
99
  data.each do |key, att|
84
100
  if(att.nil? || att.empty? || key.to_s.include?("object_type") || !accepted_terms.include?(key.to_sym) )
85
101
  next
@@ -111,7 +127,7 @@ class CsvUploadJob < ActiveJob::Base
111
127
  @files[index].each do |file_data|
112
128
  url = file_data.delete('url')
113
129
  title = file_data.delete('title')
114
- final_file_data = create_data file_data, "Hyrax::FileSetForm", file
130
+ final_file_data = create_data file_data, file_form, file
115
131
  create_file_from_url(url, title, work, final_file_data)
116
132
  end
117
133
  end
@@ -120,4 +136,4 @@ class CsvUploadJob < ActiveJob::Base
120
136
  Hyrax::Operation.create!(user: user,
121
137
  operation_type: "Attach Remote File")
122
138
  end
123
- end
139
+ end
@@ -1,9 +1,9 @@
1
- <%= form_tag cdm_mappings_path, method: "get" do %>
2
- <%= select_tag 'collection', options_for_select(@collections) %>
3
- <br />
4
- <%= select_tag 'work', options_for_select(@available_concerns) %>
5
- <br />
6
- Use Local File Storage: <%= check_box_tag 'file_system', 'true', false %>
7
- <br />
8
- <%= submit_tag 'choose mappings' %>
1
+ <%= form_tag cdm_mappings_path, method: "post", multipart: true do %>
2
+ <table>
3
+ <tr><td>Collection: </td><td><%= select_tag 'collection', options_for_select(@collections) %></td></tr>
4
+ <tr><td>Work: </td><td><%= select_tag 'work', options_for_select(@available_concerns) %></td></tr>
5
+ <tr><td>Use Local File Storage: </td><td><%= check_box_tag 'file_system', 'true', false %></td></tr>
6
+ <tr><td>Template to Apply: </td><td><%= file_field_tag 'template' %> (.yml file)</td></tr>
7
+ </table>
8
+ <%= submit_tag 'choose mappings' %>
9
9
  <% end %>
@@ -9,6 +9,7 @@ table td{
9
9
  border:1px solid black;
10
10
  }
11
11
  </style>
12
+
12
13
  <%= form_tag cdm_generate_path.gsub("generate","generate.csv") do %>
13
14
  <%= hidden_field_tag "collection", params[:collection] %>
14
15
  <%= hidden_field_tag "file_system", params[:file_system] %>
@@ -21,13 +22,30 @@ border:1px solid black;
21
22
  </td>
22
23
  <td>
23
24
  <h3>Choose one</h3>
24
- <%= label_tag 'applies to boths compound objects and children:' %><%= select_tag "mappings[#{i}][hydra]", options_for_select(@terms), include_blank: true %><br>
25
- <%= label_tag 'applies only to compound objects: ' %><%= select_tag "mappings[#{i}][hydrac]", options_for_select(@work_only), include_blank: true %>
25
+ <%= label_tag 'applies to boths compound objects and children:' %><%= select_tag "mappings[#{i}][hydra]", options_for_select(@terms, @yaml.nil? ? "" : @yaml[t.last]['hydra']), include_blank: true %><br>
26
+ <%= label_tag 'applies only to compound objects: ' %><%= select_tag "mappings[#{i}][hydrac]", options_for_select(@work_only, @yaml.nil? ? "" : @yaml[t.last]['hydrac']), include_blank: true %>
26
27
  </td>
27
28
  </tr>
28
29
  <% end %>
29
30
  </table>
30
31
  <%= select_tag "mappings_url", options_for_select(@dirs) if @cdm_dirs %>
31
32
  <%= hidden_field_tag "work", params[:work] %>
32
- <%= submit_tag 'generate csv' %>
33
+ <%= submit_tag 'generate csv'%>
33
34
  <% end %>
35
+
36
+ <%= button_tag "Download Template", { "onclick" => "template()" } %>
37
+
38
+ <script type="text/javascript">
39
+ function template() {
40
+ document.getElementsByTagName("form")[0].action = "<%= cdm_template_path.gsub("template","template.yml") %>";
41
+ document.getElementsByName("commit")[0].click();
42
+ document.getElementsByTagName("form")[0].action = "<%= cdm_generate_path.gsub("generate","generate.csv") %>";
43
+ }
44
+
45
+ inputs = document.getElementsByTagName('option');
46
+ for (var i = 0; i < inputs.length; i++) {
47
+ if (inputs[i].hasAttribute('selected')) {
48
+ inputs[i].selected = true;
49
+ }
50
+ }
51
+ </script>
data/config/routes.rb CHANGED
@@ -4,6 +4,7 @@ CdmMigrator::Engine.routes.draw do
4
4
  get '/csv/generate', to: 'csv#generate', as: 'csv_generate'
5
5
 
6
6
  get 'cdm/collection', to: 'cdm#collection'
7
- get 'cdm/mappings/', to: 'cdm#mappings', as: 'cdm_mappings'
7
+ post 'cdm/mappings/', to: 'cdm#mappings', as: 'cdm_mappings'
8
8
  post 'cdm/generate/', to: 'cdm#generate', as: 'cdm_generate'
9
+ post 'cdm/template', to: 'cdm#template', as: 'cdm_template'
9
10
  end
@@ -1,4 +1,4 @@
1
- require 'hyrax'
1
+
2
2
 
3
3
  module CdmMigrator
4
4
  class Engine < ::Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module CdmMigrator
2
- VERSION = '0.1.3'
2
+ VERSION = '1.4.1'
3
3
  end
@@ -2,4 +2,20 @@ cdm_url: 'http://your-content-dm-host'
2
2
  cdm_port: 8080
3
3
  cdm_dirs:
4
4
  dir1: '/dir1/path/goes/here'
5
- dir2: '/dir2/path/goes/here'
5
+ dir2: '/dir2/path/goes/here'
6
+ api: 'front'
7
+ default_fields:
8
+ - title
9
+ - creator
10
+ - keyword
11
+ - license
12
+ - resource_type
13
+ - contributor
14
+ - description
15
+ - publisher
16
+ - date_created
17
+ - subject
18
+ - language
19
+ - identifier
20
+ - based_near
21
+ - related_url
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cdm_migrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sephirothkod
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2018-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.0'
27
- - !ruby/object:Gem::Dependency
28
- name: hyrax
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">"
32
- - !ruby/object:Gem::Version
33
- version: 1.0.0.rc1
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">"
39
- - !ruby/object:Gem::Version
40
- version: 1.0.0.rc1
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: engine_cart
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -134,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
120
  version: '0'
135
121
  requirements: []
136
122
  rubyforge_project:
137
- rubygems_version: 2.4.5
123
+ rubygems_version: 2.6.11
138
124
  signing_key:
139
125
  specification_version: 4
140
126
  summary: ContentDM to Hyrax migrator.