Module: Genealogy::CurrentSpouseMethods
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/genealogy/current_spouse_methods.rb
Overview
Module CurrentSpouseMethods provides methods to manage and query current spouse. It's included by the genealogy enabled AR model
Instance Method Summary collapse
-
#add_current_spouse(spouse) ⇒ Boolean
add current spouse updating receiver and argument individuals foreign_key in a transaction.
-
#ineligible_current_spouses ⇒ Array
list of individual who cannot be current spouse.
-
#remove_current_spouse ⇒ Boolean
remove current spouse resetting receiver and argument individuals foreign_key in a transaction.
Instance Method Details
#add_current_spouse(spouse) ⇒ Boolean
add current spouse updating receiver and argument individuals foreign_key in a transaction
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/genealogy/current_spouse_methods.rb', line 9 def add_current_spouse(spouse) raise_unless_current_spouse_enabled check_incompatible_relationship(:current_spouse,spouse) if gclass.perform_validation_enabled self.current_spouse = spouse spouse.current_spouse = self transaction do spouse.save! save! end else transaction do self.update_attribute(:current_spouse,spouse) spouse.update_attribute(:current_spouse,self) end end end |
#ineligible_current_spouses ⇒ Array
list of individual who cannot be current spouse
52 53 54 55 |
# File 'lib/genealogy/current_spouse_methods.rb', line 52 def ineligible_current_spouses raise_unless_current_spouse_enabled self.gclass.send(ssex.to_s.pluralize) end |
#remove_current_spouse ⇒ Boolean
remove current spouse resetting receiver and argument individuals foreign_key in a transaction
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/genealogy/current_spouse_methods.rb', line 32 def remove_current_spouse raise_unless_current_spouse_enabled if gclass.perform_validation_enabled ex_current_spouse = current_spouse current_spouse.current_spouse = nil self.current_spouse = nil transaction do ex_current_spouse.save! save! end else transaction do current_spouse.update_attribute(:current_spouse,nil) self.update_attribute(:current_spouse,nil) end end end |