riak-record 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/riak_record/base.rb +3 -4
- data/lib/riak_record/finder/basic.rb +9 -8
- data/lib/riak_record/finder/erlang_enhanced.rb +33 -27
- data/riak-record.gemspec +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4634d0a8658d10c47899dd710c7952d6d129e1f2
|
4
|
+
data.tar.gz: 51df5cf9ca86b4aa9aec46c8213111642b9f0d36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32b6c185d2bcc27ff1fd6cebd9097d31df3a1cce646f66b80ea59066e338cec8437e6249750b235b16f888cb61fa3ccf400bccba213866e78d6cc24a925a0193
|
7
|
+
data.tar.gz: 09cdc00d887a3c22fa6b8265f4f80bb03affea55a4f3b4a1059f3bf6d7975d7769e76c9ce8c8c2d1d85a64178fc691f1060919ed58a540614ce04624e69f96c9
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.2
|
data/lib/riak_record/base.rb
CHANGED
@@ -132,9 +132,8 @@ module RiakRecord
|
|
132
132
|
finder.first(n)
|
133
133
|
end
|
134
134
|
|
135
|
-
|
136
|
-
|
137
|
-
finder.page(page_number, page_size)
|
135
|
+
def self.page(continuation = nil, page_size = nil)
|
136
|
+
finder.page(continuation, page_size)
|
138
137
|
end
|
139
138
|
|
140
139
|
def self.data_attributes(*attributes)
|
@@ -182,7 +181,7 @@ module RiakRecord
|
|
182
181
|
end
|
183
182
|
|
184
183
|
def self.where(options)
|
185
|
-
|
184
|
+
finder_class.new(self, options)
|
186
185
|
end
|
187
186
|
|
188
187
|
def self.find(key_or_keys)
|
@@ -109,13 +109,7 @@ module Finder
|
|
109
109
|
mr.run
|
110
110
|
end
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
def load_started?
|
115
|
-
@load_complete || @loaded_objects.count > 0
|
116
|
-
end
|
117
|
-
|
118
|
-
def count_by_map_reduce(attribute)
|
112
|
+
def count_by_map_reduce(attribute, timeout = nil)
|
119
113
|
count_by_index = @finder_class.index_names[attribute.to_sym].present?
|
120
114
|
parsed_attribute = count_by_index ? "v.values[0].metadata.index.#{@finder_class.index_names[attribute.to_sym]}" : "JSON.parse(v.values[0].data).#{attribute}"
|
121
115
|
Riak::MapReduce.new(@finder_class.client).
|
@@ -124,13 +118,20 @@ module Finder
|
|
124
118
|
reduce("function(values) { var result = {}; for (var value in values) { for (var key in values[value]) { if (key in result) { result[key] += values[value][key]; } else { result[key] = values[value][key]; }}} return [result]; }", :keep => true).run.first
|
125
119
|
end
|
126
120
|
|
127
|
-
def count_map_reduce
|
121
|
+
def count_map_reduce(timeout = nil)
|
128
122
|
Riak::MapReduce.new(@finder_class.client).
|
129
123
|
index(@bucket, @index, @value).
|
130
124
|
map("function(v){ return [1] }", :keep => false).
|
131
125
|
reduce(['riak_kv_mapreduce','reduce_sum'], :keep => true).run.first
|
132
126
|
end
|
133
127
|
|
128
|
+
|
129
|
+
private
|
130
|
+
|
131
|
+
def load_started?
|
132
|
+
@load_complete || @loaded_objects.count > 0
|
133
|
+
end
|
134
|
+
|
134
135
|
def load_next_page(page_size = @page_size)
|
135
136
|
return if @load_complete
|
136
137
|
if @querier
|
@@ -1,38 +1,44 @@
|
|
1
1
|
module RiakRecord
|
2
2
|
class Finder::ErlangEnhanced < Finder::Basic
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
def pluck_by_map_reduce(attribute, timeout = nil)
|
5
|
+
map_method, map_arg = map_method_for_attribute(attribute, "map_pluck_index", "map_pluck_value")
|
6
|
+
mr = Riak::MapReduce.new(@finder_class.client).
|
7
|
+
index(@bucket, @index, @value).
|
8
|
+
map(['riak_record_kv_mapreduce', map_method], :keep => true, :arg => [map_arg])
|
9
|
+
mr.timeout = timeout if timeout.present?
|
10
|
+
mr.run
|
11
|
+
end
|
12
12
|
|
13
|
-
|
13
|
+
def count_by_map_reduce(attribute, timeout = nil)
|
14
|
+
map_method, map_arg = map_method_for_attribute(attribute, "map_count_by_index", "map_count_by_value")
|
15
|
+
mr = Riak::MapReduce.new(@finder_class.client).
|
16
|
+
index(@bucket, @index, @value).
|
17
|
+
map(['riak_record_kv_mapreduce', map_method], :keep => false, :arg => [map_arg]).
|
18
|
+
reduce(['riak_record_kv_mapreduce', 'reduce_count_by'], :keep => true)
|
19
|
+
mr.timeout = timeout if timeout.present?
|
20
|
+
mr.run.first
|
21
|
+
end
|
22
|
+
|
23
|
+
def count_map_reduce(timeout = nil)
|
24
|
+
mr = Riak::MapReduce.new(@finder_class.client).
|
25
|
+
index(@bucket, @index, @value).
|
26
|
+
map(['riak_record_kv_mapreduce', 'map_count_found'], :keep => false).
|
27
|
+
reduce(['riak_kv_mapreduce','reduce_sum'], :keep => true)
|
28
|
+
mr.timeout = timeout if timeout.present?
|
29
|
+
mr.run.first
|
30
|
+
end
|
14
31
|
|
15
|
-
def map_method_for_attribute(attribute, index_method, value_method)
|
16
|
-
count_by_index = @finder_class.index_names[attribute.to_sym].present?
|
17
|
-
map_method = count_by_index ? index_method : value_method
|
18
|
-
map_arg = count_by_index ? @finder_class.index_names[attribute.to_sym] : attribute
|
19
|
-
[map_method, map_arg]
|
20
|
-
end
|
21
32
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
33
|
+
private
|
34
|
+
|
35
|
+
def map_method_for_attribute(attribute, index_method, value_method)
|
36
|
+
count_by_index = @finder_class.index_names[attribute.to_sym].present?
|
37
|
+
map_method = count_by_index ? index_method : value_method
|
38
|
+
map_arg = count_by_index ? @finder_class.index_names[attribute.to_sym] : attribute
|
39
|
+
[map_method, map_arg]
|
28
40
|
end
|
29
|
-
end
|
30
41
|
|
31
|
-
def count_map_reduce
|
32
|
-
Riak::MapReduce.new(@finder_class.client).
|
33
|
-
index(@bucket, @index, @value).
|
34
|
-
map(['riak_record_kv_mapreduce', 'map_count_found'], :keep => false).
|
35
|
-
reduce(['riak_kv_mapreduce','reduce_sum'], :keep => true).run.first
|
36
42
|
end
|
37
43
|
|
38
44
|
end
|
data/riak-record.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: riak-record 0.7.
|
5
|
+
# stub: riak-record 0.7.2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "riak-record"
|
9
|
-
s.version = "0.7.
|
9
|
+
s.version = "0.7.2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|