module Sequel::Plugins

Empty namespace that plugins should use to store themselves, so they can be loaded via Model.plugin.

Plugins should be modules with one of the following conditions:

Public Class Methods

after_set_dataset(mod, meth) click to toggle source

Add method to mod that overrides set_dataset to call the method afterward.

Calls superclass method
# File lib/sequel/model/plugins.rb, line 41
def self.after_set_dataset(mod, meth)
  mod.send(:define_method, :set_dataset) do |*a|
    r = super(*a)
    send(meth)
    r
  end
end
def_dataset_methods(mod, meths) click to toggle source

In the given module mod, define methods that are call the same method on the dataset. This is designed for plugins to define dataset methods inside ClassMethods that call the implementations in DatasetMethods.

# File lib/sequel/model/plugins.rb, line 26
def self.def_dataset_methods(mod, meths)
  Array(meths).each do |meth|
    mod.class_eval("def #{meth}(*args, &block); dataset.#{meth}(*args, &block) end", __FILE__, __LINE__)
  end
end
inherited_instance_variables(mod, hash) click to toggle source

Add method to mod that overrides ::inherited_instance_variables to include the values in this hash.

Calls superclass method
# File lib/sequel/model/plugins.rb, line 34
def self.inherited_instance_variables(mod, hash)
  mod.send(:define_method, :inherited_instance_variables) do ||
    super().merge!(hash)
  end
end