class ApplicationRecord < ActiveRecord::Base self.abstract_class = true QI_DYNAMICS_CORE = ' #START QI_DYNAMICS_CORE QI_DYNAMICS.each do |s| if true define_method("#{s}") { return eval("!self.ac_#{s} ? self.ca_#{s} : self.ac_#{s}") } else puts "QI DYNAMICS : pas de méthode pour ca_#{s}" end end def qi_dynamics_cache puts "qi_dynamics_cache" if self.methods.include?(:to_no_archive) self.to_no_archive.each do |noc| eval("self.ac_#{noc} = nil") end end QI_DYNAMICS.each do |s| if true eval("self.cc_#{s} = self.#{s}") end end end after_validation :qi_dynamics_cache def archive_now self.qi_dynamics_cache self.archived = true QI_DYNAMICS.each do |s| eval("self.ac_#{s} = self.cc_#{s} ") end self.personalised_archive if self.methods.include?(:personalised_archive) self.save end def unarchive_now self.archived = false self.qi_dynamics_cache QI_DYNAMICS.each do |s| eval("self.ac_#{s} = nil ") end self.personalised_unarchive if self.methods.include?(:personalised_unarchive) self.save end #END QI_DYNAMICS_CORE ' end