activerecord-cassandra-adapter

Copyright © 2010 SUGAWARA Genki <[email protected]>

Description

activerecord-cassandra-adapter is a Cassandra adapter for ActiveRecord.

activerecord-cassandra-adapter depend on Cassandra Ruby Driver.

see rubygems.org/gems/cassandra

Homepage

github.com/winebarrel/activerecord-cassandra-adapter

Install

gem install activerecord-cassandra-adapter

Example

database.yml

development:
  adapter:  cassandra
  host:     127.0.0.1
  port:     9160
  keyspace: employees

Model

class Employee < ActiveRecord::Base
  include ActiveCassandra::CF
  # identifier lambda { Time.now.tv_sec }
end

ActiveRecord API

# see http://api.rubyonrails.org/classes/ActiveRecord/Base.html
emp = Emp.find(:first, 
        :conditions => ["job = ? and sal >= ?", "MANAGER", 2800],
        :limit => 3, :offset => 1)
p emp.id #=> "a198f990-719d-11df-974a-37650c93e624"
emp.age = 30
emp.save
emp_list = Emp.find(:all, :conditions => {:empno => [7654, 7698, 7782]})
emp_list.each do |i|
  i.destroy if i.sal < 2000
end
new_emp = Emp.new
new_emp.empno = 8000
new_emp.ename = 'YAMADA'
new_emp.age   = 27
new_emp.save!
# not available: JOIN, ORDER, OR and etc...
# see http://github.com/winebarrel/activerecord-cassandra-adapter/blob/master/lib/active_cassandra/sqlparser.y

Low layer API

Emp.cassandra_client do |client|
  ...
end