module Sequel::Dataset::DeprecatedSingletonClassMethods
This module implements methods to support deprecated use of extensions registered not using a module. In such cases, for backwards compatibility, Sequel has to use a singleton class for the dataset.
Public Instance Methods
extension(*a)
click to toggle source
Load the extension into a clone of the receiver.
# File lib/sequel/dataset/deprecated_singleton_class_methods.rb, line 9 def extension(*a) c = _clone(:freeze=>false) c.send(:_extension!, a) c.freeze end
with_extend(*mods, &block)
click to toggle source
Extend the cloned of the receiver with the given modules, instead of the default approach of creating a subclass of the receiver's class and including the modules into that.
# File lib/sequel/dataset/deprecated_singleton_class_methods.rb, line 18 def with_extend(*mods, &block) c = _clone(:freeze=>false) c.extend(*mods) unless mods.empty? c.extend(DatasetModule.new(&block)) if block c.freeze end
Private Instance Methods
_extension!(exts)
click to toggle source
Load the extensions into the receiver.
# File lib/sequel/dataset/deprecated_singleton_class_methods.rb, line 28 def _extension!(exts) Sequel.extension(*exts) exts.each do |ext| if pr = Sequel.synchronize{EXTENSIONS[ext]} pr.call(self) else raise(Error, "Extension #{ext} does not have specific support handling individual datasets (try: Sequel.extension #{ext.inspect})") end end self end