module ModelSearcher
Constants
- VERSION
Public Class Methods
file_path(file_path=nil)
click to toggle source
# File lib/model_searcher.rb, line 12 def file_path(file_path=nil) @file_path ||= if defined? Rails "#{Rails.root}/app/models" else file_path end end
find(table_name)
click to toggle source
# File lib/model_searcher.rb, line 8 def find(table_name) models[table_name.to_sym] end
Private Class Methods
models()
click to toggle source
# File lib/model_searcher.rb, line 21 def models @models ||= require_models end
require_models()
click to toggle source
# File lib/model_searcher.rb, line 25 def require_models Dir.glob(File.expand_path("#{file_path}/*.rb")).each do |model_file| klass = ActiveSupport::Inflector.classify(File.basename(model_file, '.rb')) require model_file unless Object.constants.include?(klass.to_sym) end constants = Object.constants.map do |name| Object.const_get(name) unless name == :Config end constants.each_with_object({}) do |constans, models| if constans.class == Class && constans < ActiveRecord::Base && constans.abstract_class?.! models[constans.table_name.to_sym] = constans end end end