Module: DraftPunk::Model::ActiveRecordClassMethods
- Defined in:
- lib/activerecord/activerecord_class_methods.rb
Instance Method Summary collapse
-
#draft_target_associations ⇒ Array
List of association names this model is configured to have drafts for.
-
#set_approved_version_id_callback ⇒ true
Callback runs after save to set the approved version id on the draft object.
-
#tracks_approved_version? ⇒ Boolean
Whether this model is configured to track the approved version of a draft object.
-
#tracks_approved_version_history? ⇒ Boolean
Whether this model is configured to store previously-approved versions of the model.
Instance Method Details
#draft_target_associations ⇒ Array
List of association names this model is configured to have drafts for
6 7 8 9 10 11 12 |
# File 'lib/activerecord/activerecord_class_methods.rb', line 6 def draft_target_associations targets = if const_defined?(:CREATES_NESTED_DRAFTS_FOR) && const_get(:CREATES_NESTED_DRAFTS_FOR).is_a?(Array) const_get(:CREATES_NESTED_DRAFTS_FOR).compact else default_draft_target_associations end.map(&:to_sym) end |
#set_approved_version_id_callback ⇒ true
Callback runs after save to set the approved version id on the draft object.
33 34 35 36 37 38 39 |
# File 'lib/activerecord/activerecord_class_methods.rb', line 33 def set_approved_version_id_callback lambda do |live_obj, draft_obj| draft_obj.approved_version_id = live_obj.id if draft_obj.respond_to?(:approved_version_id) draft_obj.temporary_approved_object = live_obj true end end |
#tracks_approved_version? ⇒ Boolean
Whether this model is configured to track the approved version of a draft object. This will be true if the model has an approved_version_id column
18 19 20 |
# File 'lib/activerecord/activerecord_class_methods.rb', line 18 def tracks_approved_version? column_names.include? 'approved_version_id' end |
#tracks_approved_version_history? ⇒ Boolean
Whether this model is configured to store previously-approved versions of the model. This will be true if the model has an current_approved_version_id column
26 27 28 |
# File 'lib/activerecord/activerecord_class_methods.rb', line 26 def tracks_approved_version_history? column_names.include?('current_approved_version_id') end |