gotime-cassandra_object 3.0.3 → 3.0.4
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.
|
@@ -3,18 +3,16 @@ module CassandraObject
|
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
5
|
module ClassMethods
|
|
6
|
-
def find(
|
|
7
|
-
if
|
|
8
|
-
|
|
9
|
-
elsif attributes = connection.get(column_family, id, {:count => 500}).presence
|
|
10
|
-
instantiate(id, attributes)
|
|
6
|
+
def find(ids)
|
|
7
|
+
if ids.is_a?(Array)
|
|
8
|
+
find_some(ids)
|
|
11
9
|
else
|
|
12
|
-
|
|
10
|
+
find_one(ids)
|
|
13
11
|
end
|
|
14
12
|
end
|
|
15
13
|
|
|
16
|
-
def find_by_id(
|
|
17
|
-
find(
|
|
14
|
+
def find_by_id(ids)
|
|
15
|
+
find(ids)
|
|
18
16
|
rescue CassandraObject::RecordNotFound
|
|
19
17
|
nil
|
|
20
18
|
end
|
|
@@ -34,7 +32,23 @@ module CassandraObject
|
|
|
34
32
|
all(options.merge(limit: 1)).first
|
|
35
33
|
end
|
|
36
34
|
|
|
37
|
-
def
|
|
35
|
+
def count
|
|
36
|
+
connection.count_range(column_family)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def find_one(id)
|
|
42
|
+
if id.blank?
|
|
43
|
+
raise CassandraObject::RecordNotFound, "Couldn't find #{self.name} with key #{id.inspect}"
|
|
44
|
+
elsif attributes = connection.get(column_family, id, {:count => 500}).presence
|
|
45
|
+
instantiate(id, attributes)
|
|
46
|
+
else
|
|
47
|
+
raise CassandraObject::RecordNotFound
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def find_some(ids)
|
|
38
52
|
ids = ids.flatten
|
|
39
53
|
return ids if ids.empty?
|
|
40
54
|
|
|
@@ -43,10 +57,6 @@ module CassandraObject
|
|
|
43
57
|
multi_get(ids).values.compact
|
|
44
58
|
end
|
|
45
59
|
|
|
46
|
-
def count
|
|
47
|
-
connection.count_range(column_family)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
60
|
def multi_get(keys, options={})
|
|
51
61
|
attribute_results = ActiveSupport::Notifications.instrument("multi_get.cassandra_object", column_family: column_family, keys: keys) do
|
|
52
62
|
connection.multi_get(column_family, keys.map(&:to_s), consistency: thrift_read_consistency, count: 500)
|
|
@@ -18,6 +18,15 @@ class CassandraObject::FinderMethodsTest < CassandraObject::TestCase
|
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
test 'find with ids' do
|
|
22
|
+
first_issue = Issue.create
|
|
23
|
+
second_issue = Issue.create
|
|
24
|
+
third_issue = Issue.create
|
|
25
|
+
|
|
26
|
+
assert_equal [], Issue.find([])
|
|
27
|
+
assert_equal [first_issue, second_issue], Issue.find([first_issue.id, second_issue.id])
|
|
28
|
+
end
|
|
29
|
+
|
|
21
30
|
test 'find_by_id' do
|
|
22
31
|
Issue.create.tap do |issue|
|
|
23
32
|
assert_equal issue, Issue.find_by_id(issue.id)
|
|
@@ -39,14 +48,4 @@ class CassandraObject::FinderMethodsTest < CassandraObject::TestCase
|
|
|
39
48
|
|
|
40
49
|
assert [first_issue, second_issue].include?(Issue.first)
|
|
41
50
|
end
|
|
42
|
-
|
|
43
|
-
test 'find_with_ids' do
|
|
44
|
-
first_issue = Issue.create
|
|
45
|
-
second_issue = Issue.create
|
|
46
|
-
third_issue = Issue.create
|
|
47
|
-
|
|
48
|
-
assert_equal [], Issue.find_with_ids([])
|
|
49
|
-
assert_equal [first_issue, second_issue].to_set, Issue.find_with_ids(first_issue.id, second_issue.id).to_set
|
|
50
|
-
assert_equal [first_issue, second_issue].to_set, Issue.find_with_ids([first_issue.id, second_issue.id]).to_set
|
|
51
|
-
end
|
|
52
51
|
end
|
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: 3.0.
|
|
4
|
+
version: 3.0.4
|
|
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: 2012-07-
|
|
13
|
+
date: 2012-07-23 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: activemodel
|