sessionm-cassandra_object 4.0.22 → 4.0.23

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c6b1adc45f37b9169f14ed31f81c709ce12a554
4
- data.tar.gz: 6fda0cf21694e605f856ed623bd52b47562e5015
3
+ metadata.gz: 871df5085b6c1b1c68df21f8b93a60479a04478a
4
+ data.tar.gz: 224f0f2aedda5ea4bf009e8675fbb3a4b776f947
5
5
  SHA512:
6
- metadata.gz: 6f8bed11092790fb5652bcf796cf52cd9aee39d14aa700ab1dbabeae69dd3ed36535d0e2fc9598f9d24b4cbd380906584850b227c98d5e78e4898cc36cc2f90d
7
- data.tar.gz: f734123a6a49d94544e63b671f025293bec77a988feafd8a6117fe588cf1220e73144c5088ac6ce9c1a3f50a0acae0d9a895f0d15d510a9097a85449ce8eb711
6
+ metadata.gz: b41af1ac8eb7f92af79408fcb0c52a06a24891396c841f65510881e5f5bcf6f7085341e1c64b1847f60e8990cd61049c9a98d8553dad6d8eba38d71adc7fa861
7
+ data.tar.gz: a675933722b4a149f481149e4613615a7278d05bcd7351becab977e726c5a093b12d9b0e086862a5f7c254d6bcbf86b4e84e3eb0e91227a4e7c19c7be8a6cd47
@@ -176,6 +176,16 @@ module CassandraObject
176
176
  end
177
177
  end
178
178
 
179
+ def add_multiple_columns(column_family, key, hash, opts=nil)
180
+ async = opts.try(:[], :async)
181
+ fields = [fields] unless fields.is_a?(Array)
182
+
183
+ hash.each do |field, by|
184
+ query = "UPDATE \"#{column_family}\" SET #{VALUE_FIELD} = #{VALUE_FIELD} + #{by} WHERE #{KEY_FIELD} = #{escape(key, key_type(column_family))} AND #{NAME_FIELD} = #{escape(field, name_type(column_family))};"
185
+ async ? self.execute_async(query, execute_options(opts)) : self.execute(query, execute_options(opts))
186
+ end
187
+ end
188
+
179
189
  def remove(column_family, key, *args)
180
190
  opts = args.pop if args.last.is_a?(Hash)
181
191
  async = opts.try(:[], :async)
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'sessionm-cassandra_object'
5
- s.version = '4.0.22'
5
+ s.version = '4.0.23'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
 
@@ -6,8 +6,20 @@ describe CassandraObject::Persistence do
6
6
  id = SimpleUUID::UUID.new.to_guid
7
7
  Counter.add id, 1, 'foo'
8
8
  expect(Counter.get_counter(id, 'foo')).to eq 1
9
- Counter.add id, 1, 'foo'
9
+ Counter.connection.add Counter.column_family, id, 1, ['foo', 'bar']
10
+ expect(Counter.get_counter(id, 'foo')).to eq 2
11
+ expect(Counter.get_counter(id, 'bar')).to eq 1
12
+ end
13
+ end
14
+
15
+ context "add_multiple_columns" do
16
+ it "should increment the counter" do
17
+ id = SimpleUUID::UUID.new.to_guid
18
+ Counter.connection.add_multiple_columns Counter.column_family, id, {'foo' => 1}
19
+ expect(Counter.get_counter(id, 'foo')).to eq 1
20
+ Counter.connection.add_multiple_columns Counter.column_family, id, {'foo' => 1, 'bar' => 1}
10
21
  expect(Counter.get_counter(id, 'foo')).to eq 2
22
+ expect(Counter.get_counter(id, 'bar')).to eq 1
11
23
  end
12
24
  end
13
25
  end
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: 4.0.22
4
+ version: 4.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Youch
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-19 00:00:00.000000000 Z
12
+ date: 2017-04-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Cassandra ActiveModel
15
15
  email: doug@sessionm.com