module Sequel::Plugins::SubsetConditions

  1. lib/sequel/plugins/subset_conditions.rb

The subset_conditions plugin creates an additional *_conditions method for every subset created, which returns the filter conditions the subset uses. This can be useful if you want to use the conditions for a separate filter or combine them with OR.

Usage:

# Add subset_conditions in the Album class
Album.plugin :subset_conditions

# This will now create a published_conditions method
Album.dataset_module do
  subset :published, :published => true
end

Album.where(Album.published_conditions).sql
# SELECT * FROM albums WHERE (published IS TRUE)

Album.exclude(Album.published_conditions).sql
# SELECT * FROM albums WHERE (published IS NOT TRUE)

Album.where(Sequel.|(Album.published_conditions, :ready=>true)).sql
# SELECT * FROM albums WHERE ((published IS TRUE) OR (ready IS TRUE))

Methods

Public Class

  1. apply

Included modules

  1. DatasetModuleMethods

Public Class methods

apply (mod, &block)
[show source]
# File lib/sequel/plugins/subset_conditions.rb, line 28
def self.apply(mod, &block)
  mod.instance_exec do
    @dataset_module_class = Class.new(@dataset_module_class) do
      include DatasetModuleMethods
    end
  end
end