Sha256: 00eeaf8a8b828b8b7d77abf8c7afafc7670bf8cd1bbaa25c4d6dac120e13e584
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
module Trax module Core module EagerAutoloadNamespace def self.extended(base) source_file_path = caller[0].partition(":")[0] base.class_eval do extend ::ActiveSupport::Autoload @eager_autoload_filepath = source_file_path end base.autoload_class_names.each do |klass| base.autoload :"#{klass}" end base.eager_load! end def all @all ||= autoload_class_names.map do |klass| const_get(:"#{klass}") end end def autoload_file_paths @autoload_file_paths = ::Dir[module_path.join('*.rb')] end def autoload_class_names @autoload_class_names = autoload_file_paths.map do |path| ::File.basename(path.to_s).split(".rb").shift.try(:classify) end end def eager_autoload_filepath @eager_autoload_filepath end def module_path @module_path ||= ::Pathname.new(::File.path(eager_autoload_filepath).gsub(".rb", "")) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
trax_core-0.0.6 | lib/trax/core/eager_autoload_namespace.rb |
trax_core-0.0.5 | lib/trax/core/eager_autoload_namespace.rb |