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
121 122 |
# File 'lib/has_draft.rb', line 121 def before_destroy_draft end |
#before_instantiate_draft ⇒ Object
99 100 |
# File 'lib/has_draft.rb', line 99 def before_instantiate_draft end |
#before_replace_with_draft ⇒ Object
111 112 |
# File 'lib/has_draft.rb', line 111 def before_replace_with_draft end |
#copy_attributes_from_draft ⇒ Object
92 93 94 95 96 97 |
# File 'lib/has_draft.rb', line 92 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
85 86 87 88 89 90 |
# File 'lib/has_draft.rb', line 85 def copy_attributes_to_draft self.class.draft_columns.each do |attribute| self.draft.send("#{attribute}=", send(attribute)) end self end |
#destroy_draft! ⇒ Object
114 115 116 117 118 119 |
# File 'lib/has_draft.rb', line 114 def destroy_draft! before_destroy_draft self.draft.destroy if self.draft self.draft(true) end |
#has_draft? ⇒ Boolean
56 57 58 |
# File 'lib/has_draft.rb', line 56 def has_draft? !self.draft.nil? end |
#instantiate_draft ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/has_draft.rb', line 70 def instantiate_draft self.build_draft copy_attributes_to_draft before_instantiate_draft self.draft.tap(&:save) end |
#instantiate_draft! ⇒ Object
79 80 81 82 83 |
# File 'lib/has_draft.rb', line 79 def instantiate_draft! instantiate_draft do |draft| draft.save unless self.new_record? end end |
#replace_with_draft! ⇒ Object
102 103 104 105 106 107 108 109 |
# File 'lib/has_draft.rb', line 102 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
60 61 62 63 64 65 66 67 68 |
# File 'lib/has_draft.rb', line 60 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 |