gotime-cassandra_object 2.3.1 → 2.3.2

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.3.1'
5
+ s.version = '2.3.2'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
 
@@ -2,9 +2,9 @@ module CassandraObject
2
2
  class Attribute
3
3
  attr_reader :name, :coder, :expected_type
4
4
  def initialize(name, coder, expected_type)
5
- @name = name.to_s
6
- @coder = coder
7
- @expected_type = expected_type
5
+ @name = name.to_s
6
+ @coder = coder
7
+ @expected_type = expected_type
8
8
  end
9
9
 
10
10
  def check_value!(value)
@@ -18,11 +18,12 @@ module CassandraObject
18
18
  include ActiveModel::AttributeMethods
19
19
 
20
20
  module ClassMethods
21
- def attribute(name, options)
22
- if model_attributes.empty?
23
- self.model_attributes = {}.with_indifferent_access
24
- end
21
+ def inherited(child)
22
+ super
23
+ child.model_attributes = model_attributes.dup
24
+ end
25
25
 
26
+ def attribute(name, options)
26
27
  if type_mapping = CassandraObject::Type.get_mapping(options[:type])
27
28
  coder = type_mapping.coder
28
29
  expected_type = type_mapping.expected_type
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class CassandraObject::AttributesTest < CassandraObject::TestCase
4
+ class TestIssue < CassandraObject::Base
5
+ self.column_family = 'Issue'
6
+ end
7
+
8
+ class TestChildIssue < TestIssue
9
+ attribute :description, type: :string
10
+ end
11
+
12
+ test 'attributes not shared' do
13
+ assert_nothing_raised { Issue.new.description }
14
+ assert_raise(NoMethodError) { TestIssue.new.description }
15
+ assert_nothing_raised { TestChildIssue.new.description }
16
+ end
17
+
18
+ test 'attributes setter' do
19
+ issue = Issue.new
20
+
21
+ issue.attributes = {
22
+ description: 'foo'
23
+ }
24
+
25
+ assert_equal 'foo', issue.description
26
+ end
27
+ end
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.3.1
4
+ version: 2.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2011-08-09 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2160641660 !ruby/object:Gem::Requirement
17
+ requirement: &2160901980 !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: *2160641660
25
+ version_requirements: *2160901980
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: cassandra
28
- requirement: &2160641080 !ruby/object:Gem::Requirement
28
+ requirement: &2160901340 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.11.3
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2160641080
36
+ version_requirements: *2160901340
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &2160640500 !ruby/object:Gem::Requirement
39
+ requirement: &2160900880 !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: *2160640500
47
+ version_requirements: *2160900880
48
48
  description: Cassandra ActiveModel
49
49
  email: gems@gotime.com
50
50
  executables: []
@@ -114,6 +114,7 @@ files:
114
114
  - lib/cassandra_object/types/utf8_string_type.rb
115
115
  - lib/cassandra_object/validations.rb
116
116
  - test/active_model_test.rb
117
+ - test/attributes_test.rb
117
118
  - test/base_test.rb
118
119
  - test/batches_test.rb
119
120
  - test/connection_test.rb
@@ -160,6 +161,7 @@ specification_version: 3
160
161
  summary: Cassandra ActiveModel
161
162
  test_files:
162
163
  - test/active_model_test.rb
164
+ - test/attributes_test.rb
163
165
  - test/base_test.rb
164
166
  - test/batches_test.rb
165
167
  - test/connection_test.rb