module Prelude::Preloadable
Attributes
prelude_preloader[W]
Public Instance Methods
define_prelude(name, &blk)
click to toggle source
Define how to preload a given method
# File lib/prelude/preloadable.rb, line 26 def define_prelude(name, &blk) prelude_methods[name] = Prelude::Method.new(&blk) define_method(name) do |*args| key = [name, args] return preloaded_values[key] if preloaded_values.key?(key) unless @prelude_preloader @prelude_preloader = Preloader.new(self.class, [self]) end @prelude_preloader.fetch(name, *args) preloaded_values[key] end end
preloaded_values()
click to toggle source
# File lib/prelude/preloadable.rb, line 10 def preloaded_values @preloaded_values ||= {} end
prelude_methods()
click to toggle source
Mapping of field name to block for resolving a given preloader
# File lib/prelude/preloadable.rb, line 21 def prelude_methods @prelude_methods ||= {} end
set_preloaded_value_for(name, args, result)
click to toggle source
# File lib/prelude/preloadable.rb, line 14 def set_preloaded_value_for(name, args, result) key = [name, args] preloaded_values[key] = result end