riak-record 0.7.1 → 0.7.2
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 +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"]
|