Module: Sequel::Plugins::InvertedSubsets
- Defined in:
- lib/sequel/plugins/inverted_subsets.rb
Overview
The inverted_subsets plugin adds another method for each defined subset, which inverts the condition supplied. By default, inverted subset method names are prefixed with not_.
You can change the prefix, or indeed entirely customise the inverted names, by passing a block to the plugin configuration:
# Use an exclude_ prefix for inverted subsets instead of not_
Album.plugin(:inverted_subsets){|name| "exclude_#{name}"}
Usage:
# Add inverted subsets in the Album class
Album.plugin :inverted_subsets
# This will now create two methods, published and not_published
Album.dataset_module do
where :published, published: true
end
Album.published.sql
# SELECT * FROM albums WHERE (published IS TRUE)
Album.not_published.sql
# SELECT * FROM albums WHERE (published IS NOT TRUE)
Defined Under Namespace
Modules: DatasetModuleMethods
Class Method Summary collapse
Class Method Details
.apply(model, &block) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sequel/plugins/inverted_subsets.rb', line 32 def self.apply(model, &block) model.instance_exec do @dataset_module_class = Class.new(@dataset_module_class) do include DatasetModuleMethods if block define_method(:inverted_subset_name, &block) private :inverted_subset_name end end end end |