Coder Social home page Coder Social logo

cassandro's Introduction

Cassandro Gem Version

Cassandro is a small Ruby ORM for Apache Cassandra 2.0 and CQL 3.0. Cassandro uses the new Datastax Ruby Driver

Install

gem install cassandro

Changelog

v2.1.0

  • Raise Cassandra::Errors::ClientError exception when trying to interact with Cassandra without a connection
  • SoftDelete Update: refactor where, count and query methods to exclude deleted records by default.

v2.0.1

  • Fix Model#count for boolean fields

v2.0

  • Support cassandra-driver >= 2.0
  • Allow registering indexes in model's definition
  • Add Model#ttl method

v1.2

  • TTL
  • Model-wide TTL
  • Single record TTL
  • Support :set datatype
  • Ignore columns not definied on model

Example

class Developer < Cassandro::Model
  table :developers
  
  attribute :email, :text
  attribute :repos, :integer
  attribute :nickname, :text
  
  primary_key [:id, :repos]
  
  index :nickname
end

Cassandro.connect(hosts: ['127.0.0.1'], keyspace: 'little_cassandro')

Developer.create(email: '[email protected]', repos: 10, nickname: 'cassandro')

Documentation

TODO

  • Improve querying

How to collaborate

If you find a bug or want to collaborate with the code, you can:

  • Report issues trhough the issue tracker
  • Fork the repository into your own account and submit a Pull Request

cassandro's People

Contributors

tarolandia avatar kandalf avatar lguardiola avatar

Stargazers

 avatar Angus H. avatar Dave Hooper avatar  avatar Hafiz Badrie Lubis avatar M. Scott Ford avatar Alex Musayev avatar Benoit Chevillot avatar Lattapon Yodsuwan avatar Volodymyr Melnyk avatar Andrea Campolonghi avatar Eric Guo avatar Simon Escobar Benitez avatar David Montesdeoca avatar Kevin McFadden avatar Jean-Philippe Moal avatar Steve Loveless avatar Vladimir Tsymbal avatar Antonio avatar zenyoda avatar Amit Thawait avatar Vadim Gorbunov avatar Khaja Minhajuddin avatar Emelia Smith avatar Nick Willever avatar Leo Morais avatar Ilya Lavrov avatar Jon Austin avatar Raz avatar Mark Rebec avatar Gabriel Francisco avatar Khalilur Rahman avatar Adam Kovacs avatar Jurre avatar Morton Fox avatar Lalit Shandilya avatar Jerry Lin avatar Omer Katz avatar Artiom Diomin avatar

Watchers

 avatar  avatar  avatar James Cloos avatar  avatar

Forkers

zfjoy520

cassandro's Issues

Check connection before queries

If connection was not created then unexpected nil errors appears. Add a connection check and throw an exception if it's not connected

Add TTL to Cassandro::Model

Add TTL support to Cassandro::Model.
Allow the posibility to set the TTL for all the records in the table.
Allow the posibility to set the TTL for one record only when creating it.

Can't update existing record due to missing method

Hi

When I try to save an existing record by doing "foo.save" it fails with this error:

NoMethodError: undefined method `metadata' for #<Cassandra::Statements::Prepared:0x000001089c2850>
    from /Users/ryanwilliams/.rvm/gems/ruby-2.1.2/gems/cassandro-1.0.3/lib/cassandro/model.rb:291:in `statement_for'
    from /Users/ryanwilliams/.rvm/gems/ruby-2.1.2/gems/cassandro-1.0.3/lib/cassandro/model.rb:100:in `save'

Seems like a bug to me. Perhaps the wrong version of ruby-driver?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.