Class: Sequel::Dataset::DatasetModule

Inherits:
Module
  • Object
show all
Defined in:
lib/sequel/dataset/dataset_module.rb

Overview

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

Direct Known Subclasses

Model::DatasetModule

Class Method Summary collapse

Class Method Details

.def_dataset_caching_method(mod, meth) ⇒ Object

Define a method in the module



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/sequel/dataset/dataset_module.rb', line 28

def self.def_dataset_caching_method(mod, meth)
  mod.send(:define_method, meth) do |name, *args, &block|
    if block
      define_method(name){public_send(meth, *args, &block)}
    else
      key = :"_#{meth}_#{name}_ds"
      define_method(name) do
        cached_dataset(key){public_send(meth, *args)}
      end
    end
  end
end