module ActiveAdmin module ScopeChain # Scope an ActiveRecord::Relation chain # # Example: # scope_chain(Scope.new(:published), Article) # # => Article.published # # @param scope The we want to scope on # @param chain The ActiveRecord::Relation chain or ActiveRecord::Base class to scope # @return The scoped relation chain # def scope_chain(scope, chain) if scope.scope_method chain.send(scope.scope_method) elsif scope.scope_block instance_exec chain, &scope.scope_block else chain end end end end