class Shorter::ActiveRecord::TablesAndModels

Attributes

loaded[R]
tables_and_models[R]

Public Class Methods

new() click to toggle source
# File lib/shorter/active_record/tables_and_models.rb, line 10
def initialize
  load!
end

Public Instance Methods

load!() click to toggle source
# File lib/shorter/active_record/tables_and_models.rb, line 14
def load!
  models = ::ActiveRecord::Base.send(:subclasses)
  @tables_and_models =
    {}.tap do |tables_and_models|
      models.each { |model| tables_and_models[model.table_name] = model }
    end
end
model(table_name) click to toggle source
# File lib/shorter/active_record/tables_and_models.rb, line 29
def model(table_name)
  loaded || reload!
  tables_and_models[table_name.to_s.pluralize]
end
reload!() click to toggle source
# File lib/shorter/active_record/tables_and_models.rb, line 22
def reload!
  unless tables_and_models.values.size == ::ActiveRecord::Base.send(:subclasses).size
    @loaded = true
    load!
  end
end