Class: Sequel::Dataset::DatasetModule
- 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
Class Method Summary collapse
-
.def_dataset_caching_method(mod, meth) ⇒ Object
Define a method in the module.
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 |