class AutoloadRecords::Engine::Middleware
Public Class Methods
model_files()
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 30 def self.model_files Dir.glob(Rails.root.join('app', 'models', '**', '*.rb')) end
new(app)
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 21 def initialize(app) @app = app end
require_direct_inheritance()
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 34 def self.require_direct_inheritance model_files.sort.map do |file| next unless File.read(file).match('LHS::Record') require_dependency file file.split('models/').last.gsub('.rb', '').classify end.compact end
require_inheriting_records(parents)
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 42 def self.require_inheriting_records(parents) model_files.each do |file| file_content = File.read(file) next if parents.none? { |parent| file_content.match(/\b#{parent}\b/) } next if file_content.match?('extend ActiveSupport::Concern') require_dependency file end end
require_records()
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 51 def self.require_records require_inheriting_records(require_direct_inheritance) end
Public Instance Methods
call(env)
click to toggle source
# File lib/lhs/concerns/autoload_records.rb, line 25 def call(env) self.class.require_records @app.call(env) end