class DirtySeed::DataModel
Represents the data model
Attributes
models[W]
seeders[W]
Public Class Methods
new()
click to toggle source
Initializes an instance @return [DirtySeed::DataModel]
# File lib/dirty_seed/data_model.rb, line 12 def initialize Rails.application.eager_load! end
Public Instance Methods
active_record_models()
click to toggle source
Returns an ApplicationRecord inherited classes @return [Array<Class>] a class inheriting from ApplicationRecord
# File lib/dirty_seed/data_model.rb, line 53 def active_record_models ::ApplicationRecord.descendants.reject(&:abstract_class) end
logger()
click to toggle source
Returns the logger @return [DirtySeed::Logger]
# File lib/dirty_seed/data_model.rb, line 18 def logger DirtySeed::Logger.instance end
models()
click to toggle source
Creates and returns dirty models @return [Array<DirtySeed::Model>]
# File lib/dirty_seed/data_model.rb, line 41 def models @models ||= DirtySeed::Sorter.new(unsorted_models).sort end
seed(count, verbose: false)
click to toggle source
Seeds the database with dirty instances @param count [Integer] count of record to seed for each model @param verbose [Boolean] true if logs should be outputed @return [void]
# File lib/dirty_seed/data_model.rb, line 26 def seed(count, verbose: false) logger.verbose = verbose # check if ApplicationRecord is defined first (or raise error) ::ApplicationRecord && seeders.each { |seeder| seeder.seed(count) } logger.summary(seeders) end
seeders()
click to toggle source
Creates and returns a seeder for each model @return [Array<SirtySeed::Seeder>]
# File lib/dirty_seed/data_model.rb, line 35 def seeders @seeders ||= models.map { |model| DirtySeed::Seeder.new(model) } end
unsorted_models()
click to toggle source
Returns ApplicationRecord inherited classes sorted by their associations @return [Array<Class>] a class inheriting from ApplicationRecord
# File lib/dirty_seed/data_model.rb, line 47 def unsorted_models active_record_models.map { |active_record_model| DirtySeed::Model.new(active_record_model) } end