Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

optimistic find/get on model via updated_at timestamp for datamapper and activerecord

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 Gemfile
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 Mavenfile
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile
Octocat-spinner-32 ixtlan-optimistic.gemspec
README.md

Ixtlan Optimistic

  • Build Status
  • Dependency Status
  • Code Climate

it adds optimistic persistence support to DataMapper and ActveRecord using the updated_at property/attribute which is automatically updated on any change of the model (for datamapper you need dm-timestamps for that). to load a model use optimistic_get/optimistic_get!/optimistic_find respectively where the first argument is the last updated_at value which the client has. if the client data is uptodate then the optimistic_XYZ method will return the database entity otherwise raise an exception or return nil respectively.

rails setup

automagic via included railtie. just add

`gem 'ixtlan-optimistic'

to your Gemfile.

datamapper

just include Ixtlan::Optimistic::DataMapper to your model:

class User
  include DataMapper::Resource
  include Ixtlan::Optimistic::DataMapper

  property :id, Serial
  property :name, String

  timestamps :at
end

you need timestamps to get to work !

activerecord

just add it with

 ::ActiveRecord::Base.send(:include, 
                           Ixtlan::Optimistic::ActiveRecord)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

meta-fu

enjoy :)

Something went wrong with that request. Please try again.