gotime-cassandra_object 2.11.4 → 2.11.5
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.
- data/gotime-cassandra_object.gemspec +1 -1
- data/lib/cassandra_object/attribute_methods.rb +4 -0
- data/lib/cassandra_object/attribute_methods/primary_key.rb +26 -0
- data/lib/cassandra_object/base.rb +1 -2
- data/lib/cassandra_object/identity.rb +0 -13
- data/lib/cassandra_object/migrations.rb +2 -4
- data/lib/gotime-cassandra_object.rb +1 -0
- data/test/unit/attribute_methods/primary_key_test.rb +22 -0
- data/test/unit/identity_test.rb +0 -13
- metadata +33 -11
@@ -42,6 +42,10 @@ module CassandraObject
|
|
42
42
|
@attributes.key?(name.to_s)
|
43
43
|
end
|
44
44
|
|
45
|
+
def attributes
|
46
|
+
Hash[@attributes.map { |name, _| [name, read_attribute(name)] }]
|
47
|
+
end
|
48
|
+
|
45
49
|
def attributes=(attributes)
|
46
50
|
attributes.each do |(name, value)|
|
47
51
|
send("#{name}=", value)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module CassandraObject
|
2
|
+
module AttributeMethods
|
3
|
+
module PrimaryKey
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
def primary_key
|
8
|
+
'id'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def id
|
13
|
+
key.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def id=(key)
|
17
|
+
@key = self.class.parse_key(key)
|
18
|
+
id
|
19
|
+
end
|
20
|
+
|
21
|
+
def attributes
|
22
|
+
super.update(self.class.primary_key => id)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -37,14 +37,13 @@ module CassandraObject
|
|
37
37
|
include Batches
|
38
38
|
include AttributeMethods
|
39
39
|
include AttributeMethods::Dirty
|
40
|
+
include AttributeMethods::PrimaryKey
|
40
41
|
include AttributeMethods::Typecasting
|
41
42
|
include BelongsTo
|
42
43
|
include Validations
|
43
44
|
include Callbacks
|
44
45
|
include Timestamps
|
45
46
|
|
46
|
-
attr_reader :attributes
|
47
|
-
|
48
47
|
include Serialization
|
49
48
|
include Migrations
|
50
49
|
include Mocking
|
@@ -43,23 +43,10 @@ module CassandraObject
|
|
43
43
|
def parse_key(string)
|
44
44
|
key_factory.parse(string)
|
45
45
|
end
|
46
|
-
|
47
|
-
def primary_key
|
48
|
-
'id'
|
49
|
-
end
|
50
46
|
end
|
51
47
|
|
52
48
|
def key
|
53
49
|
@key ||= self.class.next_key(self)
|
54
50
|
end
|
55
|
-
|
56
|
-
def id
|
57
|
-
key.to_s
|
58
|
-
end
|
59
|
-
|
60
|
-
def id=(key)
|
61
|
-
@key = self.class.parse_key(key)
|
62
|
-
id
|
63
|
-
end
|
64
51
|
end
|
65
52
|
end
|
@@ -19,10 +19,8 @@ module CassandraObject
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
Integer(@schema_version || self.class.current_schema_version)
|
25
|
-
end
|
22
|
+
def schema_version
|
23
|
+
Integer(@schema_version || self.class.current_schema_version)
|
26
24
|
end
|
27
25
|
|
28
26
|
module ClassMethods
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CassandraObject::AttributeMethods::PrimaryTest < CassandraObject::TestCase
|
4
|
+
test 'get id' do
|
5
|
+
issue = Issue.new
|
6
|
+
|
7
|
+
assert_equal issue.key.to_s, issue.id
|
8
|
+
end
|
9
|
+
|
10
|
+
test 'set id' do
|
11
|
+
uuid = SimpleUUID::UUID.new.to_guid
|
12
|
+
issue = Issue.new id: uuid
|
13
|
+
|
14
|
+
assert_equal issue.key.to_s, uuid
|
15
|
+
end
|
16
|
+
|
17
|
+
test 'attributes' do
|
18
|
+
issue = Issue.new
|
19
|
+
|
20
|
+
assert_not_nil issue.attributes['id']
|
21
|
+
end
|
22
|
+
end
|
data/test/unit/identity_test.rb
CHANGED
@@ -11,19 +11,6 @@ class CassandraObject::IdentityTest < CassandraObject::TestCase
|
|
11
11
|
assert_not_nil issue.key
|
12
12
|
end
|
13
13
|
|
14
|
-
test 'get id' do
|
15
|
-
issue = Issue.new
|
16
|
-
|
17
|
-
assert_equal issue.key.to_s, issue.id
|
18
|
-
end
|
19
|
-
|
20
|
-
test 'set id' do
|
21
|
-
uuid = SimpleUUID::UUID.new.to_guid
|
22
|
-
issue = Issue.new id: uuid
|
23
|
-
|
24
|
-
assert_equal issue.key.to_s, uuid
|
25
|
-
end
|
26
|
-
|
27
14
|
test 'parse_key' do
|
28
15
|
assert_kind_of(
|
29
16
|
CassandraObject::Identity::UUIDKeyFactory::UUID,
|
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.11.
|
4
|
+
version: 2.11.5
|
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: 2012-04-
|
13
|
+
date: 2012-04-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,15 @@ dependencies:
|
|
22
22
|
version: '3.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '3.0'
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: cassandra
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ! '>='
|
@@ -33,10 +38,15 @@ dependencies:
|
|
33
38
|
version: 0.12.0
|
34
39
|
type: :runtime
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.12.0
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: thrift_client
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ~>
|
@@ -44,10 +54,15 @@ dependencies:
|
|
44
54
|
version: 0.8.0
|
45
55
|
type: :runtime
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.8.0
|
48
63
|
- !ruby/object:Gem::Dependency
|
49
64
|
name: bundler
|
50
|
-
requirement:
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
51
66
|
none: false
|
52
67
|
requirements:
|
53
68
|
- - ! '>='
|
@@ -55,7 +70,12 @@ dependencies:
|
|
55
70
|
version: '0'
|
56
71
|
type: :development
|
57
72
|
prerelease: false
|
58
|
-
version_requirements:
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
59
79
|
description: Cassandra ActiveModel
|
60
80
|
email: gems@gotime.com
|
61
81
|
executables: []
|
@@ -74,6 +94,7 @@ files:
|
|
74
94
|
- lib/cassandra_object/attribute_methods.rb
|
75
95
|
- lib/cassandra_object/attribute_methods/definition.rb
|
76
96
|
- lib/cassandra_object/attribute_methods/dirty.rb
|
97
|
+
- lib/cassandra_object/attribute_methods/primary_key.rb
|
77
98
|
- lib/cassandra_object/attribute_methods/typecasting.rb
|
78
99
|
- lib/cassandra_object/base.rb
|
79
100
|
- lib/cassandra_object/batches.rb
|
@@ -129,6 +150,7 @@ files:
|
|
129
150
|
- test/unit/active_model_test.rb
|
130
151
|
- test/unit/attribute_methods/definition_test.rb
|
131
152
|
- test/unit/attribute_methods/dirty_test.rb
|
153
|
+
- test/unit/attribute_methods/primary_key_test.rb
|
132
154
|
- test/unit/attribute_methods/typecasting_test.rb
|
133
155
|
- test/unit/attribute_methods_test.rb
|
134
156
|
- test/unit/base_test.rb
|
@@ -174,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
196
|
version: 1.3.5
|
175
197
|
requirements: []
|
176
198
|
rubyforge_project:
|
177
|
-
rubygems_version: 1.8.
|
199
|
+
rubygems_version: 1.8.21
|
178
200
|
signing_key:
|
179
201
|
specification_version: 3
|
180
202
|
summary: Cassandra ActiveModel
|