extendi-cassandra_object 1.0.7 → 1.0.8
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/.travis.yml +7 -1
- data/README.md +6 -0
- data/extendi-cassandra_object.gemspec +2 -2
- data/lib/cassandra_object.rb +1 -0
- data/lib/cassandra_object/adapters/cassandra_adapter.rb +15 -6
- data/lib/cassandra_object/adapters/cassandra_schemaless_adapter.rb +16 -7
- data/lib/cassandra_object/attribute_methods.rb +4 -4
- data/lib/cassandra_object/attribute_methods/dirty.rb +6 -12
- data/lib/cassandra_object/core.rb +7 -7
- data/lib/cassandra_object/inspect.rb +1 -1
- data/lib/cassandra_object/persistence.rb +6 -4
- data/lib/cassandra_object/scope/finder_methods.rb +7 -3
- data/lib/cassandra_object/types/string_type.rb +2 -2
- data/lib/initializers/cassandra.rb +13 -0
- data/test/support/cassandra.rb +10 -0
- data/test/support/reconnection.rb +37 -0
- data/test/test_helper.rb +1 -0
- data/test/unit/log_subscriber_test.rb +1 -1
- data/test/unit/persistence_schema_test.rb +6 -7
- data/test/unit/persistence_test.rb +7 -3
- data/test/unit/timestamps_test.rb +3 -3
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c695a26258a09bfb86224196d5c93da0818e572
|
4
|
+
data.tar.gz: 8468bb80f340fcb1cd5e4961ab990a6d83a21f83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f29534bf48f32c976755bbc9be2a188812f04124a93c9e307cc68079709b3ba12826bb80f4cdda343f71a46d7bbaf8a32a19c83d459a6b5945d99f796ca4e6f3
|
7
|
+
data.tar.gz: 3650b6aa1245a03db2866eae5702514a37118e688876456f6706cda8f96c91cfb85278a6631c3891d625ec6e0eb1e0457479cf537311099711e13bda0ae5c67d
|
data/.travis.yml
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 2.3.3
|
4
3
|
- 2.4.0
|
4
|
+
- 2.4.1
|
5
|
+
- 2.4.2
|
6
|
+
- 2.5.1
|
5
7
|
env:
|
6
8
|
- CASSANDRA_VERSION=2.1.2
|
7
9
|
- CASSANDRA_VERSION=3.0.10
|
8
10
|
- CASSANDRA_VERSION=3.9
|
11
|
+
- CASSANDRA_VERSION=2.1.2 ACTIVEMODEL_VERSION='< 5'
|
12
|
+
- CASSANDRA_VERSION=3.0.10 ACTIVEMODEL_VERSION='< 5'
|
13
|
+
- CASSANDRA_VERSION=3.9 ACTIVEMODEL_VERSION='< 5'
|
9
14
|
|
10
15
|
jdk:
|
11
16
|
- oraclejdk8
|
@@ -20,4 +25,5 @@ before_install:
|
|
20
25
|
install:
|
21
26
|
- ccm create -n 1 -v $CASSANDRA_VERSION -i 127.0.0. -s -b test-cluster
|
22
27
|
- ccm start
|
28
|
+
- if [ -n "$ACTIVEMODEL_VERSION" ];then bundle add activemodel --version "$ACTIVEMODEL_VERSION"; fi
|
23
29
|
- bundle install
|
data/README.md
CHANGED
@@ -190,3 +190,9 @@ cql_response return an hash where the key is the model key and values is an hash
|
|
190
190
|
Widget.cql_response([:name, :color])
|
191
191
|
Widget.cql_response.limit(10)
|
192
192
|
```
|
193
|
+
|
194
|
+
## Running tests on MacOS
|
195
|
+
|
196
|
+
* Run a cassandra node on localhost (i.e. `ccm start` if CCM is used)
|
197
|
+
* Increase the limit of open files with `ulimit -Sn 2048`
|
198
|
+
* Run the tests by running the default rake task or `bundle exec rake test`
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'extendi-cassandra_object'
|
5
|
-
s.version = '1.0.
|
5
|
+
s.version = '1.0.8'
|
6
6
|
s.description = 'Cassandra ActiveModel'
|
7
7
|
s.summary = 'Cassandra ActiveModel'
|
8
8
|
s.authors = ['Duccio Giovannelli', 'gotime']
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
18
18
|
s.require_paths = ['lib']
|
19
19
|
|
20
|
-
s.add_runtime_dependency('activemodel', '
|
20
|
+
s.add_runtime_dependency('activemodel', '<= 5.2')
|
21
21
|
s.add_runtime_dependency('cassandra-driver', '>= 3.1.0')
|
22
22
|
s.add_runtime_dependency('lz4-ruby', '>= 0.3.3')
|
23
23
|
|
data/lib/cassandra_object.rb
CHANGED
@@ -77,7 +77,9 @@ module CassandraObject
|
|
77
77
|
:ssl,
|
78
78
|
:timeout,
|
79
79
|
:trace,
|
80
|
-
:username
|
80
|
+
:username,
|
81
|
+
:heartbeat_interval,
|
82
|
+
:idle_timeout
|
81
83
|
])
|
82
84
|
|
83
85
|
{
|
@@ -85,16 +87,23 @@ module CassandraObject
|
|
85
87
|
reconnection_policy: 'Cassandra::Reconnection::Policies::%s',
|
86
88
|
retry_policy: 'Cassandra::Retry::Policies::%s'
|
87
89
|
}.each do |policy_key, class_template|
|
88
|
-
|
89
|
-
|
90
|
+
params = cluster_options[policy_key]
|
91
|
+
if params
|
92
|
+
if params.is_a?(Hash)
|
93
|
+
cluster_options[policy_key] = (class_template % [params[:policy].classify]).constantize.new(*params[:params]||[])
|
94
|
+
else
|
95
|
+
cluster_options[policy_key] = (class_template % [params.classify]).constantize.new
|
96
|
+
end
|
90
97
|
end
|
91
98
|
end
|
92
99
|
|
93
100
|
# Setting defaults
|
94
101
|
cluster_options.merge!({
|
95
|
-
|
96
|
-
|
97
|
-
|
102
|
+
heartbeat_interval: cluster_options[:heartbeat_interval] || 2,
|
103
|
+
idle_timeout: cluster_options[:idle_timeout] || 5,
|
104
|
+
consistency: cluster_options[:consistency] || :quorum,
|
105
|
+
protocol_version: cluster_options[:protocol_version] || 3,
|
106
|
+
page_size: cluster_options[:page_size] || 10000
|
98
107
|
})
|
99
108
|
return cluster_options
|
100
109
|
end
|
@@ -90,7 +90,9 @@ module CassandraObject
|
|
90
90
|
:ssl,
|
91
91
|
:timeout,
|
92
92
|
:trace,
|
93
|
-
:username
|
93
|
+
:username,
|
94
|
+
:heartbeat_interval,
|
95
|
+
:idle_timeout
|
94
96
|
])
|
95
97
|
|
96
98
|
|
@@ -99,17 +101,24 @@ module CassandraObject
|
|
99
101
|
reconnection_policy: 'Cassandra::Reconnection::Policies::%s',
|
100
102
|
retry_policy: 'Cassandra::Retry::Policies::%s'
|
101
103
|
}.each do |policy_key, class_template|
|
102
|
-
|
103
|
-
|
104
|
+
params = cluster_options[policy_key]
|
105
|
+
if params
|
106
|
+
if params.is_a?(Hash)
|
107
|
+
cluster_options[policy_key] = (class_template % [params[:policy].classify]).constantize.new(*params[:params]||[])
|
108
|
+
else
|
109
|
+
cluster_options[policy_key] = (class_template % [params.classify]).constantize.new
|
110
|
+
end
|
104
111
|
end
|
105
112
|
end
|
106
113
|
|
107
114
|
# Setting defaults
|
108
115
|
cluster_options.merge!({
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
116
|
+
heartbeat_interval: cluster_options[:heartbeat_interval] || 2,
|
117
|
+
idle_timeout: cluster_options[:idle_timeout] || 5,
|
118
|
+
max_schema_agreement_wait: 1,
|
119
|
+
consistency: cluster_options[:consistency]||:quorum,
|
120
|
+
protocol_version: cluster_options[:protocol_version]||3,
|
121
|
+
page_size: cluster_options[:page_size] || 10000
|
113
122
|
})
|
114
123
|
return cluster_options
|
115
124
|
end
|
@@ -40,20 +40,20 @@ module CassandraObject
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def write_attribute(name, value)
|
43
|
-
@
|
43
|
+
@model_attributes[name.to_s] = self.class.typecast_attribute(self, name, value)
|
44
44
|
end
|
45
45
|
|
46
46
|
def read_attribute(name)
|
47
|
-
@
|
47
|
+
@model_attributes[name.to_s]
|
48
48
|
end
|
49
49
|
|
50
50
|
def attribute_exists?(name)
|
51
|
-
@
|
51
|
+
@model_attributes.key?(name.to_s)
|
52
52
|
end
|
53
53
|
|
54
54
|
def attributes
|
55
55
|
results = {}
|
56
|
-
@
|
56
|
+
@model_attributes.each_key do |key|
|
57
57
|
results[key] = read_attribute(key)
|
58
58
|
end
|
59
59
|
results
|
@@ -6,30 +6,24 @@ module CassandraObject
|
|
6
6
|
|
7
7
|
# Attempts to +save+ the record and clears changed attributes if successful.
|
8
8
|
def save(*) #:nodoc:
|
9
|
-
|
10
|
-
|
11
|
-
@changed_attributes = {}
|
12
|
-
end
|
9
|
+
status = super
|
10
|
+
changes_applied
|
13
11
|
status
|
14
12
|
end
|
15
13
|
|
16
14
|
# <tt>reload</tt> the record and clears changed attributes.
|
17
15
|
def reload
|
18
|
-
super
|
19
|
-
|
20
|
-
|
21
|
-
end
|
16
|
+
super
|
17
|
+
clear_changes_information
|
18
|
+
self
|
22
19
|
end
|
23
20
|
|
24
21
|
def write_attribute(name, value)
|
25
22
|
name = name.to_s
|
26
23
|
old = read_attribute(name)
|
27
24
|
|
25
|
+
self.send("#{name}_will_change!") unless value == old
|
28
26
|
super
|
29
|
-
|
30
|
-
unless attribute_changed?(name) || old == read_attribute(name)
|
31
|
-
changed_attributes[name] = old
|
32
|
-
end
|
33
27
|
end
|
34
28
|
end
|
35
29
|
end
|
@@ -5,11 +5,11 @@ module CassandraObject
|
|
5
5
|
def initialize(attributes=nil)
|
6
6
|
@new_record = true
|
7
7
|
@destroyed = false
|
8
|
-
@
|
8
|
+
@model_attributes = {}
|
9
9
|
self.attributes = attributes || {}
|
10
10
|
attribute_definitions.each_value do |definition|
|
11
11
|
unless definition.default.nil? || attribute_exists?(definition.name)
|
12
|
-
@
|
12
|
+
@model_attributes[definition.name] = definition.default
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -17,10 +17,10 @@ module CassandraObject
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def initialize_dup(other)
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@
|
20
|
+
@model_attributes = other.attributes
|
21
|
+
@model_attributes['created_at'] = nil
|
22
|
+
@model_attributes['updated_at'] = nil
|
23
|
+
@model_attributes.delete(self.class.primary_key)
|
24
24
|
@id = nil
|
25
25
|
@new_record = true
|
26
26
|
@destroyed = false
|
@@ -60,4 +60,4 @@ module CassandraObject
|
|
60
60
|
self == (comparison_object)
|
61
61
|
end
|
62
62
|
end
|
63
|
-
end
|
63
|
+
end
|
@@ -3,7 +3,7 @@ module CassandraObject
|
|
3
3
|
def inspect
|
4
4
|
inspection = ["#{self.class.primary_key}: #{id.inspect}"]
|
5
5
|
|
6
|
-
@
|
6
|
+
@model_attributes.each do |attribute, value|
|
7
7
|
if value.present?
|
8
8
|
inspection << "#{attribute}: #{attribute_for_inspect(value)}"
|
9
9
|
end
|
@@ -64,6 +64,7 @@ module CassandraObject
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def insert_record(id, attributes)
|
67
|
+
attributes = attributes.dup
|
67
68
|
attributes[self._key] = id if self.schema_type == :standard
|
68
69
|
adapter.insert column_family, id, encode_attributes(attributes), self.ttl
|
69
70
|
end
|
@@ -71,6 +72,7 @@ module CassandraObject
|
|
71
72
|
def update_record(id, attributes)
|
72
73
|
return if attributes.empty?
|
73
74
|
if self.schema_type == :standard
|
75
|
+
attributes = attributes.dup
|
74
76
|
attributes[self._key] = id
|
75
77
|
id = self._key
|
76
78
|
end
|
@@ -90,7 +92,7 @@ module CassandraObject
|
|
90
92
|
object.instance_variable_set('@id', id) if id
|
91
93
|
object.instance_variable_set('@new_record', false)
|
92
94
|
object.instance_variable_set('@destroyed', false)
|
93
|
-
object.instance_variable_set('@
|
95
|
+
object.instance_variable_set('@model_attributes', typecast_persisted_attributes(object, attributes))
|
94
96
|
end
|
95
97
|
end
|
96
98
|
|
@@ -172,7 +174,7 @@ module CassandraObject
|
|
172
174
|
|
173
175
|
def becomes(klass)
|
174
176
|
became = klass.new
|
175
|
-
became.instance_variable_set('@
|
177
|
+
became.instance_variable_set('@model_attributes', @model_attributes)
|
176
178
|
became.instance_variable_set('@new_record', new_record?)
|
177
179
|
became.instance_variable_set('@destroyed', destroyed?)
|
178
180
|
became
|
@@ -180,7 +182,7 @@ module CassandraObject
|
|
180
182
|
|
181
183
|
def reload
|
182
184
|
clear_belongs_to_cache
|
183
|
-
@
|
185
|
+
@model_attributes = self.class.find(id).instance_variable_get('@model_attributes')
|
184
186
|
self
|
185
187
|
end
|
186
188
|
|
@@ -196,7 +198,7 @@ module CassandraObject
|
|
196
198
|
end
|
197
199
|
|
198
200
|
def write(method)
|
199
|
-
changed_attributes =
|
201
|
+
changed_attributes = changes.map {|k,change| [k, change.last] }.to_h
|
200
202
|
self.class.send(method, id, changed_attributes)
|
201
203
|
end
|
202
204
|
end
|
@@ -38,15 +38,15 @@ module CassandraObject
|
|
38
38
|
|
39
39
|
def find_one(id)
|
40
40
|
if id.blank?
|
41
|
-
|
41
|
+
not_found(id)
|
42
42
|
elsif self.schema_type == :dynamic_attributes
|
43
43
|
record = where_ids(id).execute
|
44
|
-
|
44
|
+
not_found(id) if record.empty?
|
45
45
|
record
|
46
46
|
elsif record = where_ids(id)[0]
|
47
47
|
record
|
48
48
|
else
|
49
|
-
|
49
|
+
not_found(id)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -56,6 +56,10 @@ module CassandraObject
|
|
56
56
|
ids = ids.compact.map(&:to_s).uniq
|
57
57
|
where_ids(ids).execute
|
58
58
|
end
|
59
|
+
|
60
|
+
def not_found(id)
|
61
|
+
raise CassandraObject::RecordNotFound, "Couldn't find #{self.name} with key #{id.inspect}"
|
62
|
+
end
|
59
63
|
end
|
60
64
|
end
|
61
65
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
## TODO: remove this patch when datastax/ruby-driver release 3.2.3 is out
|
2
|
+
require 'ione'
|
3
|
+
require 'cassandra'
|
4
|
+
|
5
|
+
class Cassandra::Protocol::CqlProtocolHandler
|
6
|
+
class RequestPromise < Ione::Promise
|
7
|
+
old_constructor = instance_method(:initialize)
|
8
|
+
define_method(:initialize) do |request, timeout, scheduler|
|
9
|
+
@timer = nil
|
10
|
+
old_constructor.bind(self).(request, timeout, scheduler)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/test/support/cassandra.rb
CHANGED
@@ -13,6 +13,9 @@ CassandraObject::Base.config = {
|
|
13
13
|
connections_per_local_node: 4,
|
14
14
|
schema_refresh_delay: 0.1,
|
15
15
|
schema_refresh_timeout: 0.1,
|
16
|
+
load_balancing_policy: 'RoundRobin',
|
17
|
+
reconnection_policy: { policy: 'Constant', params: [5] },
|
18
|
+
retry_policy: 'Default',
|
16
19
|
# connections_per_remote_node: nil,
|
17
20
|
# logger: Logger.new($stderr)
|
18
21
|
}
|
@@ -55,6 +58,13 @@ end
|
|
55
58
|
|
56
59
|
module ActiveSupport
|
57
60
|
class TestCase
|
61
|
+
|
62
|
+
self.test_order = :random
|
63
|
+
|
64
|
+
def after_setup
|
65
|
+
CassandraObject::Base.created_records.clear if CassandraObject::Base.created_records.any?
|
66
|
+
end
|
67
|
+
|
58
68
|
teardown do
|
59
69
|
if CassandraObject::Base.created_records.any?
|
60
70
|
CassandraObject::Base.delete_after_test
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module CassandraObject
|
2
|
+
###
|
3
|
+
# Force reconnection in test
|
4
|
+
##
|
5
|
+
module AdapterExtension
|
6
|
+
def execute(*args)
|
7
|
+
retries = 0
|
8
|
+
begin
|
9
|
+
super
|
10
|
+
rescue Cassandra::Errors::NoHostsAvailable, Cassandra::Errors::IOError
|
11
|
+
@connection = nil
|
12
|
+
retries += 1
|
13
|
+
retries < 2 ? retry : raise
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def execute_async(*args)
|
18
|
+
retries = 0
|
19
|
+
begin
|
20
|
+
super
|
21
|
+
rescue Cassandra::Errors::NoHostsAvailable, Cassandra::Errors::IOError
|
22
|
+
@connection = nil
|
23
|
+
retries += 1
|
24
|
+
retries < 2 ? retry : raise
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module Adapters
|
30
|
+
class CassandraAdapter < AbstractAdapter
|
31
|
+
prepend AdapterExtension
|
32
|
+
end
|
33
|
+
class CassandraSchemalessAdapter < AbstractAdapter
|
34
|
+
prepend AdapterExtension
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -118,17 +118,16 @@ class CassandraObject::PersistenceSchemaTest < CassandraObject::TestCase
|
|
118
118
|
end
|
119
119
|
|
120
120
|
test 'ttl' do
|
121
|
-
|
121
|
+
description_test = 'this is the one with ttl'
|
122
|
+
issue = IssueSchema.create(title: 'I rule', description: description_test, ttl: 1)
|
122
123
|
assert_nothing_raised do
|
123
124
|
IssueSchema.find(issue.id)
|
124
125
|
end
|
125
|
-
|
126
126
|
sleep 2
|
127
|
-
|
128
|
-
|
129
|
-
|
127
|
+
issue = IssueSchema.find(issue.id) rescue nil
|
128
|
+
unless issue.nil?
|
129
|
+
assert_not_equal issue.description, description_test
|
130
130
|
end
|
131
|
-
|
132
131
|
end
|
133
132
|
|
134
133
|
test 'type tests' do
|
@@ -139,7 +138,7 @@ class CassandraObject::PersistenceSchemaTest < CassandraObject::TestCase
|
|
139
138
|
|
140
139
|
from_db = IssueSchema.find(issue.id)
|
141
140
|
assert_equal Float, from_db.field.class
|
142
|
-
assert_equal
|
141
|
+
assert_equal Integer, from_db.intero.class
|
143
142
|
# TODO add other types
|
144
143
|
# byebug
|
145
144
|
|
@@ -198,13 +198,17 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
|
|
198
198
|
assert_equal [], Issue.find(ids)
|
199
199
|
end
|
200
200
|
|
201
|
-
test 'ttl' do
|
202
|
-
record = Issue.create({title: 'name', ttl:
|
201
|
+
test 'ttl saves' do
|
202
|
+
record = Issue.create({title: 'name', ttl: 10})
|
203
203
|
assert_nothing_raised do
|
204
204
|
Issue.find(record.id)
|
205
205
|
end
|
206
|
+
end
|
207
|
+
|
208
|
+
test 'ttl expires' do
|
209
|
+
record = Issue.create({title: 'othername', ttl: 2})
|
206
210
|
|
207
|
-
sleep
|
211
|
+
sleep 4
|
208
212
|
|
209
213
|
assert_raise CassandraObject::RecordNotFound do
|
210
214
|
Issue.find(record.id)
|
@@ -4,8 +4,8 @@ class CassandraObject::TimestampsTest < CassandraObject::TestCase
|
|
4
4
|
test 'timestamps set on create' do
|
5
5
|
issue = Issue.create
|
6
6
|
|
7
|
-
assert_in_delta Time.now.to_i, issue.created_at.to_i,
|
8
|
-
assert_in_delta Time.now.to_i, issue.updated_at.to_i,
|
7
|
+
assert_in_delta Time.now.to_i, issue.created_at.to_i, 10
|
8
|
+
assert_in_delta Time.now.to_i, issue.updated_at.to_i, 10
|
9
9
|
end
|
10
10
|
|
11
11
|
test 'updated_at set on change' do
|
@@ -15,7 +15,7 @@ class CassandraObject::TimestampsTest < CassandraObject::TestCase
|
|
15
15
|
issue.description = 'lol'
|
16
16
|
issue.save
|
17
17
|
|
18
|
-
assert_in_delta Time.now.to_i, issue.updated_at.to_i,
|
18
|
+
assert_in_delta Time.now.to_i, issue.updated_at.to_i, 10
|
19
19
|
end
|
20
20
|
|
21
21
|
test 'created_at sets only if nil' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extendi-cassandra_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duccio Giovannelli
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "<="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '5.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "<="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '5.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: cassandra-driver
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/cassandra_object/types/time_type.rb
|
133
133
|
- lib/cassandra_object/types/type_helper.rb
|
134
134
|
- lib/cassandra_object/validations.rb
|
135
|
+
- lib/initializers/cassandra.rb
|
135
136
|
- test/support/cassandra.rb
|
136
137
|
- test/support/issue.rb
|
137
138
|
- test/support/issue_custom_config.rb
|
@@ -139,6 +140,7 @@ files:
|
|
139
140
|
- test/support/issue_schema.rb
|
140
141
|
- test/support/issue_schema_child.rb
|
141
142
|
- test/support/issue_schema_father.rb
|
143
|
+
- test/support/reconnection.rb
|
142
144
|
- test/test_helper.rb
|
143
145
|
- test/unit/active_model_test.rb
|
144
146
|
- test/unit/adapters/adapter_test.rb
|
@@ -201,4 +203,3 @@ signing_key:
|
|
201
203
|
specification_version: 4
|
202
204
|
summary: Cassandra ActiveModel
|
203
205
|
test_files: []
|
204
|
-
has_rdoc:
|