module AssociationHelper
Public Instance Methods
association_from_key(key)
click to toggle source
# File lib/active_preview/association_helper.rb, line 2 def association_from_key(key) key.to_s.split("_").tap { |arr| arr.delete("attributes") }.join("_") end
association_inverse(parent_class:, child_class:)
click to toggle source
Used to properly set parent in has_many previews
# File lib/active_preview/association_helper.rb, line 16 def association_inverse(parent_class:, child_class:) parent = parent_class.to_s.downcase set = associations(child_class) return parent if set.include? parent set.each do |a| next unless singular? a if class_of_association(klass: child_class, association: a) == parent_class return a end end end
associations(klass)
click to toggle source
# File lib/active_preview/association_helper.rb, line 6 def associations(klass) klass.reflect_on_all_associations.map { |a| a.name.to_s } end
class_of_association(base_class:, key: nil, association: nil)
click to toggle source
# File lib/active_preview/association_helper.rb, line 10 def class_of_association(base_class:, key: nil, association: nil) association = association_from_key(key) if key klass.reflect_on_association(association).klass end
singular?(name)
click to toggle source
# File lib/active_preview/association_helper.rb, line 29 def singular?(name) name.singularize == name end