believer 0.2.10 → 0.2.11
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/believer/base.rb +6 -1
- data/lib/believer/column.rb +11 -3
- data/lib/believer/columns.rb +18 -0
- data/lib/believer/command.rb +6 -5
- data/lib/believer/query.rb +9 -1
- data/lib/believer/version.rb +1 -1
- metadata +111 -122
data/lib/believer/base.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
module Believer
|
3
2
|
class Base
|
4
3
|
extend ::ActiveModel::Naming
|
@@ -30,6 +29,12 @@ module Believer
|
|
30
29
|
end
|
31
30
|
|
32
31
|
def self.instantiate_from_result_rows(row)
|
32
|
+
unless apply_cql_result_row_conversion?
|
33
|
+
obj = new
|
34
|
+
obj.merge_attributes(row)
|
35
|
+
#obj.set_attributes_direct(HashWithIndifferentAccess.new(row))
|
36
|
+
return obj
|
37
|
+
end
|
33
38
|
new(row)
|
34
39
|
end
|
35
40
|
|
data/lib/believer/column.rb
CHANGED
@@ -37,9 +37,13 @@ module Believer
|
|
37
37
|
:timestamp => {:default_cql_type => :timestamp},
|
38
38
|
:float => {:default_cql_type => :float},
|
39
39
|
:array => {:default_cql_type => :list},
|
40
|
-
:set => {:default_cql_type => :set},
|
40
|
+
:set => {:default_cql_type => :set, :apply_cql_result_row_conversion => true},
|
41
41
|
:hash => {:default_cql_type => :map},
|
42
|
-
:counter => {
|
42
|
+
:counter => {
|
43
|
+
:default_cql_type => :counter,
|
44
|
+
:default_value => lambda { Counter.new },
|
45
|
+
:apply_cql_result_row_conversion => true
|
46
|
+
}
|
43
47
|
}
|
44
48
|
|
45
49
|
attr_reader :name,
|
@@ -69,7 +73,7 @@ module Believer
|
|
69
73
|
|
70
74
|
@default_value = opts[:default_value]
|
71
75
|
|
72
|
-
|
76
|
+
@apply_cql_result_row_conversion = opts[:apply_cql_result_row_conversion] || RUBY_TYPES[@ruby_type][:apply_cql_result_row_conversion]
|
73
77
|
end
|
74
78
|
|
75
79
|
# Converts the value to a one that conforms to the type of this column
|
@@ -112,6 +116,10 @@ module Believer
|
|
112
116
|
nil
|
113
117
|
end
|
114
118
|
|
119
|
+
def apply_cql_result_row_conversion?
|
120
|
+
@apply_cql_result_row_conversion == true
|
121
|
+
end
|
122
|
+
|
115
123
|
private
|
116
124
|
def to_cql_type(t)
|
117
125
|
return t if CQL_TYPES.has_key?(t)
|
data/lib/believer/columns.rb
CHANGED
@@ -77,6 +77,16 @@ module Believer
|
|
77
77
|
@primary_key.size > 1
|
78
78
|
end
|
79
79
|
|
80
|
+
def apply_cql_result_row_conversion?
|
81
|
+
if @apply_cql_result_row_conversion.nil?
|
82
|
+
@apply_cql_result_row_conversion = columns.any? {|name, col| col.apply_cql_result_row_conversion?}
|
83
|
+
end
|
84
|
+
@apply_cql_result_row_conversion
|
85
|
+
end
|
86
|
+
|
87
|
+
def apply_cql_result_row_conversion=(b)
|
88
|
+
@apply_cql_result_row_conversion = b
|
89
|
+
end
|
80
90
|
|
81
91
|
end
|
82
92
|
|
@@ -142,5 +152,13 @@ module Believer
|
|
142
152
|
end if attrs.present?
|
143
153
|
end
|
144
154
|
|
155
|
+
#protected
|
156
|
+
def merge_attributes(attrs)
|
157
|
+
@attributes ||= {}
|
158
|
+
attrs.each_pair do |k, v|
|
159
|
+
@attributes[k.to_sym] = v
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
145
163
|
end
|
146
164
|
end
|
data/lib/believer/command.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Believer
|
2
2
|
class Command
|
3
3
|
|
4
|
-
attr_accessor :record_class, :consistency_level
|
4
|
+
attr_accessor :record_class, :consistency_level, :execution_options
|
5
5
|
|
6
6
|
def initialize(attrs = {})
|
7
7
|
attrs.each do |name, value|
|
@@ -41,10 +41,11 @@ module Believer
|
|
41
41
|
name = "#{record_class.name} #{command_name}" if name.nil?
|
42
42
|
return ActiveSupport::Notifications.instrument('cql.believer', :cql => cql, :name => name) do
|
43
43
|
|
44
|
-
unless consistency_level.nil? || consistency_level.empty?
|
45
|
-
|
46
|
-
|
47
|
-
end
|
44
|
+
#unless consistency_level.nil? || consistency_level.empty?
|
45
|
+
# exec_opts ||= {}
|
46
|
+
# exec_opts[:consistency] = consistency_level
|
47
|
+
#end
|
48
|
+
exec_opts = (execution_options.nil? || execution_options.empty?) ? nil : execution_options
|
48
49
|
begin
|
49
50
|
return connection.execute(cql, exec_opts)
|
50
51
|
rescue Cql::NotConnectedError => not_connected
|
data/lib/believer/query.rb
CHANGED
@@ -4,6 +4,8 @@ module Believer
|
|
4
4
|
class Query < FilterCommand
|
5
5
|
include Extending
|
6
6
|
|
7
|
+
DEFAULT_FILTER_LIMIT = 10000
|
8
|
+
|
7
9
|
attr_accessor :record_class, :selects, :order_by, :limit_to, :filtering_allowed
|
8
10
|
alias :filtering_allowed? :filtering_allowed
|
9
11
|
|
@@ -99,7 +101,13 @@ module Believer
|
|
99
101
|
objects.size
|
100
102
|
end
|
101
103
|
|
102
|
-
def delete_all
|
104
|
+
def delete_all
|
105
|
+
del = Delete.new(:record_class => self.record_class)
|
106
|
+
del.wheres = self.wheres.dup
|
107
|
+
del.execute
|
108
|
+
end
|
109
|
+
|
110
|
+
def delete_all_chunked(options = {})
|
103
111
|
cnt = count
|
104
112
|
chunk_size = options[:delete_batch_chunk_size] || (self.limit_to.nil? ? nil : self.limit_to.size) || cnt
|
105
113
|
key_cols = self.record_class.primary_key_columns
|
data/lib/believer/version.rb
CHANGED
metadata
CHANGED
@@ -1,136 +1,135 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: believer
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.11
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 10
|
10
|
-
version: 0.2.10
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jerphaes van Blijenburgh
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-11-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: activemodel
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: cql-rb
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: cql-rb
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
38
33
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 1
|
46
|
-
- 0
|
47
|
-
- pre
|
48
|
-
- 6
|
49
|
-
version: 1.1.0.pre6
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
50
38
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: connection_pool
|
54
39
|
prerelease: false
|
55
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
41
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: connection_pool
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
64
54
|
type: :runtime
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: rake
|
68
55
|
prerelease: false
|
69
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
57
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
78
70
|
type: :development
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rspec
|
82
71
|
prerelease: false
|
83
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
73
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
92
86
|
type: :development
|
93
|
-
version_requirements: *id005
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: simplecov
|
96
87
|
prerelease: false
|
97
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
89
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - '='
|
100
|
+
- !ruby/object:Gem::Version
|
107
101
|
version: 0.7.1
|
108
102
|
type: :development
|
109
|
-
version_requirements: *id006
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: rails-observers
|
112
103
|
prerelease: false
|
113
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
105
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
106
|
+
requirements:
|
107
|
+
- - '='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.7.1
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rails-observers
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
122
118
|
type: :development
|
123
|
-
|
124
|
-
|
125
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: ! 'An Object Relational Mapping library for CQL3 '
|
127
|
+
email:
|
126
128
|
- jerphaes@gmail.com
|
127
129
|
executables: []
|
128
|
-
|
129
130
|
extensions: []
|
130
|
-
|
131
131
|
extra_rdoc_files: []
|
132
|
-
|
133
|
-
files:
|
132
|
+
files:
|
134
133
|
- lib/believer/base.rb
|
135
134
|
- lib/believer/batch.rb
|
136
135
|
- lib/believer/batch_delete.rb
|
@@ -198,41 +197,31 @@ files:
|
|
198
197
|
- spec/support/setup_database.rb
|
199
198
|
- spec/support/test_classes.rb
|
200
199
|
homepage: http://github.com/jerphaes/believer
|
201
|
-
licenses:
|
200
|
+
licenses:
|
202
201
|
- Apache License 2.0
|
203
202
|
post_install_message:
|
204
203
|
rdoc_options: []
|
205
|
-
|
206
|
-
require_paths:
|
204
|
+
require_paths:
|
207
205
|
- lib
|
208
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
209
207
|
none: false
|
210
|
-
requirements:
|
211
|
-
- -
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
hash: 55
|
214
|
-
segments:
|
215
|
-
- 1
|
216
|
-
- 9
|
217
|
-
- 2
|
208
|
+
requirements:
|
209
|
+
- - ! '>='
|
210
|
+
- !ruby/object:Gem::Version
|
218
211
|
version: 1.9.2
|
219
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
213
|
none: false
|
221
|
-
requirements:
|
222
|
-
- -
|
223
|
-
- !ruby/object:Gem::Version
|
224
|
-
|
225
|
-
segments:
|
226
|
-
- 0
|
227
|
-
version: "0"
|
214
|
+
requirements:
|
215
|
+
- - ! '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
228
218
|
requirements: []
|
229
|
-
|
230
219
|
rubyforge_project:
|
231
220
|
rubygems_version: 1.8.25
|
232
221
|
signing_key:
|
233
222
|
specification_version: 3
|
234
223
|
summary: CQL3 ORM
|
235
|
-
test_files:
|
224
|
+
test_files:
|
236
225
|
- spec/believer/base_spec.rb
|
237
226
|
- spec/believer/callback_spec.rb
|
238
227
|
- spec/believer/collection_columns_spec.rb
|