This Module subclass is used by Database#extend_datasets
and Dataset#with_extend
to add dataset methods to classes. It adds some helper methods inside the module that can define named methods on the dataset instances which do specific actions. For example:
DB.extend_datasets do order :by_id, :id select :with_id_and_name, :id, :name where :active, :active end DB[:table].active.with_id_and_name.by_id # SELECT id, name FROM table WHERE active ORDER BY id
Public Class methods
def_dataset_caching_method(mod, meth)
Define a method in the module
[show source]
# File lib/sequel/dataset/dataset_module.rb 28 def self.def_dataset_caching_method(mod, meth) 29 mod.send(:define_method, meth) do |name, *args, &block| 30 if block 31 define_method(name){public_send(meth, *args, &block)} 32 else 33 key = :"_#{meth}_#{name}_ds" 34 define_method(name) do 35 cached_dataset(key){public_send(meth, *args)} 36 end 37 end 38 end 39 end