Sha256: f59097e3d80c4fa15f3bcac3891acb7cf9e0200b645fd3bd17c5af204e89b355
Contents?: true
Size: 1.2 KB
Versions: 3
Compression:
Stored size: 1.2 KB
Contents
require 'singleton' module RailsConnector module Meta class EagerLoader include Singleton def initialize # Rails.logger.debug "EagerLoader: I am eager to start working" @obj_classes = {} # Rails 3.1 contains a bug that screws attribute loading # attributes are set to assigned classes if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR == 1 RailsConnector::ObjClass.all.each do |obj_class| obj_class.custom_attributes @obj_classes[obj_class.name] = obj_class end else RailsConnector::ObjClass.includes(:custom_attributes_raw).all.each do |obj_class| @obj_classes[obj_class.name] = obj_class end end end def obj_class(name) name = name.to_s if !@obj_classes.fetch(name, nil).nil? # puts "EagerLoader: I've already loaded it: #{name}" @obj_classes[name] else # puts "EagerLoader: NO HAVE: #{name}" @obj_classes[name] ||= RailsConnector::ObjClass.find_by_obj_class_name(name) end end def forget_obj_class(name) @obj_classes.delete(name.to_s) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
infopark_rails_connector_meta-1.6.1 | lib/meta/eager_loader.rb |
infopark_rails_connector_meta-1.5.2 | lib/meta/eager_loader.rb |
infopark_rails_connector_meta-1.5.1 | lib/meta/eager_loader.rb |