class HandlerResource < ActiveRecord::Base acts_as_versionable nonversionable_attributes: [:create_count, :accept_count, :decline_count, :created_revisions_count, :accepted_revisions_count, :declined_revisions_count, :has_been_created, :accepted, :declined] after_creating_a_version :increment_create_count after_creating_a_version :created, only: :initial after_creating_a_version :increment_created_revision_count, only: :revision after_accepting_a_version :increment_accept_count after_accepting_a_version :accept, only: :initial after_accepting_a_version :increment_accepted_revision_count, only: :revision after_declining_a_version :increment_decline_count after_declining_a_version :decline, only: :initial after_declining_a_version :increment_declined_revision_count, only: :revision def increment_create_count increment(:create_count) save end def created update_attribute(:has_been_created, true) end def increment_created_revision_count increment(:created_revisions_count) save end def increment_accept_count increment(:accept_count) save end def accept update_attribute(:accepted, true) end def increment_accepted_revision_count increment(:accepted_revisions_count) save end def increment_decline_count increment(:decline_count) save end def decline update_attribute(:declined, true) end def increment_declined_revision_count increment(:declined_revisions_count) save end end