Sha256: 48dc4721f1806d751023403203dfcc17870fdcf7ffc9d34c72b9f1194b0d1fe7
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
# frozen_string_literal: true require 'active_record' require 'ids_of_all_dependencies' require 'nullify_dependencies' class AssociationWithValue delegate_missing_to :@association def initialize(association, value) @association = association @value = value end end class Model < ActiveRecord::Base include IdsOfAllDependencies include NullifyDependencies self.abstract_class = true def attributes_without_id self.attributes.reject{|k, v| k == "id"} end def associations_hash self.associations.map do |association| [association.name, association] end.to_h end def associations self.class.reflect_on_all_associations.map do |association| value = self.send(association.name) AssociationWithValue.new(association, value) end end def associations_without_belongs_to self.associations.select { |a| a.macro != :belongs_to } end def self.get_model(name) self.subclasses.find{ |m| m.name == name.to_s.camelcase } end def self.get_model_by_table_name(name) self.subclasses.find{ |m| m.table_name == name.to_s } end def self.ids_of_subclasses_entries self.subclasses.map do |subclass| [subclass.name, subclass.all.map(&:id)] if subclass.any? end.compact.to_h end def self.sum_of_subclasses_rows(except: []) self.subclasses.map do |subclass| next 0 if except.include?(subclass.table_name) || except.include?(subclass.name) subclass.all.size end.reduce(:+) end def self.subclasses_counts(except: []) self.subclasses.map do |subclass| next [subclass.name, 0] if except.include?(subclass.table_name) || except.include?(subclass.name) [subclass.name, subclass.all.size] end.to_h end def removed? begin reload false rescue ActiveRecord::RecordNotFound => e true end end end ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.irregular 'abuse', 'abuses' end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
travis-backup-for-v3-0.1.1 | lib/model.rb |
travis-backup-for-v3-0.1.0 | lib/model.rb |