- Support ActiveSupport instrumentation of Record create, update, destroy
- Allow config/cequel.yml to specify
:replication
and:durable_writes
settings Key#to_s
correctly returns String, not Symbol- Don't assume all constants are classes in migrations
- Explicitly require yaml and erb in Railtie
- NewRelic integration can be explicitly disabled
- Demodulize model class name before transforming it to table name
- Fix recovery from connection error
- Round time to nearest millisecond when serializing for CQL
- Make Rake tasks work without Rails
RecordSet#reverse
andfind_in_batches
respect clustering order defined in schema
- Allow setting a key attribute to what it already is
- Don't reset model updater/deleter if save results in an error
- Read
:default_consistency
from cequel.yml :max_retries
configuration parameter for customization of maximum retries that will be made to reconnect to cassandra
- Cequel::Record::descendants doesn't return weakrefs
- Support TTL and timestamp options to record persistence methods
- Convenience methods for test preparation
- Cast values passed to primary key filters in record sets
- Allow querying by both primary key and secondary index in
RecordSet
- Expand cql-rb dependency to allow 2.0
- Add timestamps functionality (
created_at
andupdated_at
) - More robust error handling when loading models for migrations
- Expose
#column_names
on Record and Schema
- Fixes for Type::quote
- Fix
puts
behavior when passed a Record instance - Fix batch loading of record sets with bounds on first of multiple clustering columns
- Fix load order of namespaced models for migrations
- Apply empty attribute values when hydrating records
- Fix intermittent load failures of activesupport 4.0.x
- Support
:default
option for key columns - Explicitly require
active_support
(Rails 4.1 compatibility) - Detect namespaced models in subdirectories when running migrations
- Handle unset collection columns hydrated from database
- Remove
app_generators.orm
setting
where
can now be used to scope primary keys- Magic finders for primary keys
- Pessimistic versioning for all dependencies
- Simplify logging implementation
- Support Cassandra authentication
- Specify NewRelicInstrumentation with full namespace
- Update config generator template for native protocol
- Switch to
cql-rb
(CQL native protocol) fromcassandra-cql
(Thrift protocol) - Support for consistency tuning
- Add
partition: true
option tobelongs_to
- Fix
#invalid?
- Put missing .yml template file in gem – fix
cequel:configuration
generator - Explicitly require I18n's hash extensions – fix config loading bug in Rails 3
- Add magic encoding comments for Ruby 1.9
- Fix for identifying varint columns when introspecting schema
- Add testing on Rubinius 2.2 and JRuby 1.7
- Don't set the same column multiple times in an UPDATE
- Allow clustering order in record key declarations
- Add
[]
and[]=
method for property access - Add Rails generator for records
- Fallback to filename when inferring model class for migrations
- Add Cequel::Record::ClassMethods
- Better interface for
::find
- Better interface for
HasManyAssociation
- Support
ActiveModel::Conversion
- Add RecordSet#values_at method for IN queries
- Add
:partition
option to Record::Schema#key - Fix regression in
List#<<
- Raise RecordNotFound if multi-record load doesn't find all records
- Compatibility with Cassandra 2.0 and recent Cassandra 1.2 patchlevels
- Fail when a schema migration would change the clustering order
- Fail fast when attempting to change a column's type in an incompatible way
- YARD documentation for all public interfaces
- Rails integration: Add rake tasks for creating keyspace, migrations; generator for configuration file
- Implement update_all, delete_all, destroy_all
- Option for unlogged batches
- Allow record sets to be scoped by multiple primary keys
- If a batch is a single statement, just send it as a statement
- Don't start a new batch if you're already in a batch
- Wrap record callbacks in logged batch
- Update
connection_pool
dependency
- Support time range queries over
timeuuid
columns - Typecast arguments to scoping functions of
RecordSet
- Typecast values in collection columns
- Use correct ordering column for deeply nested keys
- Don't allow updating keys on persisted models
- Fail fast attempting to save a model that doesn't have all keys defined
- Fixes for legacy schema support
- Full support for legacy CQL2 tables
dependent
option forhas_many
associations
- BIG BREAKING CHANGE: Instead of inheriting from
Cequel::Model::Base
, includeCequel::Record
. - RecordSet can chain class methods defined in the model class
- New records are initialized using the key attributes from the current scope
- Auto-generated UUIDs
- Implement RecordSet#== and #inspect
- RecordSet#last takes optional count argument
- Dynamic column defaults
- Fix insertion of default values in new records
- Secondary index support
- Dirty attribute tracking
- == implementation for model
- Add missing attributes argument to #create!
- Load cequel/model by default
- Essentially a ground-up rewrite to support CQL3
- Ability to change default consistency within a block
- Calling ::load on a loaded Dictionary is a no-op
- Clear out Dictionary @row on save unless loaded
- Add homepage link so rubygems users can easily get to github
- Add link to cequel-migrations-rails to README
- Use parameters for pooling
- Persist Dictionary changes in batches
- Allow overriding of default column family name for model
- Implement
Dictionary#first
andDictionary#last
- Use default column limit when loading multiple wide rows
- Cequel::Model::Counter model class
- Counter column support for data sets
- Connection pool
- Load multiple dictionary rows in one query
- Allow erb yml files
- Default thrift options to empty hash if not provided
- Implement Dictionary#key?
Dictionary#each_slice
- Release to Rubygems.org
- Inspect UUIDs nicer
- Allow
Cequel::Model
classes to implement#generate_key
- Implement
Cequel::Model::Dictionary
- Fix Enumerator for
#find_each_row
#find_in_batches
accounts for duplicate last row/first row
- Sanitize column names
- Chain select options
- Support for column ranges and column limits
- Implement
#find_in_batches
,#find_each
- Don't pre-sanitize CQL statements before sending to cassandra-cql
- Don't set
updated_at
if no dirty attributes
- Add NewRelic instrumentation
- Lazily create CassandraCql connection
- Include limit in
COUNT
query if specified - Default scope
- Memoize column family name
- Fix subclass
#reflect_on_associations
- Add
index_preference
for query plan hinting
- Don't call constructor when hydrating models
- Add support for dynamic attributes
- Tweaks to logging
- Add a slowlog
- Update based on attributes, not value of getters
- Strip nil values out of rows in Cequel::Model
- Add thrift client options when setting up connection
- Defer setting logger on keyspace until keyspace needs to be loaded
- Set logger correctly in railtie
- Initial library release