Module: DraftPunk::Model::ActiveRecordClassMethods

Defined in:
lib/activerecord/activerecord_class_methods.rb

Instance Method Summary collapse

Instance Method Details

#draft_target_associationsArray

List of association names this model is configured to have drafts for

Returns:

  • (Array)


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_callbacktrue

Callback runs after save to set the approved version id on the draft object.

Returns:

  • (true)


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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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