Sha256: d9a4aa3a668c9fe6530a5f6ac8d84ace0e35dde67c3ee8763239c49a358b04c4
Contents?: true
Size: 1.26 KB
Versions: 3
Compression:
Stored size: 1.26 KB
Contents
module ActiveCollection module Conditions def self.conditiond(mod) mod.extend ClassMethods mod.class_eval do find_scope :conditions_options end end module ClassMethods def conditions(*conditions) write_inheritable_attribute(:default_conditions, conditions) end def default_conditions read_inheritable_attribute(:default_conditions) || write_inheritable_attribute(:default_conditions, []) end def merge_conditions(a, b) (safe_to_array(a) + safe_to_array(b)).uniq end end def each_condition(&block) @conditions ||= self.class.default_conditions end def conditions(*conds) unloading_dup { |ac| ac.condition!(*conds) } end def condition!(*new_conditions) raise_if_loaded @conditions = self.class.merge_conditions(new_conditions, conditions).uniq end def conditions_options { :conditions => @conditions } unless @conditions.blank? end protected # Taken from ActiveRecord::Base # # Object#to_a is deprecated, though it does have the desired behavior def safe_to_array(o) case o when NilClass [] when Array o else [o] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
active_collection-0.2.6 | lib/active_collection/conditions.rb |
active_collection-0.2.5 | lib/active_collection/conditions.rb |
active_collection-0.2.4 | lib/active_collection/conditions.rb |