Sha256: a2e25aff0b8d12e9034b501a52cc44e8ad2a996404b85f6fc32b91538caa33d7
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
# frozen-string-literal: true # # The filter_having extension allows Dataset#filter, #and, #or # and #exclude to operate on the HAVING clause if the dataset # already has a HAVING clause, which was the historical behavior # before Sequel 4. It is only recommended to use this for # backwards compatibility. # # You can load this extension into specific datasets: # # ds = DB[:table] # ds = ds.extension(:filter_having) # # Or you can load it into all of a database's datasets, which # is probably the desired behavior if you are using this extension: # # DB.extension(:filter_having) # # Related module: Sequel::FilterHaving Sequel::Deprecation.deprecate("The filter_having extension", "Please consider maintaining it yourself as an external gem if you want to continue using it") # module Sequel module FilterHaving # Operate on HAVING clause if HAVING clause already present. def and(*cond, &block) if @opts[:having] having(*cond, &block) else super end end # Operate on HAVING clause if HAVING clause already present. def exclude(*cond, &block) if @opts[:having] exclude_having(*cond, &block) else super end end # Operate on HAVING clause if HAVING clause already present. def filter(*cond, &block) if @opts[:having] having(*cond, &block) else super end end # Operate on HAVING clause if HAVING clause already present. def or(*cond, &block) if having = @opts[:having] cond = cond.first if cond.size == 1 clone(:having => SQL::BooleanExpression.new(:OR, having, filter_expr(cond, &block))) else super end end end Dataset.register_extension(:filter_having, FilterHaving) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sequel-4.49.0 | lib/sequel/extensions/filter_having.rb |
sequel-4.48.0 | lib/sequel/extensions/filter_having.rb |