Module: Redmineup::ActsAsDraftable::InstanceMethods
- Defined in:
- lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb
Overview
ClassMethods
Instance Method Summary collapse
- #clear_draft ⇒ Object
- #draft ⇒ Object
- #dump_to_draft ⇒ Object
- #last_draft ⇒ Object
- #load_from_draft(string) ⇒ Object
- #parent_for_draft ⇒ Object
- #save_draft ⇒ Object
- #update_draft(attributes) ⇒ Object
Instance Method Details
#clear_draft ⇒ Object
142 143 144 145 146 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 142 def clear_draft if last_draft && last_draft.destroy self.draft_id = nil end end |
#draft ⇒ Object
110 111 112 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 110 def draft Draft.find_by_id(draft_id) end |
#dump_to_draft ⇒ Object
129 130 131 132 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 129 def dump_to_draft instance_values.default = nil Marshal.dump(instance_values) end |
#last_draft ⇒ Object
120 121 122 123 124 125 126 127 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 120 def last_draft @last_draft ||= Redmineup::ActsAsDraftable::Draft.where( target_type: self.class.name, parent_type: parent_for_draft.try(:class).try(:to_s), parent_id: parent_for_draft.try(:id), user_id: User.current.try(:id) ).last end |
#load_from_draft(string) ⇒ Object
134 135 136 137 138 139 140 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 134 def load_from_draft(string) values = Marshal.load(string) values.each do |name, value| instance_variable_set("@#{name}", value) end end |
#parent_for_draft ⇒ Object
114 115 116 117 118 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 114 def parent_for_draft return self if id.present? self.class.draft_parent.present? ? send(self.class.draft_parent) : self end |
#save_draft ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 89 def save_draft return false unless new_record? || changed? draft = self.draft || Draft.new draft.data = dump_to_draft draft.user_id = User.current.try(:id) draft.parent = parent_for_draft draft.target_type = self.class.name result = draft.save self.draft_id = draft.id if result result end |
#update_draft(attributes) ⇒ Object
103 104 105 106 107 108 |
# File 'lib/redmineup/acts_as_draftable/up_acts_as_draftable.rb', line 103 def update_draft(attributes) with_transaction_returning_status do assign_attributes(attributes) save_draft end end |