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