module Rubinjam::ModuleAutoloadFix
Public Class Methods
included(base)
click to toggle source
# File lib/rubinjam/internal.rb, line 40 def self.included(base) base.class_eval do def rubinjam_autload @rubinjam_autload ||= {} end alias autoload_without_rubinjam autoload def autoload(const, file) normalized_file = Rubinjam.normalize_file(file) if Rubinjam::LIBRARIES[normalized_file] rubinjam_autload[const] = normalized_file else autoload_without_rubinjam(const, file) end end alias const_missing_without_rubinjam const_missing def const_missing(const) # do not load twice / go into infitire loops @rubinjam_tried_const_missing ||= {} if @rubinjam_tried_const_missing[const] return const_missing_without_rubinjam(const) end @rubinjam_tried_const_missing[const] = true # try to find autoload in current module or nesting nesting, file = Rubinjam.file_from_nesting(self, const) if file require file nesting.const_get(const) else const_missing_without_rubinjam(const) end end end end
Public Instance Methods
autoload(const, file)
click to toggle source
# File lib/rubinjam/internal.rb, line 47 def autoload(const, file) normalized_file = Rubinjam.normalize_file(file) if Rubinjam::LIBRARIES[normalized_file] rubinjam_autload[const] = normalized_file else autoload_without_rubinjam(const, file) end end
const_missing(const)
click to toggle source
# File lib/rubinjam/internal.rb, line 57 def const_missing(const) # do not load twice / go into infitire loops @rubinjam_tried_const_missing ||= {} if @rubinjam_tried_const_missing[const] return const_missing_without_rubinjam(const) end @rubinjam_tried_const_missing[const] = true # try to find autoload in current module or nesting nesting, file = Rubinjam.file_from_nesting(self, const) if file require file nesting.const_get(const) else const_missing_without_rubinjam(const) end end
rubinjam_autload()
click to toggle source
# File lib/rubinjam/internal.rb, line 42 def rubinjam_autload @rubinjam_autload ||= {} end