Sha256: 9c6e835c973b13496830ee7b88ddc16f1d089f1c18e8802a146ee6a1d2b538e0
Contents?: true
Size: 837 Bytes
Versions: 3
Compression:
Stored size: 837 Bytes
Contents
require 'active_support/concern' module ActiveHouse module Scopeable extend ActiveSupport::Concern included do private def apply_scope(name) scope = model_class._scopes.fetch(name.to_sym) instance_exec(*args, &scope) end def scope?(name) model_class._scopes.key?(name.to_sym) end def apply_default_scope apply_scope(model_class._default_scope) unless model_class._default_scope.nil? end end def initialize(*) super with_current_query { apply_default_scope } end def respond_to_missing?(method_name, *_args) scope?(method_name) || super end def method_missing(method_name, *args, &_block) if scope?(method_name) apply_scope(method_name) else super end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
active_house-0.1.2 | lib/active_house/scopeable.rb |
active_house-0.1.1 | lib/active_house/scopeable.rb |
active_house-0.1.0 | lib/active_house/scopeable.rb |