Module: WithoutScope::ActsAsRevisable::Revision::ClassMethods

Defined in:
lib/acts_as_revisable/acts/revision.rb

Instance Method Summary collapse

Instance Method Details

#revisable_association_nameObject

Returns the name of the association acts_as_revision creates.



126
127
128
# File 'lib/acts_as_revisable/acts/revision.rb', line 126

def revisable_association_name #:nodoc:
  revisable_class_name.underscore
end

#revisable_classObject

Returns the actual Revisable class based on the #revisable_class_name.



111
112
113
# File 'lib/acts_as_revisable/acts/revision.rb', line 111

def revisable_class #:nodoc:
  self.revisable_revisable_class ||= self.revisable_class_name.constantize
end

#revisable_class_nameObject

Returns the revisable_class_name as configured in acts_as_revisable.



105
106
107
# File 'lib/acts_as_revisable/acts/revision.rb', line 105

def revisable_class_name #:nodoc:
  self.revisable_options.revisable_class_name || self.name.gsub(/Revision/, '')
end

#revision_classObject

Returns the revision_class which in this case is simply self.



116
117
118
# File 'lib/acts_as_revisable/acts/revision.rb', line 116

def revision_class #:nodoc:
  self
end

#revision_class_nameObject

:nodoc:



120
121
122
# File 'lib/acts_as_revisable/acts/revision.rb', line 120

def revision_class_name #:nodoc:
  self.name
end

#revision_cloned_associationsObject

Returns an array of the associations that should be cloned.



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/acts_as_revisable/acts/revision.rb', line 131

def revision_cloned_associations #:nodoc:
  clone_associations = self.revisable_options.clone_associations

  self.revisable_cloned_associations ||= if clone_associations.blank?
    []
  elsif clone_associations.eql? :all
    revisable_class.reflect_on_all_associations.map(&:name)
  elsif clone_associations.is_a? [].class
    clone_associations
  elsif clone_associations[:only]
    [clone_associations[:only]].flatten
  elsif clone_associations[:except]
    revisable_class.reflect_on_all_associations.map(&:name) - [clone_associations[:except]].flatten
  end        
end