class Dread::MissingGraph
Attributes
clazz[R]
Public Class Methods
new(clazz)
click to toggle source
# File lib/dread/missing_graph.rb, line 5 def initialize(clazz) @clazz = clazz.classify.constantize end
Public Instance Methods
missing_dependables()
click to toggle source
# File lib/dread/missing_graph.rb, line 9 def missing_dependables possesionable_associations.map do |assoc_name, assoc_data| assoc_name if direct_association_with_no_dependents?(assoc_data) end.compact end
Private Instance Methods
direct_association_with_no_dependents?(assoc_data)
click to toggle source
# File lib/dread/missing_graph.rb, line 17 def direct_association_with_no_dependents?(assoc_data) assoc_data.options[:through].nil? && assoc_data.options[:dependent].nil? end
has_many_associations()
click to toggle source
# File lib/dread/missing_graph.rb, line 25 def has_many_associations @has_many_associations ||= begin clazz.reflections.select do |assoc_name, assoc_data| assoc_data.macro == :has_many end end end
has_one_associations()
click to toggle source
# File lib/dread/missing_graph.rb, line 33 def has_one_associations @has_one_associations ||= begin clazz.reflections.select do |assoc_name, assoc_data| assoc_data.macro == :has_one end end end
possesionable_associations()
click to toggle source
# File lib/dread/missing_graph.rb, line 21 def possesionable_associations has_many_associations.merge(has_one_associations) end