cequel 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Appraisals +12 -0
- data/CHANGELOG.md +239 -0
- data/CONTRIBUTING.md +65 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +162 -0
- data/LICENSE +19 -0
- data/README.md +525 -0
- data/Rakefile +122 -0
- data/Vagrantfile +146 -0
- data/lib/cequel/record/railtie.rb +2 -0
- data/lib/cequel/version.rb +1 -1
- data/templates/config/cequel.yml +19 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecc18113832fd82c80bfbf912be8e44c876ba03d
|
4
|
+
data.tar.gz: e160bc03502cc811f1aadaafe292fa3328276a9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3eb91fe46d8bdaf97cf090168eaecbfd9c4050f17b206997d5c755df37c3b7d672f6b4f036beddd7143b58d17ded738b658b3f42c620308a97e1d6c745d70446
|
7
|
+
data.tar.gz: d29932e8db4c7df04dec415d385e8189e1bb925f5133c0e04515ee198657665326c022a34a62fba9aead6ae1154f55a3611b3cfb0d4b7a6e91e2a287f89bfc1e
|
data/Appraisals
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,239 @@
|
|
1
|
+
## 1.0.3
|
2
|
+
|
3
|
+
* Put missing .yml template file in gem – fix `cequel:configuration` generator
|
4
|
+
* Explicitly require I18n's hash extensions – fix config loading bug in Rails 3
|
5
|
+
* Add magic encoding comments for Ruby 1.9
|
6
|
+
|
7
|
+
## 1.0.2
|
8
|
+
|
9
|
+
* Fix for identifying varint columns when introspecting schema
|
10
|
+
* Add testing on Rubinius 2.2 and JRuby 1.7
|
11
|
+
|
12
|
+
## 1.0.1
|
13
|
+
|
14
|
+
* Don't set the same column multiple times in an UPDATE
|
15
|
+
* Allow clustering order in record key declarations
|
16
|
+
|
17
|
+
## 1.0.0
|
18
|
+
|
19
|
+
* Add `[]` and `[]=` method for property access
|
20
|
+
* Add Rails generator for records
|
21
|
+
* Fallback to filename when inferring model class for migrations
|
22
|
+
|
23
|
+
## 1.0.0.rc4
|
24
|
+
|
25
|
+
* Add Cequel::Record::ClassMethods
|
26
|
+
|
27
|
+
## 1.0.0.rc3
|
28
|
+
|
29
|
+
* Better interface for `::find`
|
30
|
+
* Better interface for `HasManyAssociation`
|
31
|
+
* Support `ActiveModel::Conversion`
|
32
|
+
|
33
|
+
## 1.0.0.rc2
|
34
|
+
|
35
|
+
* Add RecordSet#values_at method for IN queries
|
36
|
+
* Add `:partition` option to Record::Schema#key
|
37
|
+
* Fix regression in `List#<<`
|
38
|
+
* Raise RecordNotFound if multi-record load doesn't find all records
|
39
|
+
* Compatibility with Cassandra 2.0 and recent Cassandra 1.2 patchlevels
|
40
|
+
* Fail when a schema migration would change the clustering order
|
41
|
+
* Fail fast when attempting to change a column's type in an incompatible way
|
42
|
+
* YARD documentation for all public interfaces
|
43
|
+
|
44
|
+
## 1.0.0.rc1
|
45
|
+
|
46
|
+
* Rails integration: Add rake tasks for creating keyspace, migrations; generator
|
47
|
+
for configuration file
|
48
|
+
* Implement update_all, delete_all, destroy_all
|
49
|
+
* Option for unlogged batches
|
50
|
+
|
51
|
+
## 1.0.0.pre.6
|
52
|
+
|
53
|
+
* Allow record sets to be scoped by multiple primary keys
|
54
|
+
* If a batch is a single statement, just send it as a statement
|
55
|
+
* Don't start a new batch if you're already in a batch
|
56
|
+
* Wrap record callbacks in logged batch
|
57
|
+
* Update `connection_pool` dependency
|
58
|
+
|
59
|
+
## 1.0.0.pre.5
|
60
|
+
|
61
|
+
* Support time range queries over `timeuuid` columns
|
62
|
+
* Typecast arguments to scoping functions of `RecordSet`
|
63
|
+
* Typecast values in collection columns
|
64
|
+
* Use correct ordering column for deeply nested keys
|
65
|
+
* Don't allow updating keys on persisted models
|
66
|
+
* Fail fast attempting to save a model that doesn't have all keys defined
|
67
|
+
* Fixes for legacy schema support
|
68
|
+
|
69
|
+
## 1.0.0.pre.4
|
70
|
+
|
71
|
+
* Full support for legacy CQL2 tables
|
72
|
+
* `dependent` option for `has_many` associations
|
73
|
+
|
74
|
+
## 1.0.0.pre.3
|
75
|
+
|
76
|
+
* **BIG BREAKING CHANGE:** Instead of inheriting from `Cequel::Model::Base`,
|
77
|
+
include `Cequel::Record`.
|
78
|
+
* RecordSet can chain class methods defined in the model class
|
79
|
+
* New records are initialized using the key attributes from the current scope
|
80
|
+
* Auto-generated UUIDs
|
81
|
+
* Implement RecordSet#== and #inspect
|
82
|
+
* RecordSet#last takes optional count argument
|
83
|
+
* Dynamic column defaults
|
84
|
+
* Fix insertion of default values in new records
|
85
|
+
|
86
|
+
## 1.0.0.pre.2
|
87
|
+
|
88
|
+
* Secondary index support
|
89
|
+
* Dirty attribute tracking
|
90
|
+
* == implementation for model
|
91
|
+
* Add missing attributes argument to #create!
|
92
|
+
* Load cequel/model by default
|
93
|
+
|
94
|
+
## 1.0.0.pre.1
|
95
|
+
|
96
|
+
* Essentially a ground-up rewrite to support CQL3
|
97
|
+
|
98
|
+
## 0.5.6
|
99
|
+
|
100
|
+
* Ability to change default consistency within a block
|
101
|
+
|
102
|
+
## 0.5.5
|
103
|
+
|
104
|
+
* Calling ::load on a loaded Dictionary is a no-op
|
105
|
+
|
106
|
+
## 0.5.4
|
107
|
+
|
108
|
+
* Clear out Dictionary @row on save unless loaded
|
109
|
+
* Add homepage link so rubygems users can easily get to github
|
110
|
+
* Add link to cequel-migrations-rails to README
|
111
|
+
* Use parameters for pooling
|
112
|
+
|
113
|
+
## 0.5.3
|
114
|
+
|
115
|
+
* Persist Dictionary changes in batches
|
116
|
+
|
117
|
+
## 0.5.2
|
118
|
+
|
119
|
+
* Allow overriding of default column family name for model
|
120
|
+
|
121
|
+
## 0.5.1
|
122
|
+
|
123
|
+
* Implement `Dictionary#first` and `Dictionary#last`
|
124
|
+
* Use default column limit when loading multiple wide rows
|
125
|
+
|
126
|
+
## 0.5.0
|
127
|
+
|
128
|
+
* Cequel::Model::Counter model class
|
129
|
+
* Counter column support for data sets
|
130
|
+
* Connection pool
|
131
|
+
* Load multiple dictionary rows in one query
|
132
|
+
* Allow erb yml files
|
133
|
+
|
134
|
+
## 0.4.2
|
135
|
+
|
136
|
+
* Default thrift options to empty hash if not provided
|
137
|
+
* Implement Dictionary#key?
|
138
|
+
|
139
|
+
## 0.4.1
|
140
|
+
|
141
|
+
* `Dictionary#each_slice`
|
142
|
+
* Release to Rubygems.org
|
143
|
+
|
144
|
+
## 0.4.0
|
145
|
+
|
146
|
+
* Inspect UUIDs nicer
|
147
|
+
* Allow `Cequel::Model` classes to implement `#generate_key`
|
148
|
+
* Implement `Cequel::Model::Dictionary`
|
149
|
+
|
150
|
+
## 0.3.3
|
151
|
+
|
152
|
+
* Fix Enumerator for `#find_each_row`
|
153
|
+
|
154
|
+
## 0.3.2
|
155
|
+
|
156
|
+
* `#find_in_batches` accounts for duplicate last row/first row
|
157
|
+
|
158
|
+
## 0.3.1
|
159
|
+
|
160
|
+
* Sanitize column names
|
161
|
+
|
162
|
+
## 0.3.0
|
163
|
+
|
164
|
+
* Chain select options
|
165
|
+
* Support for column ranges and column limits
|
166
|
+
* Implement `#find_in_batches`, `#find_each`
|
167
|
+
|
168
|
+
## 0.2.9
|
169
|
+
|
170
|
+
* Don't pre-sanitize CQL statements before sending to cassandra-cql
|
171
|
+
|
172
|
+
## 0.2.8
|
173
|
+
|
174
|
+
* Don't set `updated_at` if no dirty attributes
|
175
|
+
|
176
|
+
## 0.2.7
|
177
|
+
|
178
|
+
* Add NewRelic instrumentation
|
179
|
+
|
180
|
+
## 0.2.6
|
181
|
+
|
182
|
+
* Lazily create CassandraCql connection
|
183
|
+
|
184
|
+
## 0.2.5
|
185
|
+
|
186
|
+
* Include limit in `COUNT` query if specified
|
187
|
+
* Default scope
|
188
|
+
|
189
|
+
## 0.2.4
|
190
|
+
|
191
|
+
* Memoize column family name
|
192
|
+
|
193
|
+
## 0.2.3
|
194
|
+
|
195
|
+
* Fix subclass `#reflect_on_associations`
|
196
|
+
|
197
|
+
## 0.2.2
|
198
|
+
|
199
|
+
* Add `index_preference` for query plan hinting
|
200
|
+
|
201
|
+
## 0.2.1
|
202
|
+
|
203
|
+
* Don't call constructor when hydrating models
|
204
|
+
|
205
|
+
## 0.2.0
|
206
|
+
|
207
|
+
* Add support for dynamic attributes
|
208
|
+
|
209
|
+
## 0.1.9
|
210
|
+
|
211
|
+
* Tweaks to logging
|
212
|
+
|
213
|
+
## 0.1.8
|
214
|
+
|
215
|
+
* Add a slowlog
|
216
|
+
|
217
|
+
## 0.1.7
|
218
|
+
|
219
|
+
* Update based on attributes, not value of getters
|
220
|
+
|
221
|
+
## 0.1.6
|
222
|
+
|
223
|
+
* Strip nil values out of rows in Cequel::Model
|
224
|
+
|
225
|
+
## 0.1.5
|
226
|
+
|
227
|
+
* Add thrift client options when setting up connection
|
228
|
+
|
229
|
+
## 0.1.4
|
230
|
+
|
231
|
+
* Defer setting logger on keyspace until keyspace needs to be loaded
|
232
|
+
|
233
|
+
## 0.1.3
|
234
|
+
|
235
|
+
* Set logger correctly in railtie
|
236
|
+
|
237
|
+
## 0.1.2
|
238
|
+
|
239
|
+
* Initial library release
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# How to contribute #
|
2
|
+
|
3
|
+
Contributions to Cequel are highly welcome! Here's a quick guide.
|
4
|
+
|
5
|
+
## Submitting a change ##
|
6
|
+
|
7
|
+
1. Fork the repo and create a topic branch
|
8
|
+
2. Set up your environment and run the tests. The easiest way to do this is to
|
9
|
+
use Vagrant; see below. For those who already have a suitable Cassandra
|
10
|
+
instance running locally: `rake test`
|
11
|
+
3. Add tests for your change.
|
12
|
+
4. Make the tests pass.
|
13
|
+
5. Push to your topic branch and submit a pull request.
|
14
|
+
|
15
|
+
### Do's and don'ts ###
|
16
|
+
|
17
|
+
* **Do** write tests. If you don't test your patch, I'll have to write tests
|
18
|
+
for it, which is likely to delay the pull request getting accepted.
|
19
|
+
* **Do** write documentation for new functionality and update documentation for
|
20
|
+
changed functionality. Cequel uses
|
21
|
+
[YARD](http://rubydoc.info/gems/yard/file/docs/GettingStarted.md) for
|
22
|
+
documentation. If you're adding a significant new feature, update the
|
23
|
+
`README` too.
|
24
|
+
* **Do** use code style consistent with the project. Cequel by and large
|
25
|
+
follows the [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide).
|
26
|
+
* **Don't** make changes to the `cequel.gemspec` or `version.rb` files, except
|
27
|
+
to add new dependencies in the former.
|
28
|
+
|
29
|
+
## Running the tests ##
|
30
|
+
|
31
|
+
### For the impatient ###
|
32
|
+
|
33
|
+
```bash
|
34
|
+
$ git clone git@github.com:yourname/cequel.git
|
35
|
+
$ cd cequel
|
36
|
+
$ git remote add upstream git@github.com:cequel/cequel.git
|
37
|
+
$ brew tap phinze/cask
|
38
|
+
$ brew install brew-cask
|
39
|
+
$ brew cask install virtualbox vagrant
|
40
|
+
$ vagrant up 2.0.4
|
41
|
+
$ rake test
|
42
|
+
```
|
43
|
+
|
44
|
+
### Using Vagrant
|
45
|
+
|
46
|
+
Cequel's test suite runs against a live Cassandra instance. The easiest way to
|
47
|
+
get one is to use the `Vagrantfile` included in the repo. You'll need to
|
48
|
+
install [VirtualBox](https://www.virtualbox.org/) and
|
49
|
+
[Vagrant](http://www.vagrantup.com/); both are available via
|
50
|
+
[Homebrew-cask](https://github.com/phinze/homebrew-cask) if you're on OS X.
|
51
|
+
|
52
|
+
Cequel's Vagrantfile can generate a virtual machine for any Cassandra version
|
53
|
+
that Cequel supports (i.e., 1.2.x and 2.0.x). You can run multiple VMs at the
|
54
|
+
same time; the first machine you boot will expose its Cassandra instance on
|
55
|
+
port `9160`, which is the default port that Cequel will look for.
|
56
|
+
|
57
|
+
Cequel is tested against a large range of Ruby, Rails, and Cassandra versions;
|
58
|
+
for most patches, you can just run the tests using the latest version of all of
|
59
|
+
them. If you're messing with the `Cequel::Schema` or `Cequel::Type` modules,
|
60
|
+
you'll want to test at least against an early 1.2 release (1.2.4 is good), a
|
61
|
+
later 1.2 release (1.2.13), and the latest 2.0 release.
|
62
|
+
|
63
|
+
## And finally
|
64
|
+
|
65
|
+
**THANK YOU!**
|
data/Gemfile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
gem 'rocco', :platforms => :ruby
|
5
|
+
gem 'redcarpet', '< 2.0', :platforms => :ruby
|
6
|
+
gem 'travis'
|
7
|
+
gem 'travis-lint'
|
8
|
+
|
9
|
+
group :debug do
|
10
|
+
gem 'debugger', :platforms => :mri_19
|
11
|
+
gem 'byebug', :platforms => :mri_20
|
12
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cequel (1.0.3)
|
5
|
+
activemodel
|
6
|
+
activesupport (>= 3.1)
|
7
|
+
cassandra-cql (~> 1.2)
|
8
|
+
connection_pool (~> 1.1)
|
9
|
+
i18n
|
10
|
+
|
11
|
+
GEM
|
12
|
+
remote: https://rubygems.org/
|
13
|
+
specs:
|
14
|
+
activemodel (4.0.3)
|
15
|
+
activesupport (= 4.0.3)
|
16
|
+
builder (~> 3.1.0)
|
17
|
+
activesupport (4.0.3)
|
18
|
+
i18n (~> 0.6, >= 0.6.4)
|
19
|
+
minitest (~> 4.2)
|
20
|
+
multi_json (~> 1.3)
|
21
|
+
thread_safe (~> 0.1)
|
22
|
+
tzinfo (~> 0.3.37)
|
23
|
+
addressable (2.3.5)
|
24
|
+
appraisal (0.5.2)
|
25
|
+
bundler
|
26
|
+
rake
|
27
|
+
ast (1.1.0)
|
28
|
+
atomic (1.1.15)
|
29
|
+
atomic (1.1.15-java)
|
30
|
+
backports (3.6.0)
|
31
|
+
builder (3.1.4)
|
32
|
+
byebug (2.7.0)
|
33
|
+
columnize (~> 0.3)
|
34
|
+
debugger-linecache (~> 1.2)
|
35
|
+
cassandra-cql (1.2.2)
|
36
|
+
simple_uuid (>= 0.2.0)
|
37
|
+
thrift_client (>= 0.7.1, < 0.9)
|
38
|
+
coderay (1.1.0)
|
39
|
+
columnize (0.3.6)
|
40
|
+
connection_pool (1.2.0)
|
41
|
+
debugger (1.6.6)
|
42
|
+
columnize (>= 0.3.1)
|
43
|
+
debugger-linecache (~> 1.2.0)
|
44
|
+
debugger-ruby_core_source (~> 1.3.2)
|
45
|
+
debugger-linecache (1.2.0)
|
46
|
+
debugger-ruby_core_source (1.3.2)
|
47
|
+
diff-lcs (1.2.5)
|
48
|
+
ethon (0.6.3)
|
49
|
+
ffi (>= 1.3.0)
|
50
|
+
mime-types (~> 1.18)
|
51
|
+
faraday (0.8.9)
|
52
|
+
multipart-post (~> 1.2.0)
|
53
|
+
faraday_middleware (0.9.0)
|
54
|
+
faraday (>= 0.7.4, < 0.9)
|
55
|
+
ffi (1.9.3)
|
56
|
+
ffi (1.9.3-java)
|
57
|
+
gh (0.13.2)
|
58
|
+
addressable
|
59
|
+
backports
|
60
|
+
faraday (~> 0.8)
|
61
|
+
multi_json (~> 1.0)
|
62
|
+
net-http-persistent (>= 2.7)
|
63
|
+
net-http-pipeline
|
64
|
+
hashr (0.0.22)
|
65
|
+
highline (1.6.21)
|
66
|
+
i18n (0.6.9)
|
67
|
+
json (1.8.1)
|
68
|
+
json (1.8.1-java)
|
69
|
+
launchy (2.4.2)
|
70
|
+
addressable (~> 2.3)
|
71
|
+
launchy (2.4.2-java)
|
72
|
+
addressable (~> 2.3)
|
73
|
+
spoon (~> 0.0.1)
|
74
|
+
method_source (0.8.2)
|
75
|
+
mime-types (1.25.1)
|
76
|
+
minitest (4.7.5)
|
77
|
+
multi_json (1.8.4)
|
78
|
+
multipart-post (1.2.0)
|
79
|
+
mustache (0.99.5)
|
80
|
+
net-http-persistent (2.9.4)
|
81
|
+
net-http-pipeline (1.0.1)
|
82
|
+
parser (2.1.5)
|
83
|
+
ast (~> 1.1)
|
84
|
+
slop (~> 3.4, >= 3.4.5)
|
85
|
+
powerpack (0.0.9)
|
86
|
+
pry (0.9.12.6)
|
87
|
+
coderay (~> 1.0)
|
88
|
+
method_source (~> 0.8)
|
89
|
+
slop (~> 3.4)
|
90
|
+
pry (0.9.12.6-java)
|
91
|
+
coderay (~> 1.0)
|
92
|
+
method_source (~> 0.8)
|
93
|
+
slop (~> 3.4)
|
94
|
+
spoon (~> 0.0)
|
95
|
+
pusher-client (0.4.0)
|
96
|
+
websocket (~> 1.0.0)
|
97
|
+
rainbow (2.0.0)
|
98
|
+
rake (10.1.1)
|
99
|
+
redcarpet (1.17.2)
|
100
|
+
rocco (0.8.2)
|
101
|
+
mustache
|
102
|
+
redcarpet
|
103
|
+
rspec (2.14.1)
|
104
|
+
rspec-core (~> 2.14.0)
|
105
|
+
rspec-expectations (~> 2.14.0)
|
106
|
+
rspec-mocks (~> 2.14.0)
|
107
|
+
rspec-core (2.14.8)
|
108
|
+
rspec-expectations (2.14.5)
|
109
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
110
|
+
rspec-mocks (2.14.6)
|
111
|
+
rubocop (0.18.1)
|
112
|
+
json (>= 1.7.7, < 2)
|
113
|
+
parser (~> 2.1.3)
|
114
|
+
powerpack (~> 0.0.6)
|
115
|
+
rainbow (>= 1.99.1, < 3.0)
|
116
|
+
simple_uuid (0.4.0)
|
117
|
+
slop (3.4.7)
|
118
|
+
spoon (0.0.4)
|
119
|
+
ffi
|
120
|
+
thread_safe (0.2.0)
|
121
|
+
atomic (>= 1.1.7, < 2)
|
122
|
+
thread_safe (0.2.0-java)
|
123
|
+
atomic (>= 1.1.7, < 2)
|
124
|
+
thrift (0.8.0)
|
125
|
+
thrift_client (0.8.4)
|
126
|
+
thrift (~> 0.8.0)
|
127
|
+
travis (1.6.7)
|
128
|
+
addressable (~> 2.3)
|
129
|
+
backports
|
130
|
+
faraday (~> 0.8.7)
|
131
|
+
faraday_middleware (~> 0.9)
|
132
|
+
gh (~> 0.13)
|
133
|
+
highline (~> 1.6)
|
134
|
+
launchy (~> 2.1)
|
135
|
+
pry (~> 0.9)
|
136
|
+
pusher-client (~> 0.4)
|
137
|
+
typhoeus (~> 0.6)
|
138
|
+
travis-lint (1.7.0)
|
139
|
+
hashr (~> 0.0.22)
|
140
|
+
typhoeus (0.6.7)
|
141
|
+
ethon (~> 0.6.2)
|
142
|
+
tzinfo (0.3.38)
|
143
|
+
websocket (1.0.7)
|
144
|
+
yard (0.8.7.3)
|
145
|
+
|
146
|
+
PLATFORMS
|
147
|
+
java
|
148
|
+
ruby
|
149
|
+
|
150
|
+
DEPENDENCIES
|
151
|
+
appraisal
|
152
|
+
byebug
|
153
|
+
cequel!
|
154
|
+
debugger
|
155
|
+
rake
|
156
|
+
redcarpet (< 2.0)
|
157
|
+
rocco
|
158
|
+
rspec (~> 2.0)
|
159
|
+
rubocop
|
160
|
+
travis
|
161
|
+
travis-lint
|
162
|
+
yard (~> 0.6)
|