Skip to content

jasonmk/cassandra_object

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

432 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cassandra Object uses ActiveModel to mimic much of the behavior in ActiveRecord.

Add the following to your Gemfile:

gem 'cassandra', :require => '0.8'
gem 'jkusar-cassandra_object'

Change the version of Cassandra accordingly. Recent versions have not been backward compatible.

class Widget < CassandraObject::Base
  key :uuid
  string :name
  string :description
  integer :price
  array :colors, :unique => true

  validates :name, :presence => :true

  before_create do
    self.description = "#{name} is the best product ever"
  end
end
CassandraObject::Base.establish_connection(
  :keyspace => 'my_app_development',
  :servers => '127.0.0.1:9160',
  :thrift => {
    :timeout => 20
    :retries => 2
  }
)

Cassandra Object has equivalent methods as ActiveRecord:

widget = Widget.new
widget.valid?
widget = Widget.create(:name => 'Acme', :price => 100)
widget.update_attribute(:price, 1200)
widget.update_attributes(:price => 1200, :name => 'Acme Corporation')
widget.attributes = {:price => 300}
widget.price_was
widget.save
widget.save!
widget = Widget.find(uuid)
widget = Widget.first
widgets = Widget.all
Widget.find_each do |widget|
  ...
end

CQL is currently not supported

About

No description, website, or topics provided.

Resources

License

ISC, MIT licenses found

Licenses found

ISC
LICENSE
MIT
MIT-LICENSE

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%