Sha256: 7949377e4cb25c89030344daf4f6b6a9fab02272640950762a1f7c7e93401350

Contents?: true

Size: 977 Bytes

Versions: 51

Compression:

Stored size: 977 Bytes

Contents

require 'active_support'

# Preload all the LHS::Records that are defined in app/models/*
# in order to collect record endpoints and to be able to identify records from hrefs
# and not only from model constant names (which is different to ActiveRecord)
module AutoloadRecords
  extend ActiveSupport::Concern

  included do
    class Engine < Rails::Engine
      initializer 'Load all LHS::Records from app/models/**' do |app|
        Middleware.require_records
        next if app.config.cache_classes

        app.config.middleware.use Middleware
      end

      class Middleware
        def initialize(app)
          @app = app
        end

        def call(env)
          self.class.require_records
          @app.call(env)
        end

        def self.require_records
          Dir.glob(Rails.root.join('app/models/**/*.rb')).each do |file|
            require_dependency file if File.read(file).match('LHS::Record')
          end
        end
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
lhs-15.3.1 lib/lhs/concerns/autoload_records.rb
lhs-15.3.1.pre.fixlhc.1 lib/lhs/concerns/autoload_records.rb
lhs-15.3.0 lib/lhs/concerns/autoload_records.rb
lhs-15.2.5 lib/lhs/concerns/autoload_records.rb
lhs-15.2.4 lib/lhs/concerns/autoload_records.rb
lhs-15.2.3 lib/lhs/concerns/autoload_records.rb
lhs-15.2.3.pre.favorites.1 lib/lhs/concerns/autoload_records.rb
lhs-15.2.2.pre.favorites.1 lib/lhs/concerns/autoload_records.rb
lhs-15.2.2 lib/lhs/concerns/autoload_records.rb
lhs-15.2.1 lib/lhs/concerns/autoload_records.rb
lhs-15.2.0 lib/lhs/concerns/autoload_records.rb
lhs-15.1.1 lib/lhs/concerns/autoload_records.rb
lhs-15.1.0 lib/lhs/concerns/autoload_records.rb
lhs-15.0.2 lib/lhs/concerns/autoload_records.rb
lhs-15.0.1 lib/lhs/concerns/autoload_records.rb
lhs-15.0.0 lib/lhs/concerns/autoload_records.rb
lhs-14.6.5 lib/lhs/concerns/autoload_records.rb
lhs-14.6.4 lib/lhs/concerns/autoload_records.rb
lhs-14.6.3 lib/lhs/concerns/autoload_records.rb
lhs-14.6.2 lib/lhs/concerns/autoload_records.rb