couchbase-jruby-client 0.2.1-java → 0.2.2-java
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/lib/couchbase/version.rb +1 -1
- data/lib/couchbase/view.rb +6 -2
- data/lib/couchbase/view_row.rb +13 -1
- data/test/test_view.rb +1 -2
- data/test/test_view_row.rb +74 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ec71506555414ea67468af719e184392afa4704
|
4
|
+
data.tar.gz: 74653b08496b561fcf60bae9c03a836c47acff4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bbc04e04898e8505bc3ffd4ce5223c2ab2f13a0200c4c7eae0ddd3eb8ca61797f1f9e3b244f1aaff7c862c0e108e00469345c42e1420e137ffb5d2992c7ab9e
|
7
|
+
data.tar.gz: dfa98216f38e6ce0d8282ef7befe1bc85a2efe5332692df1f113e12d1d94a2e1332784f31e0fa5c9f9b28750ca895f1515461afff9abc062f1ad0b3150b1ec98
|
data/lib/couchbase/version.rb
CHANGED
data/lib/couchbase/view.rb
CHANGED
@@ -91,7 +91,7 @@ module Couchbase
|
|
91
91
|
@wrapper_class = params.delete(:wrapper_class) || ViewRow
|
92
92
|
@params = { connection_timeout: 75_000 }.merge(params)
|
93
93
|
unless @wrapper_class.respond_to?(:wrap)
|
94
|
-
raise ArgumentError, "wrapper class should
|
94
|
+
raise ArgumentError, "wrapper class should respond to :wrap, check the options"
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -352,7 +352,11 @@ module Couchbase
|
|
352
352
|
end
|
353
353
|
|
354
354
|
def wrap_or_parse_data(data)
|
355
|
-
|
355
|
+
if data.is_a? ViewRowReduced
|
356
|
+
data.value
|
357
|
+
else
|
358
|
+
@wrapper_class.wrap(@bucket, data)
|
359
|
+
end
|
356
360
|
end
|
357
361
|
|
358
362
|
def send_error(*args)
|
data/lib/couchbase/view_row.rb
CHANGED
@@ -23,8 +23,17 @@ module Couchbase
|
|
23
23
|
java_import com.couchbase.client.protocol.views.SpatialViewRowNoDocs
|
24
24
|
java_import com.couchbase.client.protocol.views.SpatialViewRowWithDocs
|
25
25
|
|
26
|
-
|
26
|
+
class Java::ComCouchbaseClientProtocolViews::ViewRowNoDocs
|
27
|
+
def doc
|
28
|
+
{
|
29
|
+
id: getId,
|
30
|
+
key: getKey,
|
31
|
+
value: getValue
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
27
35
|
|
36
|
+
class Java::ComCouchbaseClientProtocolViews::ViewRowWithDocs
|
28
37
|
def doc
|
29
38
|
{
|
30
39
|
'meta' => {
|
@@ -33,7 +42,9 @@ module Couchbase
|
|
33
42
|
'value' => document
|
34
43
|
}
|
35
44
|
end
|
45
|
+
end
|
36
46
|
|
47
|
+
module Java::ComCouchbaseClientProtocolViews::ViewRow
|
37
48
|
def [](key)
|
38
49
|
if respond_to?(key)
|
39
50
|
send(key)
|
@@ -43,6 +54,7 @@ module Couchbase
|
|
43
54
|
end
|
44
55
|
end
|
45
56
|
|
57
|
+
|
46
58
|
# This class encapsulates structured JSON document
|
47
59
|
#
|
48
60
|
# @since 1.2.0
|
data/test/test_view.rb
CHANGED
@@ -91,8 +91,7 @@ class TestView < Minitest::Test
|
|
91
91
|
def test_fetch_reduce
|
92
92
|
skip unless $mock.real?
|
93
93
|
assert results = reduce_view.fetch(stale: false, include_docs: false)
|
94
|
-
|
95
|
-
assert_equal 4, results.first.value
|
94
|
+
assert_equal '4', results.first
|
96
95
|
end
|
97
96
|
|
98
97
|
def test_fetch_without_reduce
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Author:: Mike Evans <mike@urlgonomics.com>
|
2
|
+
# Copyright:: 2013 Urlgonomics LLC.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require File.join(File.dirname(__FILE__), 'setup')
|
19
|
+
|
20
|
+
class TestViewRow < Minitest::Test
|
21
|
+
|
22
|
+
def setup
|
23
|
+
return unless $mock.real?
|
24
|
+
|
25
|
+
cb.save_design_doc(design_doc)
|
26
|
+
{ baltimore: 'md' , philadelphia: 'pa', pittsburgh: 'pa' }.each_pair do |city, state|
|
27
|
+
cb.set(city, { type: 'city', city: city, state: state })
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def view
|
32
|
+
@view ||= Couchbase::View.new(cb, '_design/cities/_view/by_state')
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_doc
|
36
|
+
skip unless $mock.real?
|
37
|
+
assert result = view.fetch(include_docs: true, stale: false).first
|
38
|
+
|
39
|
+
data = result.data
|
40
|
+
|
41
|
+
assert_instance_of Java::ComCouchbaseClientProtocolViews::ViewRowWithDocs, data
|
42
|
+
|
43
|
+
assert_equal({'id' => result.id}, data.doc['meta'])
|
44
|
+
assert_equal({'type' => result['type'], 'city' => result['city'], 'state' => result['state']}, data.doc['value'])
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_doc_for_ViewRowNoDocs_objects
|
48
|
+
skip unless $mock.real?
|
49
|
+
assert result = view.fetch(include_docs: false, stale: false).first
|
50
|
+
|
51
|
+
data = result.data
|
52
|
+
|
53
|
+
assert_instance_of Java::ComCouchbaseClientProtocolViews::ViewRowNoDocs, data
|
54
|
+
assert_equal({ id: result.id, key: data.key, value: data.value }, data.doc)
|
55
|
+
end
|
56
|
+
|
57
|
+
def design_doc
|
58
|
+
{
|
59
|
+
'_id' => '_design/cities',
|
60
|
+
'language' => 'javascript',
|
61
|
+
'views' => {
|
62
|
+
'by_state' => {
|
63
|
+
'map' => <<-JS
|
64
|
+
function (doc, meta) {
|
65
|
+
if (doc.type && doc.type == 'city')
|
66
|
+
emit(meta.id, doc.state);
|
67
|
+
}
|
68
|
+
JS
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: couchbase-jruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Mike Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -208,6 +208,7 @@ files:
|
|
208
208
|
- test/test_utils.rb
|
209
209
|
- test/test_version.rb
|
210
210
|
- test/test_view.rb
|
211
|
+
- test/test_view_row.rb
|
211
212
|
homepage: https://github.com/mje113/couchbase-jruby-client
|
212
213
|
licenses:
|
213
214
|
- Apache
|
@@ -228,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
229
|
version: '0'
|
229
230
|
requirements: []
|
230
231
|
rubyforge_project:
|
231
|
-
rubygems_version: 2.
|
232
|
+
rubygems_version: 2.1.9
|
232
233
|
signing_key:
|
233
234
|
specification_version: 4
|
234
235
|
summary: The unofficial jruby client library for use with Couchbase Server.
|
@@ -262,3 +263,4 @@ test_files:
|
|
262
263
|
- test/test_utils.rb
|
263
264
|
- test/test_version.rb
|
264
265
|
- test/test_view.rb
|
266
|
+
- test/test_view_row.rb
|