gotime-cassandra_object 2.11.4 → 2.11.5

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