gotime-cassandra_object 2.7.3 → 2.7.4
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.
@@ -4,8 +4,10 @@ module CassandraObject
|
|
4
4
|
extend ActiveSupport::Autoload
|
5
5
|
|
6
6
|
included do
|
7
|
-
|
8
|
-
|
7
|
+
class_attribute :migrations
|
8
|
+
self.migrations = []
|
9
|
+
|
10
|
+
class_attribute :current_schema_version
|
9
11
|
self.current_schema_version = 0
|
10
12
|
end
|
11
13
|
|
@@ -25,7 +27,7 @@ module CassandraObject
|
|
25
27
|
|
26
28
|
module ClassMethods
|
27
29
|
def migrate(version, &blk)
|
28
|
-
|
30
|
+
migrations << Migration.new(version, blk)
|
29
31
|
|
30
32
|
if version > self.current_schema_version
|
31
33
|
self.current_schema_version = version
|
@@ -28,6 +28,7 @@ module CassandraObject
|
|
28
28
|
private
|
29
29
|
def setify!
|
30
30
|
if options[:unique]
|
31
|
+
compact!
|
31
32
|
uniq!
|
32
33
|
sort!
|
33
34
|
end
|
@@ -60,9 +61,11 @@ module CassandraObject
|
|
60
61
|
end
|
61
62
|
|
62
63
|
def decode(str)
|
63
|
-
|
64
|
-
|
65
|
-
array
|
64
|
+
return [] if str.nil?
|
65
|
+
|
66
|
+
ActiveSupport::JSON.decode(str).tap do |array|
|
67
|
+
array.uniq! if options[:unique]
|
68
|
+
end
|
66
69
|
end
|
67
70
|
|
68
71
|
def wrap(record, name, value)
|
@@ -11,6 +11,7 @@ class CassandraObject::Types::ArrayTypeTest < CassandraObject::Types::TestCase
|
|
11
11
|
|
12
12
|
test 'decode' do
|
13
13
|
assert_equal ['1', '2'], coder.decode(['1', '2'].to_json)
|
14
|
+
assert_equal [], coder.decode(nil)
|
14
15
|
end
|
15
16
|
|
16
17
|
class TestIssue < CassandraObject::Base
|
@@ -38,7 +39,8 @@ class CassandraObject::Types::ArrayTypeTest < CassandraObject::Types::TestCase
|
|
38
39
|
end
|
39
40
|
|
40
41
|
test 'unique array' do
|
41
|
-
issue = TestIssue.create favorite_colors: ['blue', 'red']
|
42
|
+
issue = TestIssue.create favorite_colors: ['blue', 'red', nil]
|
43
|
+
assert_equal ['blue', 'red'], issue.favorite_colors
|
42
44
|
|
43
45
|
issue.favorite_colors = ['red', 'red', 'blue']
|
44
46
|
assert !issue.changed?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gotime-cassandra_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-09-
|
13
|
+
date: 2011-09-07 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
17
|
-
requirement: &
|
17
|
+
requirement: &70284159657700 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70284159657700
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: cassandra
|
28
|
-
requirement: &
|
28
|
+
requirement: &70284159657200 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.12.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70284159657200
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bundler
|
39
|
-
requirement: &
|
39
|
+
requirement: &70284159656660 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: 1.0.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70284159656660
|
48
48
|
description: Cassandra ActiveModel
|
49
49
|
email: gems@gotime.com
|
50
50
|
executables: []
|