sessionm-cassandra_object 2.2.44 → 2.2.45
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.
@@ -28,6 +28,8 @@ module CassandraObject
|
|
28
28
|
def attribute(name, options)
|
29
29
|
if model_attributes.empty?
|
30
30
|
self.model_attributes = {}.with_indifferent_access
|
31
|
+
elsif (model_attributes.size == 2) && model_attributes.include?(:created_at) && model_attributes.include?(:updated_at)
|
32
|
+
self.model_attributes = self.model_attributes.dup
|
31
33
|
end
|
32
34
|
|
33
35
|
if type_mapping = CassandraObject::Type.get_mapping(options[:type])
|
@@ -30,9 +30,7 @@ module CassandraObject
|
|
30
30
|
include ActiveModel::Conversion
|
31
31
|
extend ActiveSupport::DescendantsTracker
|
32
32
|
|
33
|
-
|
34
|
-
include AsyncConnection
|
35
|
-
#include Connection
|
33
|
+
include Fiber.respond_to?(:current) ? AsyncConnection : Connection
|
36
34
|
include Consistency
|
37
35
|
include RowTTL
|
38
36
|
include Identity
|
@@ -8,6 +8,7 @@ module CassandraObject
|
|
8
8
|
if status = super
|
9
9
|
@previously_changed = changes
|
10
10
|
@changed_attributes.clear
|
11
|
+
@original_attribute_values = nil
|
11
12
|
end
|
12
13
|
status
|
13
14
|
end
|
@@ -17,12 +18,18 @@ module CassandraObject
|
|
17
18
|
super.tap do
|
18
19
|
@previously_changed = changes
|
19
20
|
@changed_attributes.clear
|
21
|
+
@original_attribute_values = nil
|
20
22
|
end
|
21
23
|
end
|
22
24
|
|
23
25
|
def write_attribute(name, value)
|
24
26
|
name = name.to_s
|
25
|
-
|
27
|
+
|
28
|
+
# handle orig -> new -> orig
|
29
|
+
if attribute_changed?(name)
|
30
|
+
orig = changed_attributes[name]
|
31
|
+
changed_attributes.delete(name) if orig == value
|
32
|
+
else
|
26
33
|
old = read_attribute(name)
|
27
34
|
changed_attributes[name] = old if old != value
|
28
35
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CassandraObject::AttributesTest < CassandraObject::TestCase
|
4
|
+
|
5
|
+
class A < CassandraObject::Base
|
6
|
+
attribute :a, :type => :integer
|
7
|
+
end
|
8
|
+
|
9
|
+
class B < CassandraObject::Base
|
10
|
+
attribute :b, :type => :integer
|
11
|
+
end
|
12
|
+
|
13
|
+
test 'model_attributes' do
|
14
|
+
assert_equal %W[created_at updated_at a], A.model_attributes.keys
|
15
|
+
assert_equal %W[created_at updated_at b], B.model_attributes.keys
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
CHANGED
@@ -1,74 +1,58 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sessionm-cassandra_object
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 2
|
7
|
-
- 2
|
8
|
-
- 44
|
9
|
-
version: 2.2.44
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.2.45
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Michael Koziarski
|
13
9
|
- gotime
|
14
10
|
- sessionm
|
15
11
|
autorequire:
|
16
12
|
bindir: bin
|
17
13
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2012-04-05 00:00:00.000000000Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
23
17
|
name: rails
|
24
|
-
|
25
|
-
|
26
|
-
requirements:
|
18
|
+
requirement: &70235547209040 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
27
21
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: "3.0"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '3.0'
|
33
24
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: cassandra
|
37
25
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
26
|
+
version_requirements: *70235547209040
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cassandra
|
29
|
+
requirement: &70235547208560 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
46
34
|
version: 0.11.3
|
47
35
|
type: :runtime
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: bundler
|
51
36
|
prerelease: false
|
52
|
-
|
53
|
-
|
37
|
+
version_requirements: *70235547208560
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: bundler
|
40
|
+
requirement: &70235547208100 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
54
43
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
segments:
|
57
|
-
- 1
|
58
|
-
- 0
|
59
|
-
- 0
|
44
|
+
- !ruby/object:Gem::Version
|
60
45
|
version: 1.0.0
|
61
46
|
type: :development
|
62
|
-
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *70235547208100
|
63
49
|
description: Cassandra ActiveModel
|
64
50
|
email: klange@sessionm.com
|
65
51
|
executables: []
|
66
|
-
|
67
52
|
extensions: []
|
68
|
-
|
69
|
-
extra_rdoc_files:
|
53
|
+
extra_rdoc_files:
|
70
54
|
- README.markdown
|
71
|
-
files:
|
55
|
+
files:
|
72
56
|
- .gitignore
|
73
57
|
- CHANGELOG
|
74
58
|
- Gemfile
|
@@ -134,6 +118,7 @@ files:
|
|
134
118
|
- lib/cassandra_object/validations.rb
|
135
119
|
- sessionm-cassandra_object.gemspec
|
136
120
|
- test/active_model_test.rb
|
121
|
+
- test/attributes_test.rb
|
137
122
|
- test/base_test.rb
|
138
123
|
- test/batches_test.rb
|
139
124
|
- test/connection_test.rb
|
@@ -155,42 +140,33 @@ files:
|
|
155
140
|
- test/types/time_type_test.rb
|
156
141
|
- test/types/utf8_string_type_test.rb
|
157
142
|
- test/validations_test.rb
|
158
|
-
has_rdoc: true
|
159
143
|
homepage: http://github.com/sessionm/cassandra_object
|
160
144
|
licenses: []
|
161
|
-
|
162
145
|
post_install_message:
|
163
146
|
rdoc_options: []
|
164
|
-
|
165
|
-
require_paths:
|
147
|
+
require_paths:
|
166
148
|
- lib
|
167
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
- 1
|
173
|
-
- 9
|
174
|
-
- 2
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ! '>='
|
153
|
+
- !ruby/object:Gem::Version
|
175
154
|
version: 1.9.2
|
176
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
- 1
|
182
|
-
- 3
|
183
|
-
- 5
|
155
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
157
|
+
requirements:
|
158
|
+
- - ! '>='
|
159
|
+
- !ruby/object:Gem::Version
|
184
160
|
version: 1.3.5
|
185
161
|
requirements: []
|
186
|
-
|
187
162
|
rubyforge_project:
|
188
|
-
rubygems_version: 1.
|
163
|
+
rubygems_version: 1.8.6
|
189
164
|
signing_key:
|
190
165
|
specification_version: 3
|
191
166
|
summary: Cassandra ActiveModel
|
192
|
-
test_files:
|
167
|
+
test_files:
|
193
168
|
- test/active_model_test.rb
|
169
|
+
- test/attributes_test.rb
|
194
170
|
- test/base_test.rb
|
195
171
|
- test/batches_test.rb
|
196
172
|
- test/connection_test.rb
|