cequel 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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)
|