[![Build Status](https://secure.travis-ci.org/jwkoelewijn/mordor.png?branch=master)](http://travis-ci.org/jwkoelewijn/mordor)

## Introduction
Small library to add DataMapper style resources for MongoDB.

```ruby
class ExampleResource
  include Mordor::Resource

  attribute :first, :index => true
  attribute :second
  attribute :third, :finder_method => :find_by_third_attribute
  attribute :at,    :timestamp => true
end
```

This adds attr_accessors to the ExampleResource for each attribute, plus adds finder methods of the form 
`find_by_{attribute}`. The naming convention can be overridden by using the optional `:finder_method` option,
as can be seen with the third attribute.

When the `:index => true` option is set, indices are ensured before each query on 
the collection. Indices are descending by default, but this can be changed by also supplying a `:index_type => Mongo::ASCENDING` option.

At most one attribute per Resource can have the option `:timestamp => true` set. This means that the attribute will be saved as one of the two first 
attributes (the other one being the `_id` attribute. When no value is given for the timestamped attribute, a timestamp with value 0 will be inserted,
which results in a timestamp being assigned to it by the MongoDB.
An exception is raised when more than one attribute is given the timestamp option

[![CircleCI](https://circleci.com/gh/nedap/mordor/tree/master.svg?style=svg)](https://circleci.com/gh/nedap/mordor/tree/master)

## Introduction
Small library to add DataMapper style resources for MongoDB.

```ruby
class ExampleResource
  include Mordor::Resource

  attribute :first, :index => true
  attribute :second
  attribute :third, :finder_method => :find_by_third_attribute
  attribute :at,    :timestamp => true
end
```

This adds attr_accessors to the ExampleResource for each attribute, plus adds finder methods of the form 
`find_by_{attribute}`. The naming convention can be overridden by using the optional `:finder_method` option,
as can be seen with the third attribute.

When the `:index => true` option is set, indices are ensured before each query on 
the collection. Indices are descending by default, but this can be changed by also supplying a `:index_type => Mongo::ASCENDING` option.

At most one attribute per Resource can have the option `:timestamp => true` set. This means that the attribute will be saved as one of the two first 
attributes (the other one being the `_id` attribute. When no value is given for the timestamped attribute, a timestamp with value 0 will be inserted,
which results in a timestamp being assigned to it by the MongoDB.
An exception is raised when more than one attribute is given the timestamp option

Replace travis status badge with one of circleci
Replace travis status badge with one of circleci
