sessionm-cassandra_object 2.2.46 → 2.2.47
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/lib/cassandra_object/base.rb +1 -1
- data/lib/cassandra_object/callbacks.rb +22 -12
- data/lib/cassandra_object/validations.rb +1 -8
- data/sessionm-cassandra_object.gemspec +3 -3
- data/test/callbacks_test.rb +16 -0
- data/test/test_helper.rb +6 -0
- metadata +28 -11
@@ -1,27 +1,37 @@
|
|
1
|
+
require 'active_support/core_ext/array/wrap'
|
2
|
+
|
1
3
|
module CassandraObject
|
2
4
|
module Callbacks
|
3
5
|
extend ActiveSupport::Concern
|
4
6
|
|
5
7
|
included do
|
6
8
|
extend ActiveModel::Callbacks
|
7
|
-
|
9
|
+
include ActiveModel::Validations::Callbacks
|
10
|
+
|
11
|
+
define_model_callbacks :initialize, :find, :touch, :only => :after
|
12
|
+
define_model_callbacks :save, :create, :update, :destroy
|
8
13
|
end
|
9
14
|
|
10
15
|
def destroy #:nodoc:
|
11
16
|
_run_destroy_callbacks { super }
|
12
17
|
end
|
13
18
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
19
|
+
def touch(*) #:nodoc:
|
20
|
+
_run_touch_callbacks { super }
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
18
24
|
|
19
|
-
|
20
|
-
|
21
|
-
|
25
|
+
def create_or_update #:nodoc:
|
26
|
+
_run_save_callbacks { super }
|
27
|
+
end
|
28
|
+
|
29
|
+
def create #:nodoc:
|
30
|
+
_run_create_callbacks { super }
|
31
|
+
end
|
22
32
|
|
23
|
-
|
24
|
-
|
25
|
-
|
33
|
+
def update(*) #:nodoc:
|
34
|
+
_run_update_callbacks { super }
|
35
|
+
end
|
26
36
|
end
|
27
|
-
end
|
37
|
+
end
|
@@ -11,11 +11,6 @@ module CassandraObject
|
|
11
11
|
extend ActiveSupport::Concern
|
12
12
|
include ActiveModel::Validations
|
13
13
|
|
14
|
-
included do
|
15
|
-
define_model_callbacks :validation
|
16
|
-
define_callbacks :validate, :scope => :name
|
17
|
-
end
|
18
|
-
|
19
14
|
module ClassMethods
|
20
15
|
def create!(attributes = {})
|
21
16
|
new(attributes).tap do |object|
|
@@ -26,9 +21,7 @@ module CassandraObject
|
|
26
21
|
|
27
22
|
def valid?(context=nil)
|
28
23
|
context ||= (new_record? ? :create : :update)
|
29
|
-
|
30
|
-
super context
|
31
|
-
end
|
24
|
+
super(context)
|
32
25
|
end
|
33
26
|
|
34
27
|
def save(options={})
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'sessionm-cassandra_object'
|
5
|
-
s.version = '2.2.
|
5
|
+
s.version = '2.2.47'
|
6
6
|
s.description = 'Cassandra ActiveModel'
|
7
7
|
s.summary = 'Cassandra ActiveModel'
|
8
8
|
|
@@ -18,9 +18,9 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
19
|
s.require_paths = ['lib']
|
20
20
|
|
21
|
-
s.add_runtime_dependency('rails', "~> 3.0")
|
21
|
+
s.add_runtime_dependency('rails', "~> 3.0.9")
|
22
22
|
s.add_runtime_dependency('cassandra', ">= 0.11.3")
|
23
23
|
|
24
|
-
s.add_development_dependency('bundler', "
|
24
|
+
s.add_development_dependency('bundler', ">= 1.0.0")
|
25
25
|
end
|
26
26
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CassandraObject::CallbacksTest < CassandraObject::TestCase
|
4
|
+
|
5
|
+
test 'before_validation respects :on' do
|
6
|
+
issue = Issue.new
|
7
|
+
issue.save
|
8
|
+
assert_equal 'default name', issue.name
|
9
|
+
|
10
|
+
# make sure :on => :create is respected
|
11
|
+
issue.name = nil
|
12
|
+
issue.save
|
13
|
+
assert_equal nil, issue.name
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -9,6 +9,12 @@ class Issue < CassandraObject::Base
|
|
9
9
|
key :uuid
|
10
10
|
attribute :description, :type => :string
|
11
11
|
attribute :worth, :type => :decimal, :precision => 100
|
12
|
+
attribute :name, :type => :string
|
13
|
+
before_validation :set_defaults, :on => :create
|
14
|
+
|
15
|
+
def set_defaults
|
16
|
+
self.name ||= 'default name'
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
20
|
module CassandraObject
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sessionm-cassandra_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.47
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,22 +11,27 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-04-
|
14
|
+
date: 2012-04-20 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
18
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 3.0.9
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 3.0.9
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: cassandra
|
29
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
30
35
|
none: false
|
31
36
|
requirements:
|
32
37
|
- - ! '>='
|
@@ -34,18 +39,28 @@ dependencies:
|
|
34
39
|
version: 0.11.3
|
35
40
|
type: :runtime
|
36
41
|
prerelease: false
|
37
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.11.3
|
38
48
|
- !ruby/object:Gem::Dependency
|
39
49
|
name: bundler
|
40
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
41
51
|
none: false
|
42
52
|
requirements:
|
43
|
-
- -
|
53
|
+
- - ! '>='
|
44
54
|
- !ruby/object:Gem::Version
|
45
55
|
version: 1.0.0
|
46
56
|
type: :development
|
47
57
|
prerelease: false
|
48
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.0.0
|
49
64
|
description: Cassandra ActiveModel
|
50
65
|
email: klange@sessionm.com
|
51
66
|
executables: []
|
@@ -121,6 +136,7 @@ files:
|
|
121
136
|
- test/attributes_test.rb
|
122
137
|
- test/base_test.rb
|
123
138
|
- test/batches_test.rb
|
139
|
+
- test/callbacks_test.rb
|
124
140
|
- test/connection_test.rb
|
125
141
|
- test/consistency_test.rb
|
126
142
|
- test/finder_methods_test.rb
|
@@ -160,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
176
|
version: 1.3.5
|
161
177
|
requirements: []
|
162
178
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.8.
|
179
|
+
rubygems_version: 1.8.22
|
164
180
|
signing_key:
|
165
181
|
specification_version: 3
|
166
182
|
summary: Cassandra ActiveModel
|
@@ -169,6 +185,7 @@ test_files:
|
|
169
185
|
- test/attributes_test.rb
|
170
186
|
- test/base_test.rb
|
171
187
|
- test/batches_test.rb
|
188
|
+
- test/callbacks_test.rb
|
172
189
|
- test/connection_test.rb
|
173
190
|
- test/consistency_test.rb
|
174
191
|
- test/finder_methods_test.rb
|