Class AWS::Record::HashModel::Scope
In: lib/aws/record/hash_model/scope.rb
Parent: Record::Scope

The primary interface for finding records with {AWS::Record::HashModel}.

## Getting a Scope Object

You should normally never need to construct a Scope object directly. Scope objects are returned from the AWS::Record::HashModel finder methods # (e.g. `shard` and `limit`).

    books = Book.limit(100)
    books.class #=> AWS::Record::HashModel::Scope

Scopes are also returned from methods defined with the `scope` method.

    class Book < AWS::Record::HashModel
       scope :sampling, limit(10)
    end

    Book.sampling #=> returns a scope that limits to 10

## Chaining Scopes

Scope objects represent a request, but do not actualy make a request until required. This allows you to chain requests

    # no request made by the following 2 statements
    books = Book.shard('books-1') # what table to search
    books = books.limit(10) # how many records to fetch

    books.each do |book|
      # yields up to 10 books from the table 'books-1'
    end

The following methods returns a scope that can be chained.

  • {shard}
  • {limit}

## Terminating Scopes

To terminate a scope you can enumerate it or call first.

    # terminate a scope by enumerating
    Book.limit(10).each {|book| ... }

    # terminate a scope by getting the first record
    Book.shard('books-1').first

[Validate]