believer 0.2.10 → 0.2.11

Sign up to get free protection for your applications and to get access to all the features.
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
 
@@ -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 => {:default_cql_type => :counter, :default_value => lambda { Counter.new } }
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)
@@ -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
@@ -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
- exec_opts ||= {}
46
- exec_opts[:consistency] = consistency_level
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
@@ -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(options = {})
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
@@ -1,5 +1,5 @@
1
1
  module Believer
2
2
  module Version
3
- VERSION = '0.2.10'
3
+ VERSION = '0.2.11'
4
4
  end
5
5
  end
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
- hash: 3
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
- date: 2013-11-05 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- hash: 3
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- hash: -3233080982
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
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
56
41
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
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
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
70
57
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
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
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
84
73
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
90
- - 0
91
- version: "0"
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
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
98
89
  none: false
99
- requirements:
100
- - - "="
101
- - !ruby/object:Gem::Version
102
- hash: 1
103
- segments:
104
- - 0
105
- - 7
106
- - 1
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
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
114
105
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
120
- - 0
121
- version: "0"
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
- version_requirements: *id007
124
- description: "An Object Relational Mapping library for CQL3 "
125
- email:
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
- hash: 3
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