Skip to content

Commit bb52234

Browse files
committed
Merge remote-tracking branch 'upstream/master' into clickable_scientific_topics
2 parents c43aa21 + 8241ac0 commit bb52234

4 files changed

Lines changed: 42 additions & 90 deletions
Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
require_relative '../migration_helper'
2+
13
class MigrateMaterialPeople < ActiveRecord::Migration[7.2]
4+
include MigrationHelper
5+
26
class Person < ActiveRecord::Base; end unless defined?(Person)
37

48
def up
@@ -22,34 +26,4 @@ def down
2226
end
2327
puts
2428
end
25-
26-
private
27-
28-
def array_to_people(resource, column_name, role)
29-
return unless resource.respond_to?(:read_attribute)
30-
# Get the raw array from database
31-
people_array = resource.read_attribute(column_name)
32-
return if people_array.blank?
33-
34-
people_array.each do |person_name|
35-
next if person_name.blank?
36-
orcid = nil
37-
name = person_name.gsub(/\s*\(?(orcid: )?(https?:\/\/orcid\.org\/)?(\d\d\d\d-\d\d\d\d-\d\d\d\d-\d\d\d[\dxX])[ \)]*/) do |_|
38-
orcid = $3
39-
''
40-
end.strip
41-
42-
Person.find_or_create_by!(full_name: name, orcid: orcid, resource: resource, role: role)
43-
end
44-
end
45-
46-
def people_to_array(resource, column_name, role)
47-
arr = Person.where(resource: resource, role: role).map do |person|
48-
name = person.full_name
49-
name += " (#{person.orcid})" if person.orcid
50-
name
51-
end
52-
53-
resource.update_column(column_name, arr)
54-
end
5529
end
Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
require_relative '../migration_helper'
2+
13
class MigrateWorkflowPeople < ActiveRecord::Migration[7.2]
4+
include MigrationHelper
5+
26
class Person < ActiveRecord::Base; end unless defined?(Person)
37

48
def up
@@ -22,34 +26,4 @@ def down
2226
end
2327
puts
2428
end
25-
26-
private
27-
28-
def array_to_people(resource, column_name, role)
29-
return unless resource.respond_to?(:read_attribute)
30-
# Get the raw array from database
31-
people_array = resource.read_attribute(column_name)
32-
return if people_array.blank?
33-
34-
people_array.each do |person_name|
35-
next if person_name.blank?
36-
orcid = nil
37-
name = person_name.gsub(/\s*\(?(orcid: )?(https?:\/\/orcid\.org\/)?(\d\d\d\d-\d\d\d\d-\d\d\d\d-\d\d\d[\dxX])[ \)]*/) do |_|
38-
orcid = $3
39-
''
40-
end.strip
41-
42-
Person.find_or_create_by!(full_name: name, orcid: orcid, resource: resource, role: role)
43-
end
44-
end
45-
46-
def people_to_array(resource, column_name, role)
47-
arr = Person.where(resource: resource, role: role).map do |person|
48-
name = person.full_name
49-
name += " (#{person.orcid})" if person.orcid
50-
name
51-
end
52-
53-
resource.update_column(column_name, arr)
54-
end
5529
end
Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
require_relative '../migration_helper'
2+
13
class MigrateLearningPathPeople < ActiveRecord::Migration[7.2]
4+
include MigrationHelper
5+
26
class Person < ActiveRecord::Base; end unless defined?(Person)
37

48
def up
@@ -22,34 +26,4 @@ def down
2226
end
2327
puts
2428
end
25-
26-
private
27-
28-
def array_to_people(resource, column_name, role)
29-
return unless resource.respond_to?(:read_attribute)
30-
# Get the raw array from database
31-
people_array = resource.read_attribute(column_name)
32-
return if people_array.blank?
33-
34-
people_array.each do |person_name|
35-
next if person_name.blank?
36-
orcid = nil
37-
name = person_name.gsub(/\s*\(?(orcid: )?(https?:\/\/orcid\.org\/)?(\d\d\d\d-\d\d\d\d-\d\d\d\d-\d\d\d[\dxX])[ \)]*/) do |_|
38-
orcid = $3
39-
''
40-
end.strip
41-
42-
Person.find_or_create_by!(full_name: name, orcid: orcid, resource: resource, role: role)
43-
end
44-
end
45-
46-
def people_to_array(resource, column_name, role)
47-
arr = Person.where(resource: resource, role: role).map do |person|
48-
name = person.full_name
49-
name += " (#{person.orcid})" if person.orcid
50-
name
51-
end
52-
53-
resource.update_column(column_name, arr)
54-
end
5529
end

db/migration_helper.rb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module MigrationHelper
2+
def array_to_people(resource, column_name, role)
3+
return unless resource.respond_to?(:read_attribute)
4+
# Get the raw array from database
5+
people_array = resource.read_attribute(column_name)
6+
return if people_array.blank?
7+
8+
people_array.each do |person_name|
9+
next if person_name.blank?
10+
orcid = nil
11+
name = person_name.gsub(/\s*\(?(orcid: )?(https?:\/\/orcid\.org\/)?(\d\d\d\d-\d\d\d\d-\d\d\d\d-\d\d\d[\dxX])[ \)]*/) do |_|
12+
orcid = $3
13+
''
14+
end.strip
15+
16+
p = Person.find_or_initialize_by(full_name: name, orcid: orcid, resource: resource, role: role)
17+
p.save!(validate: false) if p.new_record?
18+
end
19+
end
20+
21+
def people_to_array(resource, column_name, role)
22+
arr = Person.where(resource: resource, role: role).map do |person|
23+
name = person.full_name
24+
name += " (#{person.orcid})" if person.orcid
25+
name
26+
end
27+
28+
resource.update_column(column_name, arr)
29+
end
30+
end

0 commit comments

Comments
 (0)