Skip to content

Commit

Permalink
cosmetics, and don't hide waaay to long methods
Browse files Browse the repository at this point in the history
  • Loading branch information
mjy committed Sep 12, 2018
1 parent bb3b9c1 commit 78c898c
Showing 1 changed file with 17 additions and 20 deletions.
37 changes: 17 additions & 20 deletions app/models/person.rb
Expand Up @@ -169,8 +169,6 @@ def levenshtein_similar(cutoff = 4)
Person.where('levenshtein(last_name, ?) < ? and levenshtein(first_name, ?) < ?', last_name, cutoff, first_name, cutoff)
end

# rubocop:disable Metrics/BlockNesting
# rubocop:disable Metrics/MethodLength
# @param [Integer] person_id
# @return [Boolean]
# true if all records updated, false if any one failed (all or none)
Expand All @@ -184,12 +182,13 @@ def merge_with(person_id)
# rubocop:disable Rails/SaveBang
Role.where(person_id: r_person.id).update(person: self) # update merge person's roles to old
# rubocop:enable Rails/SaveBang
l_person_hash = self.annotations_hash
l_person_hash = annotations_hash

unless r_person.first_name.blank?
if self.first_name.blank?
self.update(first_name: r_person.first_name)
if first_name.blank?
update(first_name: r_person.first_name)
else
if self.first_name != r_person.first_name
if first_name != r_person.first_name
# create a first_name alternate_value of the r_person first name
skip_av = false
av_list = l_person_hash['alternate values']
Expand All @@ -205,13 +204,15 @@ def merge_with(person_id)
end
end

AlternateValue::AlternateSpelling.create!(alternate_value_object_type: 'Person',
value: r_person.first_name,
alternate_value_object_attribute: 'first_name',
alternate_value_object_id: id) unless skip_av
AlternateValue::AlternateSpelling.create!(
alternate_value_object_type: 'Person',
value: r_person.first_name,
alternate_value_object_attribute: 'first_name',
alternate_value_object_id: id) unless skip_av
end
end
end

unless r_person.last_name.blank?
if self.last_name.blank?
self.update(last_name: r_person.last_name)
Expand Down Expand Up @@ -240,6 +241,7 @@ def merge_with(person_id)
end
end
end

r_person.annotations_hash.each do |r_kee, r_objects|
r_objects.each do |r_o|
skip = false
Expand Down Expand Up @@ -288,24 +290,22 @@ def merge_with(person_id)
skip
end
unless skip
# r_err = r_o
r_o.annotated_object = self
r_o.save!
# r_o
end
end
end

# TODO: handle prefix and suffix
if self.prefix.blank?
self.prefix = r_person.prefix
if prefix.blank?
write_attribute(:prefix, r_person.prefix)
else
unless r_person.prefix.blank?
# What to do when both have some content?
end
end

if self.suffix.blank?
if suffix.blank?
self.suffix = r_person.suffix
else
unless r_person.suffix.blank?
Expand All @@ -314,15 +314,15 @@ def merge_with(person_id)
end

# TODO: handle years attributes
if self.year_born.nil?
if year_born.nil?
self.year_born = r_person.year_born
else
unless r_person.year_born.nil?
# What to do when both have some (different) numbers?
end
end

if self.year_died.nil?
if year_died.nil?
self.year_died = r_person.year_died
else
unless r_person.year_died.nil?
Expand Down Expand Up @@ -359,9 +359,6 @@ def merge_with(person_id)
true
end

# rubocop:enable Metrics/BlockNesting
# rubocop:enable Metrics/MethodLength

# @return [Boolean]
def is_determiner?
determiner_roles.to_a.length > 0
Expand Down

0 comments on commit 78c898c

Please sign in to comment.