Method: DataActive::Parser#destroy

Defined in:
lib/data_active/parser.rb

#destroy(klass = self.root_klass) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/data_active/parser.rb', line 125

def destroy(klass = self.root_klass)
  @destroyed ||= []
  if options_include? :any, [:destroy, :sync]
    klass.reflect_on_all_associations.each do |a|
      if [:has_many, :has_many_and_belongs_to, :has_one].include? a.macro and @destroyed.exclude? a.klass.name
        @destroyed << a.klass.name
        destroy(a.klass)
      end
    end

    destroy_records(klass)
    @destroyed << klass.name
  end
end