gotime-cassandra_object 4.7.3 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'gotime-cassandra_object'
5
- s.version = '4.7.3'
5
+ s.version = '4.8.0'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
  s.authors = ["Michael Koziarski", "gotime"]
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_runtime_dependency('activemodel', '>= 3.0')
21
21
  s.add_runtime_dependency('cassandra-cql')
22
- s.add_runtime_dependency('thrift_client', '~> 0.8.0')
22
+ s.add_runtime_dependency('thrift_client', '~> 0.9.0')
23
23
 
24
24
  s.add_development_dependency('bundler')
25
25
  end
@@ -2,6 +2,10 @@ module CassandraObject
2
2
  module Persistence
3
3
  extend ActiveSupport::Concern
4
4
 
5
+ included do
6
+ class_attribute :batch_statements
7
+ end
8
+
5
9
  module ClassMethods
6
10
  def remove(id)
7
11
  execute_batchable_cql "DELETE FROM #{column_family}#{write_option_string} WHERE KEY = ?", id
@@ -30,15 +34,15 @@ module CassandraObject
30
34
  end
31
35
 
32
36
  def batching?
33
- !@batch.nil?
37
+ !batch_statements.nil?
34
38
  end
35
39
 
36
40
  def batch
37
- @batch = []
41
+ self.batch_statements = []
38
42
  yield
39
- execute_cql(batch_statement) if @batch.any?
43
+ execute_cql(batch_statement) if batch_statements.any?
40
44
  ensure
41
- @batch = nil
45
+ self.batch_statements = nil
42
46
  end
43
47
 
44
48
  def instantiate(id, attributes)
@@ -67,18 +71,18 @@ module CassandraObject
67
71
  end
68
72
 
69
73
  def batch_statement
70
- return nil unless @batch.any?
74
+ return nil unless batch_statements.any?
71
75
 
72
76
  [
73
77
  "BEGIN BATCH#{write_option_string(true)}",
74
- @batch * "\n",
78
+ batch_statements * "\n",
75
79
  'APPLY BATCH'
76
80
  ] * "\n"
77
81
  end
78
82
 
79
83
  def execute_batchable_cql(cql_string, *bind_vars)
80
- if @batch
81
- @batch << CassandraCQL::Statement.sanitize(cql_string, bind_vars)
84
+ if batch_statements
85
+ batch_statements << CassandraCQL::Statement.sanitize(cql_string, bind_vars)
82
86
  else
83
87
  execute_cql cql_string, *bind_vars
84
88
  end
@@ -32,15 +32,17 @@ module CassandraObject
32
32
  clone.limit! value
33
33
  end
34
34
 
35
- def to_a
36
- statement = [
37
- "SELECT #{select_string} FROM #{klass.column_family}",
38
- consistency_string,
39
- where_string,
40
- limit_string
35
+ def to_cql
36
+ [
37
+ "SELECT #{select_string} FROM #{klass.column_family}",
38
+ consistency_string,
39
+ where_string,
40
+ limit_string
41
41
  ].delete_if(&:blank?) * ' '
42
+ end
42
43
 
43
- instantiate_from_cql(statement)
44
+ def to_a
45
+ instantiate_from_cql(to_cql)
44
46
  end
45
47
 
46
48
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gotime-cassandra_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.3
4
+ version: 4.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-24 00:00:00.000000000 Z
13
+ date: 2013-03-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
@@ -51,14 +51,14 @@ dependencies:
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.0
54
+ version: 0.9.0
55
55
  none: false
56
56
  type: :runtime
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 0.8.0
61
+ version: 0.9.0
62
62
  none: false
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: bundler