Class: Card::Reference
- Defined in:
- lib/card/reference.rb
Class Method Summary collapse
- .delete_all_from(card) ⇒ Object
- .delete_all_to(card) ⇒ Object
- .delete_missing_referers ⇒ Object
- .repair_all ⇒ Object
- .repair_missing_referees ⇒ Object
- .update_existing_key(card, name = nil) ⇒ Object
- .update_on_delete(card) ⇒ Object
- .update_on_rename(card, newname, update_referers = false) ⇒ Object
Instance Method Summary collapse
Class Method Details
.delete_all_from(card) ⇒ Object
14 15 16 |
# File 'lib/card/reference.rb', line 14 def delete_all_from card delete_all :referer_id => card.id end |
.delete_all_to(card) ⇒ Object
18 19 20 |
# File 'lib/card/reference.rb', line 18 def delete_all_to card where( :referee_id => card.id ).update_all :present=>0, :referee_id => nil end |
.delete_missing_referers ⇒ Object
47 48 49 |
# File 'lib/card/reference.rb', line 47 def delete_missing_referers joins('LEFT JOIN cards ON card_references.referer_id = cards.id').where('cards.id IS NULL OR cards.trash IS TRUE').delete_all end |
.repair_all ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/card/reference.rb', line 51 def repair_all delete_missing_referers Card.where(:trash=>false).find_each do |card| Rails.logger.info "\nRepairing references for '#{card.name}' (id: #{card.id}) ... " card.update_references end end |
.repair_missing_referees ⇒ Object
43 44 45 |
# File 'lib/card/reference.rb', line 43 def repair_missing_referees joins('LEFT JOIN cards ON card_references.referee_id = cards.id').where('(cards.id IS NULL OR cards.trash IS TRUE) AND referee_id IS NOT NULL').update_all :referee_id=>nil end |
.update_existing_key(card, name = nil) ⇒ Object
22 23 24 25 |
# File 'lib/card/reference.rb', line 22 def update_existing_key card, name=nil key = (name || card.name).to_name.key where( :referee_key => key ).update_all :present => 1, :referee_id => card.id end |
.update_on_delete(card) ⇒ Object
38 39 40 41 |
# File 'lib/card/reference.rb', line 38 def update_on_delete card delete_all_from card delete_all_to card end |
.update_on_rename(card, newname, update_referers = false) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/card/reference.rb', line 27 def update_on_rename card, newname, update_referers=false if update_referers # not currentlt needed because references are deleted and re-created in the process of adding new revision #where( :referee_id=>card.id ).update_all :referee_key => newname.to_name.key else delete_all_to card end #Rails.logger.warn "update on rename #{card.inspect}, #{newname}, #{update_referers}" update_existing_key card, newname end |