cassandro 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cassandro.gemspec +1 -1
- data/docs/advanced_features.md +28 -1
- data/docs/getting_started.md +11 -0
- data/lib/cassandro/core.rb +21 -6
- data/lib/cassandro/ext/migration.rb +1 -1
- data/lib/cassandro/ext/migrator.rb +1 -1
- data/lib/cassandro/ext/soft_delete.rb +30 -0
- data/lib/cassandro/model.rb +18 -15
- data/test/cassandro_check_connection_test.rb +123 -0
- data/test/cassandro_migrator_test.rb +5 -5
- data/test/cassandro_soft_delete_test.rb +72 -1
- data/test/cassandro_test.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 454e96452f040bc0fe75880ec95ab55da541ea75
|
4
|
+
data.tar.gz: c9d3980327a022d70e8524f53469c07810ea618b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2390fd1f15ba3d96885395bf5e207015c7779b2150872cd2060a93dfb450fe61e99f3318d8ad7c2cd2497b945a96d58b4b997354e1f32977dac073b88e9a53dc
|
7
|
+
data.tar.gz: 95e8324ad844c4f6fe2d298290cf8319f02fc9b49229b5e3ccbfc1b9e8d7b361f623c466ad7948395c49619926c0efd65ecc07b7dc15c01881d0937cabd99a50
|
data/cassandro.gemspec
CHANGED
data/docs/advanced_features.md
CHANGED
@@ -51,9 +51,36 @@ end
|
|
51
51
|
|
52
52
|
This will add an attribute `:delete` to your model. Next time you use `Model#destroy` your data will not be deleted from database but marked as deleted. You can then use `Model#restore` to unmark it.
|
53
53
|
|
54
|
-
Data marked as deleted is not included within
|
54
|
+
Data marked as deleted is not included within find methods by default. In order to include deleted records you have to send a boolean parameter:
|
55
|
+
|
56
|
+
### All
|
55
57
|
|
56
58
|
```ruby
|
57
59
|
Person.all # => list all but deleted
|
58
60
|
Person.all(true) # => list all, deleted included
|
59
61
|
```
|
62
|
+
|
63
|
+
### Where
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
Person.where(:gender, "male") # => list "male" but deleted
|
67
|
+
Person.where(:gender, "male", true) # => list "male", deleted included
|
68
|
+
```
|
69
|
+
|
70
|
+
### Count
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
Person.count # => count all but deleted
|
74
|
+
Person.count(true) # => count all deleted included
|
75
|
+
|
76
|
+
# with filter
|
77
|
+
Person.count(:gender, "female") # => count all "female" but deleted
|
78
|
+
Person.count(:gender, "female", true) # => count all "female" deleted included
|
79
|
+
```
|
80
|
+
|
81
|
+
### Query
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
Person.query("gender = ? AND admin = ?", "male", true) # => list "male" "admins" but deleted
|
85
|
+
Person.query("gender = ? AND admin = ?", "male", true, true) # => list "male" "admins", deleted included
|
86
|
+
```
|
data/docs/getting_started.md
CHANGED
@@ -14,6 +14,10 @@ Cassandro.connect(hosts: ['192.168.2.100', '192.168.2.101'], keyspace: 'some_key
|
|
14
14
|
|
15
15
|
_For full list of options visit [Ruby Driver Documentation](http://datastax.github.io/ruby-driver/api/#cluster-class_method)_
|
16
16
|
|
17
|
+
## Missing Connection
|
18
|
+
|
19
|
+
If the connection is not established, the `Cassandra::Errors::ClientError` will be raised when trying to interact with Cassandro.
|
20
|
+
|
17
21
|
## Keyspace
|
18
22
|
|
19
23
|
### Create Keyspace
|
@@ -44,6 +48,13 @@ Cassandro.use('keyspace_name')
|
|
44
48
|
```ruby
|
45
49
|
result = Cassandro.execute("SELECT * FROM table_name;")
|
46
50
|
```
|
51
|
+
|
52
|
+
### Execute prepared statements
|
53
|
+
```ruby
|
54
|
+
st = Cassandro.prepare("SELECT * FROM table_name WHERE column1 = ?")
|
55
|
+
result = Cassandro.execute(st, arguments: ['value1'])
|
56
|
+
```
|
57
|
+
|
47
58
|
### Create table
|
48
59
|
```ruby
|
49
60
|
table = <<-TABLEDEF
|
data/lib/cassandro/core.rb
CHANGED
@@ -24,7 +24,7 @@ module Cassandro
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.use(keyspace)
|
27
|
-
|
27
|
+
execute("USE #{keyspace}")
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.disconnect
|
@@ -32,8 +32,22 @@ module Cassandro
|
|
32
32
|
@@session = nil
|
33
33
|
end
|
34
34
|
|
35
|
-
def self.
|
36
|
-
|
35
|
+
def self.connected?
|
36
|
+
!@@session.nil?
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.check_connection!
|
40
|
+
raise Cassandra::Errors::ClientError.new("Database connection is not established") unless connected?
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.execute(statement, options = nil)
|
44
|
+
check_connection!
|
45
|
+
@@session.execute(statement, options)
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.prepare(statement, options = nil)
|
49
|
+
check_connection!
|
50
|
+
@@session.prepare(statement, options)
|
37
51
|
end
|
38
52
|
|
39
53
|
def self.create_keyspace(name, options = { replication: { class: 'SimpleStrategy', replication_factor: 1}} )
|
@@ -51,11 +65,11 @@ module Cassandro
|
|
51
65
|
#{with}
|
52
66
|
KSDEF
|
53
67
|
|
54
|
-
|
68
|
+
execute(keyspace_definition)
|
55
69
|
end
|
56
70
|
|
57
71
|
def self.truncate_table(table_name)
|
58
|
-
|
72
|
+
execute("TRUNCATE #{table_name}")
|
59
73
|
end
|
60
74
|
|
61
75
|
def self.register_table(table_def)
|
@@ -63,10 +77,11 @@ module Cassandro
|
|
63
77
|
end
|
64
78
|
|
65
79
|
def self.load_tables
|
80
|
+
check_connection!
|
66
81
|
@@tables.each do |table_definition|
|
67
82
|
queries = table_definition.split(";").map(&:strip)
|
68
83
|
queries.each do |query|
|
69
|
-
|
84
|
+
execute(query) unless query.empty?
|
70
85
|
end
|
71
86
|
end
|
72
87
|
end
|
@@ -8,7 +8,7 @@ module Cassandro
|
|
8
8
|
@migrations = Cassandro::Migration.migrations
|
9
9
|
@logger = logger
|
10
10
|
|
11
|
-
Cassandro.
|
11
|
+
Cassandro.execute CassandroMigration.schema
|
12
12
|
|
13
13
|
version = CassandroMigration[name: 'version'] || CassandroMigration.create(name: 'version', value: "0")
|
14
14
|
|
@@ -8,6 +8,36 @@ module Cassandro
|
|
8
8
|
|
9
9
|
results
|
10
10
|
end
|
11
|
+
|
12
|
+
def where(key, value, with_deleted = false)
|
13
|
+
results = super(key, value)
|
14
|
+
|
15
|
+
results.reject!{ |r| r.deleted } unless with_deleted
|
16
|
+
|
17
|
+
results
|
18
|
+
end
|
19
|
+
|
20
|
+
def count(key = nil, value = nil, with_deleted = false)
|
21
|
+
return super(key, value) if with_deleted || key === true
|
22
|
+
|
23
|
+
if key && !value.nil?
|
24
|
+
results = where(key, value)
|
25
|
+
else
|
26
|
+
results = all
|
27
|
+
end
|
28
|
+
|
29
|
+
results.size
|
30
|
+
end
|
31
|
+
|
32
|
+
def query(where, *values)
|
33
|
+
with_deleted = where.scan(/\?/).length < values.length && values.pop === true
|
34
|
+
|
35
|
+
results = super(where, *values)
|
36
|
+
|
37
|
+
results.reject!{ |r| r.deleted } unless with_deleted
|
38
|
+
|
39
|
+
results
|
40
|
+
end
|
11
41
|
end
|
12
42
|
|
13
43
|
def self.included(model)
|
data/lib/cassandro/model.rb
CHANGED
@@ -69,11 +69,12 @@ module Cassandro
|
|
69
69
|
query += "WHERE #{p_keys.join(" AND ")}"
|
70
70
|
|
71
71
|
begin
|
72
|
-
st = Cassandro.
|
73
|
-
Cassandro.
|
72
|
+
st = Cassandro.prepare(query)
|
73
|
+
Cassandro.execute(st, arguments: native_attributes(attrs))
|
74
74
|
@attributes.merge!(attrs)
|
75
75
|
true
|
76
|
-
rescue
|
76
|
+
rescue => e
|
77
|
+
raise unless Cassandro.connected?
|
77
78
|
@errors[:update_error] = e.message
|
78
79
|
false
|
79
80
|
end
|
@@ -101,10 +102,11 @@ module Cassandro
|
|
101
102
|
st = self.statement_for(:insert, :insert_check => insert_check)
|
102
103
|
|
103
104
|
begin
|
104
|
-
r = Cassandro.
|
105
|
+
r = Cassandro.execute(st, arguments: self.native_attributes)
|
105
106
|
raise ModelException.new('not_applied') unless !insert_check || (insert_check && r.first["[applied]"])
|
106
107
|
@persisted = true
|
107
108
|
rescue => e
|
109
|
+
raise unless Cassandro.connected?
|
108
110
|
@attributes[:id] = nil if !persisted? && @attributes.has_key?(:id)
|
109
111
|
@errors[:save] = e.message
|
110
112
|
false
|
@@ -187,8 +189,8 @@ module Cassandro
|
|
187
189
|
WHERE #{where}
|
188
190
|
QUERY
|
189
191
|
|
190
|
-
st = Cassandro.
|
191
|
-
result = Cassandro.
|
192
|
+
st = Cassandro.prepare(query)
|
193
|
+
result = Cassandro.execute(st, arguments: values)
|
192
194
|
|
193
195
|
return nil unless result.any?
|
194
196
|
|
@@ -229,8 +231,8 @@ module Cassandro
|
|
229
231
|
|
230
232
|
query = "SELECT * FROM #{table_name} WHERE #{key} = ? ALLOW FILTERING"
|
231
233
|
|
232
|
-
st = Cassandro.
|
233
|
-
rows = Cassandro.
|
234
|
+
st = Cassandro.prepare(query)
|
235
|
+
rows = Cassandro.execute(st, arguments: [value])
|
234
236
|
|
235
237
|
rows.each do |result|
|
236
238
|
results << new(result, true)
|
@@ -245,10 +247,10 @@ module Cassandro
|
|
245
247
|
if key && !value.nil?
|
246
248
|
key = key.to_sym
|
247
249
|
query << " WHERE #{key} = ? ALLOW FILTERING"
|
248
|
-
st = Cassandro.
|
249
|
-
results = Cassandro.
|
250
|
+
st = Cassandro.prepare(query)
|
251
|
+
results = Cassandro.execute(st, arguments: [value])
|
250
252
|
else
|
251
|
-
results = Cassandro.
|
253
|
+
results = Cassandro.execute(query)
|
252
254
|
end
|
253
255
|
|
254
256
|
results.first["count"]
|
@@ -259,7 +261,8 @@ module Cassandro
|
|
259
261
|
query = "TRUNCATE #{table_name}"
|
260
262
|
st = Cassandro.execute(query)
|
261
263
|
st.is_a? Cassandra::Client::VoidResult
|
262
|
-
rescue e
|
264
|
+
rescue => e
|
265
|
+
raise unless Cassandro.connected?
|
263
266
|
false
|
264
267
|
end
|
265
268
|
end
|
@@ -268,8 +271,8 @@ module Cassandro
|
|
268
271
|
results = []
|
269
272
|
|
270
273
|
query = "SELECT * FROM #{table_name} WHERE #{where} ALLOW FILTERING"
|
271
|
-
st = Cassandro.
|
272
|
-
rows = Cassandro.
|
274
|
+
st = Cassandro.prepare(query)
|
275
|
+
rows = Cassandro.execute(st, arguments: values)
|
273
276
|
|
274
277
|
|
275
278
|
rows.each do |result|
|
@@ -351,7 +354,7 @@ module Cassandro
|
|
351
354
|
QUERY
|
352
355
|
if @insert_statement.nil? ||
|
353
356
|
@insert_statement.params_metadata.count != @attributes.count
|
354
|
-
@insert_statement = Cassandro.
|
357
|
+
@insert_statement = Cassandro.prepare(query)
|
355
358
|
else
|
356
359
|
@insert_statement
|
357
360
|
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
Protest.describe "Cassandro Connection check" do
|
4
|
+
setup do
|
5
|
+
class Admin < Cassandro::Model
|
6
|
+
table :admins
|
7
|
+
attribute :nickname, :text
|
8
|
+
attribute :age, :integer
|
9
|
+
|
10
|
+
primary_key :nickname
|
11
|
+
end
|
12
|
+
|
13
|
+
Cassandro.disconnect
|
14
|
+
end
|
15
|
+
|
16
|
+
context "Core" do
|
17
|
+
test "raise Exception on #execute" do
|
18
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
19
|
+
Cassandro.execute("USE test_keyspace")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
test "raise Exception on #use" do
|
24
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
25
|
+
Cassandro.use("test_keyspace")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
test "raise Exception on #create_keyspace" do
|
30
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
31
|
+
Cassandro.create_keyspace("test_keyspace")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
test "raise Exception on #truncate_table" do
|
36
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
37
|
+
Cassandro.truncate_table("tests")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "Model" do
|
43
|
+
test "raise Exception on #create" do
|
44
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
45
|
+
Admin.create(nickname: "tarolandia")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
test "raise Exception on #save" do
|
50
|
+
admin = Admin.new(nickname: "tarolandia")
|
51
|
+
|
52
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
53
|
+
admin.save
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
test "raise Exception on #update_attributes" do
|
58
|
+
admin = Admin.new(nickname: "tarolandia")
|
59
|
+
|
60
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
61
|
+
admin.update_attributes(age: 29)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
test "raise Exception on #[]" do
|
66
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
67
|
+
Admin[nickname: "tarolandia"]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
test "raise Exception on #all" do
|
72
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
73
|
+
Admin.all
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
test "raise Exception on #where" do
|
78
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
79
|
+
Admin.where(:nickname, "tarolandia")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
test "raise Exception on #count" do
|
84
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
85
|
+
Admin.count
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
test "raise Exception on #query" do
|
90
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
91
|
+
Admin.query("nickname = ?", "tarolandia")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
test "raise Exception on #ttl" do
|
96
|
+
admin = Admin.new(nickname: "tarolandia")
|
97
|
+
|
98
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
99
|
+
admin.ttl
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
test "raise Exception on #create_with_ttl" do
|
104
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
105
|
+
Admin.create_with_ttl(20, nickname: "tarolandia", age: 29)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
test "raise Exception on #destroy" do
|
110
|
+
admin = Admin.new(nickname: "tarolandia")
|
111
|
+
|
112
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
113
|
+
admin.destroy
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
test "raise Exception on #destroy_all" do
|
118
|
+
assert_raise(Cassandra::Errors::ClientError, "Database connection is not established") do
|
119
|
+
Admin.destroy_all
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require_relative 'helper'
|
2
2
|
|
3
3
|
Protest.describe "Cassandro Migrator" do
|
4
|
-
Cassandro.connect(hosts: ['127.0.0.1'], keyspace: 'cassandro_test')
|
5
4
|
setup do
|
6
|
-
|
7
|
-
|
8
|
-
Cassandro.
|
9
|
-
Cassandro.
|
5
|
+
Cassandro.connect(hosts: ['127.0.0.1'], keyspace: 'cassandro_test')
|
6
|
+
|
7
|
+
Cassandro.execute("DROP TABLE IF EXISTS users")
|
8
|
+
Cassandro.execute("DROP TABLE IF EXISTS animals")
|
9
|
+
Cassandro.execute("DROP TABLE IF EXISTS cassandro_migrations")
|
10
10
|
@migrator = Cassandro::Migrator.new("./test/support/migrations", Logger.new('/dev/null'))
|
11
11
|
end
|
12
12
|
|
@@ -21,7 +21,6 @@ Protest.describe "Cassandro Model Soft Delete" do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
test "all not include deleted" do
|
24
|
-
|
25
24
|
me = Admin.create(:nickname => "k4nd4lf")
|
26
25
|
other = Admin.create(:nickname => "Jim")
|
27
26
|
|
@@ -39,6 +38,78 @@ Protest.describe "Cassandro Model Soft Delete" do
|
|
39
38
|
assert !Admin.all.include?(me)
|
40
39
|
|
41
40
|
end
|
41
|
+
|
42
|
+
test "#where not includes deleted" do
|
43
|
+
me = Admin.create(:nickname => "tarolandia")
|
44
|
+
other = Admin.create(:nickname => "Jim")
|
45
|
+
|
46
|
+
me.destroy
|
47
|
+
|
48
|
+
assert_equal 0, Admin.where(:nickname, "tarolandia").size
|
49
|
+
end
|
50
|
+
|
51
|
+
test "#where should include deleted if asked" do
|
52
|
+
me = Admin.create(:nickname => "tarolandia")
|
53
|
+
other = Admin.create(:nickname => "Jim")
|
54
|
+
|
55
|
+
me.destroy
|
56
|
+
|
57
|
+
assert_equal 1, Admin.where(:nickname, "tarolandia", true).size
|
58
|
+
end
|
59
|
+
|
60
|
+
test "#count not includes deleted" do
|
61
|
+
me = Admin.create(:nickname => "tarolandia")
|
62
|
+
other = Admin.create(:nickname => "Jim")
|
63
|
+
|
64
|
+
me.destroy
|
65
|
+
|
66
|
+
assert_equal 1, Admin.count
|
67
|
+
end
|
68
|
+
|
69
|
+
test "#count should include deleted if asked" do
|
70
|
+
me = Admin.create(:nickname => "tarolandia")
|
71
|
+
other = Admin.create(:nickname => "Jim")
|
72
|
+
|
73
|
+
me.destroy
|
74
|
+
|
75
|
+
assert_equal 2, Admin.count(true)
|
76
|
+
end
|
77
|
+
|
78
|
+
test "#count should filter by key and exclude deleted" do
|
79
|
+
me = Admin.create(:nickname => "tarolandia")
|
80
|
+
other = Admin.create(:nickname => "Jim")
|
81
|
+
|
82
|
+
me.destroy
|
83
|
+
|
84
|
+
assert_equal 0, Admin.count(:nickname, "tarolandia")
|
85
|
+
end
|
86
|
+
|
87
|
+
test "#count should filter by key including deleted" do
|
88
|
+
me = Admin.create(:nickname => "tarolandia")
|
89
|
+
other = Admin.create(:nickname => "Jim")
|
90
|
+
|
91
|
+
me.destroy
|
92
|
+
|
93
|
+
assert_equal 1, Admin.count(:nickname, "tarolandia", true)
|
94
|
+
end
|
95
|
+
|
96
|
+
test "#query not includes deleted" do
|
97
|
+
me = Admin.create(:nickname => "tarolandia")
|
98
|
+
other = Admin.create(:nickname => "Jim")
|
99
|
+
|
100
|
+
me.destroy
|
101
|
+
|
102
|
+
assert_equal 0, Admin.query("nickname = ?", "tarolandia").size
|
103
|
+
end
|
104
|
+
|
105
|
+
test "#query should include deleted if asked" do
|
106
|
+
me = Admin.create(:nickname => "tarolandia")
|
107
|
+
other = Admin.create(:nickname => "Jim")
|
108
|
+
|
109
|
+
me.destroy
|
110
|
+
|
111
|
+
assert_equal 1, Admin.query("nickname = ?", "tarolandia", true).size
|
112
|
+
end
|
42
113
|
end
|
43
114
|
|
44
115
|
|
data/test/cassandro_test.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative 'helper'
|
|
3
3
|
Protest.describe "Cassandro Module" do
|
4
4
|
setup do
|
5
5
|
SESSION.execute("DROP KEYSPACE IF EXISTS test_keyspace")
|
6
|
+
Cassandro.disconnect
|
6
7
|
end
|
7
8
|
|
8
9
|
test "connects to database" do
|
@@ -16,4 +17,3 @@ Protest.describe "Cassandro Module" do
|
|
16
17
|
assert_equal Cassandra::Results::Void, Cassandro.use("test_keyspace").class
|
17
18
|
end
|
18
19
|
end
|
19
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassandro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lautaro Orazi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cassandra-driver
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/cassandro/model.rb
|
100
100
|
- lib/cassandro/support/hash.rb
|
101
101
|
- rakefile
|
102
|
+
- test/cassandro_check_connection_test.rb
|
102
103
|
- test/cassandro_migration_test.rb
|
103
104
|
- test/cassandro_migrator_test.rb
|
104
105
|
- test/cassandro_model_test.rb
|