Module: HasDraft::InstanceMethods
- Defined in:
- lib/has_draft.rb
Instance Method Summary collapse
- #before_destroy_draft ⇒ Object
- #before_instantiate_draft ⇒ Object
- #before_replace_with_draft ⇒ Object
- #copy_attributes_from_draft ⇒ Object
- #copy_attributes_to_draft ⇒ Object
- #destroy_draft! ⇒ Object
- #has_draft? ⇒ Boolean
- #instantiate_draft ⇒ Object
- #instantiate_draft! ⇒ Object
- #replace_with_draft! ⇒ Object
- #save_to_draft(perform_validation = true) ⇒ Object
Instance Method Details
#before_destroy_draft ⇒ Object
122 123 |
# File 'lib/has_draft.rb', line 122 def before_destroy_draft end |
#before_instantiate_draft ⇒ Object
100 101 |
# File 'lib/has_draft.rb', line 100 def before_instantiate_draft end |
#before_replace_with_draft ⇒ Object
112 113 |
# File 'lib/has_draft.rb', line 112 def before_replace_with_draft end |
#copy_attributes_from_draft ⇒ Object
93 94 95 96 97 98 |
# File 'lib/has_draft.rb', line 93 def copy_attributes_from_draft self.class.draft_columns.each do |attribute| self.send("#{attribute}=", self.draft.send(attribute)) end self end |
#copy_attributes_to_draft ⇒ Object
86 87 88 89 90 91 |
# File 'lib/has_draft.rb', line 86 def copy_attributes_to_draft self.class.draft_columns.each do |attribute| self.draft.send("#{attribute}=", send(attribute)) end self end |
#destroy_draft! ⇒ Object
115 116 117 118 119 120 |
# File 'lib/has_draft.rb', line 115 def destroy_draft! before_destroy_draft self.draft.destroy if self.draft self.draft(true) end |
#has_draft? ⇒ Boolean
57 58 59 |
# File 'lib/has_draft.rb', line 57 def has_draft? !self.draft.nil? end |
#instantiate_draft ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/has_draft.rb', line 71 def instantiate_draft self.build_draft copy_attributes_to_draft before_instantiate_draft self.draft.tap(&:save) end |
#instantiate_draft! ⇒ Object
80 81 82 83 84 |
# File 'lib/has_draft.rb', line 80 def instantiate_draft! instantiate_draft do |draft| draft.save unless self.new_record? end end |
#replace_with_draft! ⇒ Object
103 104 105 106 107 108 109 110 |
# File 'lib/has_draft.rb', line 103 def replace_with_draft! copy_attributes_from_draft before_replace_with_draft self.save unless self.new_record? self end |
#save_to_draft(perform_validation = true) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/has_draft.rb', line 61 def save_to_draft(perform_validation = true) return false if perform_validation and !self.valid? instantiate_draft! unless has_draft? copy_attributes_to_draft self.draft.save(perform_validation) self.reload end |