gotime-cassandra_object 2.7.3 → 2.7.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'gotime-cassandra_object'
5
- s.version = '2.7.3'
5
+ s.version = '2.7.4'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
 
@@ -4,8 +4,10 @@ module CassandraObject
4
4
  extend ActiveSupport::Autoload
5
5
 
6
6
  included do
7
- class_inheritable_array :migrations
8
- class_inheritable_accessor :current_schema_version
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
- write_inheritable_array(:migrations, [Migration.new(version, blk)])
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
- array = ActiveSupport::JSON.decode(str)
64
- array.uniq! if options[:unique]
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.3
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-01 00:00:00.000000000Z
13
+ date: 2011-09-07 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
17
- requirement: &70131057655200 !ruby/object:Gem::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: *70131057655200
25
+ version_requirements: *70284159657700
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: cassandra
28
- requirement: &70131057654400 !ruby/object:Gem::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: *70131057654400
36
+ version_requirements: *70284159657200
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &70131057653480 !ruby/object:Gem::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: *70131057653480
47
+ version_requirements: *70284159656660
48
48
  description: Cassandra ActiveModel
49
49
  email: gems@gotime.com
50
50
  executables: []