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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'gotime-cassandra_object'
5
- s.version = '2.11.4'
5
+ s.version = '2.11.5'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
 
@@ -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
- module InstanceMethods
23
- def schema_version
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
@@ -30,6 +30,7 @@ module CassandraObject
30
30
  eager_autoload do
31
31
  autoload :Definition
32
32
  autoload :Dirty
33
+ autoload :PrimaryKey
33
34
  autoload :Typecasting
34
35
  end
35
36
  end
@@ -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
@@ -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
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-25 00:00:00.000000000 Z
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: &70326022571280 !ruby/object:Gem::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: *70326022571280
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: &70326022570600 !ruby/object:Gem::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: *70326022570600
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: &70326022569860 !ruby/object:Gem::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: *70326022569860
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: &70326022568360 !ruby/object:Gem::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: *70326022568360
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.17
199
+ rubygems_version: 1.8.21
178
200
  signing_key:
179
201
  specification_version: 3
180
202
  summary: Cassandra ActiveModel