Sha256: c827d228baaa123c6dc8551dcee428846ac38912f83c06c5eb2d915e97f28e61

Contents?: true

Size: 1.61 KB

Versions: 49

Compression:

Stored size: 1.61 KB

Contents

module ActiveAdmin
  class Scope

    attr_reader :name, :scope_method, :id, :scope_block, :display_if_block, :show_count

    # Create a Scope
    #
    # Examples:
    #
    #   Scope.new(:published)
    #   # => Scope with name 'Published' and scope method :published
    #
    #   Scope.new('Published', :public)
    #   # => Scope with name 'Published' and scope method :public
    #
    #   Scope.new('Published', :public, :if => proc { current_admin_user.can?( :manage, active_admin_config.resource_class ) } ) { |articles| articles.where(:published => true) }
    #   # => Scope with name 'Published' and scope method :public, optionally displaying the scope per the :if block, using a block
    #
    #   Scope.new('Published') { |articles| articles.where(:published => true) }
    #   # => Scope with name 'Published' using a block to scope
    #
    def initialize(name, method = nil, options = {}, &block)
      @name = name.is_a?( String ) ? name : name.to_s.titleize
      @scope_method = method
      # Scope ':all' means no scoping
      @scope_method ||= name.to_sym unless name.to_sym == :all
      @scope_method = nil if method && method.to_s == 'all'
      @id = @name.gsub(' ', '').underscore
      if block_given?
        @scope_method = nil
        @scope_block = block
      end

      @show_count = options[:show_count].nil? ? true : options[:show_count]
      @display_if_block = options[:if]
    end

    # Returns the display if block. If the block was not explicitly defined
    # a default block always returning true will be returned.
    def display_if_block
      @display_if_block || proc{ true }
    end

  end
end

Version data entries

49 entries across 49 versions & 2 rubygems

Version Path
lalala-4.0.0.dev.141 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.136 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.135 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.134 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.133 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.132 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.131 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.129 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.128 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.126 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.125 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.124 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.123 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.118 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.116 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.114 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.113 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.111 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.109 vendor/deps/active_admin/lib/active_admin/scope.rb
lalala-4.0.0.dev.107 vendor/deps/active_admin/lib/active_admin/scope.rb