class Sequel::Dataset::DatasetModule

  1. lib/sequel/dataset/dataset_module.rb
Superclass: Module

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

Methods

Public Class

  1. def_dataset_caching_method

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