Sha256: a14c48e6db40a123471d9fc07f6656e272b4e8bfcdf3e89d453b216046e70501
Contents?: true
Size: 995 Bytes
Versions: 1
Compression:
Stored size: 995 Bytes
Contents
module ScopedFrom module ActiveRecord def self.included(base) base.extend(ClassMethods) end module ClassMethods def scope(name, scope_options, &block) super scope_arities[name] = scope_options.is_a?(Proc) ? scope_options.arity : -1 end def scope_with_one_argument?(name) scope_arities[name] == 1 end def scope_without_argument?(name) [-1, 0].include?(scope_arities[name]) end def scoped_from(params, options = {}) query_class = "#{name}Query".constantize rescue nil query_class = Query unless query_class.is_a?(Class) && query_class.ancestors.include?(Query) query_class.new(self, params, options).scope end private def scope_arities read_inheritable_attribute(:scope_arities) || write_inheritable_attribute(:scope_arities, ActiveSupport::HashWithIndifferentAccess.new) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
scoped_from-0.1 | lib/scoped_from/active_record.rb |