gotime-cassandra_object 2.3.1 → 2.3.2

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.
@@ -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