class Wallaby::ActiveRecord::ModelFinder
Finder to return all the appropriate ActiveRecord
models.
Public Instance Methods
all()
click to toggle source
Return a list of ActiveRecord::Base subclasses that aren't one of the following types:
-
abstract class
-
anonymous class
-
the HABTM relation class
@return [Array<Class>]
# File lib/adapters/wallaby/active_record/model_finder.rb, line 13 def all ::ActiveRecord::Base.descendants.reject do |model_class| defined?(::ApplicationRecord) && model_class == ::ApplicationRecord || model_class.abstract_class? || anonymous?(model_class) || model_class.name.index('HABTM') || invalid_class_name?(model_class) end.sort_by(&:to_s) end
Protected Instance Methods
anonymous?(model_class)
click to toggle source
@param model_class [Class] @see Wallaby::ModuleUtils.anonymous_class?
# File lib/adapters/wallaby/active_record/model_finder.rb, line 27 def anonymous?(model_class) ModuleUtils.anonymous_class?(model_class).tap do |result| Logger.warn "Anonymous class is detected for table #{model_class.try :table_name}" if result end end
invalid_class_name?(model_class)
click to toggle source
To exclude classes that have invalid class name, e.g. primary::SchemaMigration from Rails test @param model_class [Class]
# File lib/adapters/wallaby/active_record/model_finder.rb, line 35 def invalid_class_name?(model_class) model_class.name.constantize false rescue NameError true end