Class: Sequel::Model::DatasetModule
- Defined in:
- lib/sequel/model/dataset_module.rb
Overview
This Module subclass is used by Model.dataset_module to add dataset methods to classes. It adds a couple of features standard Modules, allowing you to use the same subset method you can call on Model, as well as making sure that public methods added to the module automatically have class methods created for them.
Direct Known Subclasses
Class Method Summary collapse
-
.def_dataset_caching_method(mod, meth) ⇒ Object
Define a method in the module.
Instance Method Summary collapse
-
#initialize(model) ⇒ DatasetModule
constructor
Store the model related to this dataset module.
-
#subset(name, *args, &block) ⇒ Object
Alias for where.
Constructor Details
#initialize(model) ⇒ DatasetModule
Store the model related to this dataset module.
13 14 15 |
# File 'lib/sequel/model/dataset_module.rb', line 13 def initialize(model) @model = model end |
Class Method Details
.def_dataset_caching_method(mod, meth) ⇒ Object
Define a method in the module
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sequel/model/dataset_module.rb', line 42 def self.def_dataset_caching_method(mod, meth) mod.send(:define_method, meth) do |name, *args, &block| if block define_method(name){send(meth, *args, &block)} else key = :"_#{meth}_#{name}_ds" define_method(name) do cached_dataset(key){send(meth, *args)} end end end end |
Instance Method Details
#subset(name, *args, &block) ⇒ Object
Alias for where.
18 19 20 |
# File 'lib/sequel/model/dataset_module.rb', line 18 def subset(name, *args, &block) where(name, *args, &block) end |