Sha256: 8b88388d7c903a6dedcbeb69b7111413a2716935c5922d56746de6a74bdeb334

Contents?: true

Size: 563 Bytes

Versions: 3

Compression:

Stored size: 563 Bytes

Contents

require 'active_record'

module Nullalign
  class Models
    MODEL_DIRECTORY_REGEXP = /models/

    attr_reader :load_path

    def initialize(load_path)
      @load_path = load_path
    end

    def dirs
      load_path.select { |lp| MODEL_DIRECTORY_REGEXP =~ lp.to_s }
    end

    def preload_all
      self.dirs.each do |d|
        Dir.glob(File.join(d, "**", "*.rb")).each do |model_filename|
          Kernel.require_dependency model_filename
        end
      end
    end

    def all
      ActiveRecord::Base.descendants.sort_by(&:name)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
nullalign-0.0.3 lib/nullalign/models.rb
nullalign-0.0.2 lib/nullalign/models.rb
nullalign-0.0.1 lib/nullalign/models.rb