couchbase 3.0.0.alpha.1-universal-darwin-19 → 3.0.0.alpha.2-universal-darwin-19

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.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests-6.0.3.yml +49 -0
  3. data/.github/workflows/tests.yml +47 -0
  4. data/.gitmodules +3 -0
  5. data/.idea/dictionaries/gem_terms.xml +5 -0
  6. data/.idea/inspectionProfiles/Project_Default.xml +1 -0
  7. data/.idea/vcs.xml +1 -0
  8. data/Gemfile +1 -0
  9. data/README.md +55 -2
  10. data/Rakefile +18 -0
  11. data/bin/init-cluster +62 -0
  12. data/bin/setup +1 -0
  13. data/couchbase.gemspec +3 -2
  14. data/examples/crud.rb +1 -2
  15. data/examples/managing_buckets.rb +47 -0
  16. data/examples/managing_collections.rb +58 -0
  17. data/examples/managing_query_indexes.rb +63 -0
  18. data/examples/query.rb +3 -2
  19. data/examples/query_with_consistency.rb +76 -0
  20. data/examples/subdocument.rb +23 -1
  21. data/ext/.clang-format +1 -1
  22. data/ext/.idea/dictionaries/couchbase_terms.xml +2 -0
  23. data/ext/.idea/vcs.xml +1 -0
  24. data/ext/CMakeLists.txt +30 -12
  25. data/ext/build_version.hxx.in +26 -0
  26. data/ext/couchbase/bucket.hxx +69 -8
  27. data/ext/couchbase/cluster.hxx +70 -54
  28. data/ext/couchbase/collections_manifest.hxx +3 -3
  29. data/ext/couchbase/configuration.hxx +14 -0
  30. data/ext/couchbase/couchbase.cxx +2044 -383
  31. data/ext/couchbase/{operations/document_id.hxx → document_id.hxx} +5 -4
  32. data/ext/couchbase/io/http_message.hxx +5 -1
  33. data/ext/couchbase/io/http_parser.hxx +2 -1
  34. data/ext/couchbase/io/http_session.hxx +6 -3
  35. data/ext/couchbase/io/{binary_message.hxx → mcbp_message.hxx} +15 -12
  36. data/ext/couchbase/io/mcbp_parser.hxx +99 -0
  37. data/ext/couchbase/io/{key_value_session.hxx → mcbp_session.hxx} +200 -95
  38. data/ext/couchbase/io/session_manager.hxx +37 -22
  39. data/ext/couchbase/mutation_token.hxx +2 -1
  40. data/ext/couchbase/operations.hxx +38 -8
  41. data/ext/couchbase/operations/bucket_create.hxx +138 -0
  42. data/ext/couchbase/operations/bucket_drop.hxx +65 -0
  43. data/ext/couchbase/operations/bucket_flush.hxx +65 -0
  44. data/ext/couchbase/operations/bucket_get.hxx +69 -0
  45. data/ext/couchbase/operations/bucket_get_all.hxx +62 -0
  46. data/ext/couchbase/operations/bucket_settings.hxx +111 -0
  47. data/ext/couchbase/operations/bucket_update.hxx +115 -0
  48. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +60 -0
  49. data/ext/couchbase/operations/collection_create.hxx +86 -0
  50. data/ext/couchbase/operations/collection_drop.hxx +82 -0
  51. data/ext/couchbase/operations/command.hxx +10 -10
  52. data/ext/couchbase/operations/document_decrement.hxx +80 -0
  53. data/ext/couchbase/operations/document_exists.hxx +80 -0
  54. data/ext/couchbase/operations/{get.hxx → document_get.hxx} +4 -2
  55. data/ext/couchbase/operations/document_get_and_lock.hxx +64 -0
  56. data/ext/couchbase/operations/document_get_and_touch.hxx +64 -0
  57. data/ext/couchbase/operations/document_increment.hxx +80 -0
  58. data/ext/couchbase/operations/document_insert.hxx +74 -0
  59. data/ext/couchbase/operations/{lookup_in.hxx → document_lookup_in.hxx} +2 -2
  60. data/ext/couchbase/operations/{mutate_in.hxx → document_mutate_in.hxx} +11 -2
  61. data/ext/couchbase/operations/{query.hxx → document_query.hxx} +101 -6
  62. data/ext/couchbase/operations/document_remove.hxx +67 -0
  63. data/ext/couchbase/operations/document_replace.hxx +76 -0
  64. data/ext/couchbase/operations/{upsert.hxx → document_touch.hxx} +14 -14
  65. data/ext/couchbase/operations/{remove.hxx → document_unlock.hxx} +12 -10
  66. data/ext/couchbase/operations/document_upsert.hxx +74 -0
  67. data/ext/couchbase/operations/query_index_build_deferred.hxx +85 -0
  68. data/ext/couchbase/operations/query_index_create.hxx +134 -0
  69. data/ext/couchbase/operations/query_index_drop.hxx +108 -0
  70. data/ext/couchbase/operations/query_index_get_all.hxx +106 -0
  71. data/ext/couchbase/operations/scope_create.hxx +81 -0
  72. data/ext/couchbase/operations/scope_drop.hxx +79 -0
  73. data/ext/couchbase/operations/scope_get_all.hxx +72 -0
  74. data/ext/couchbase/protocol/client_opcode.hxx +35 -0
  75. data/ext/couchbase/protocol/client_request.hxx +56 -9
  76. data/ext/couchbase/protocol/client_response.hxx +52 -15
  77. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +81 -0
  78. data/ext/couchbase/protocol/cmd_decrement.hxx +187 -0
  79. data/ext/couchbase/protocol/cmd_exists.hxx +171 -0
  80. data/ext/couchbase/protocol/cmd_get.hxx +31 -8
  81. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +142 -0
  82. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +142 -0
  83. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +16 -3
  84. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +16 -3
  85. data/ext/couchbase/protocol/cmd_get_error_map.hxx +16 -3
  86. data/ext/couchbase/protocol/cmd_hello.hxx +24 -8
  87. data/ext/couchbase/protocol/cmd_increment.hxx +187 -0
  88. data/ext/couchbase/protocol/cmd_info.hxx +1 -0
  89. data/ext/couchbase/protocol/cmd_insert.hxx +172 -0
  90. data/ext/couchbase/protocol/cmd_lookup_in.hxx +28 -13
  91. data/ext/couchbase/protocol/cmd_mutate_in.hxx +65 -13
  92. data/ext/couchbase/protocol/cmd_remove.hxx +59 -4
  93. data/ext/couchbase/protocol/cmd_replace.hxx +172 -0
  94. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +15 -3
  95. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +15 -3
  96. data/ext/couchbase/protocol/cmd_sasl_step.hxx +15 -3
  97. data/ext/couchbase/protocol/cmd_select_bucket.hxx +14 -2
  98. data/ext/couchbase/protocol/cmd_touch.hxx +102 -0
  99. data/ext/couchbase/protocol/cmd_unlock.hxx +95 -0
  100. data/ext/couchbase/protocol/cmd_upsert.hxx +50 -14
  101. data/ext/couchbase/protocol/durability_level.hxx +67 -0
  102. data/ext/couchbase/protocol/frame_info_id.hxx +187 -0
  103. data/ext/couchbase/protocol/hello_feature.hxx +137 -0
  104. data/ext/couchbase/protocol/server_opcode.hxx +57 -0
  105. data/ext/couchbase/protocol/server_request.hxx +122 -0
  106. data/ext/couchbase/protocol/unsigned_leb128.h +15 -15
  107. data/ext/couchbase/utils/byteswap.hxx +1 -2
  108. data/ext/couchbase/utils/url_codec.hxx +225 -0
  109. data/ext/couchbase/version.hxx +3 -1
  110. data/ext/extconf.rb +4 -1
  111. data/ext/test/main.cxx +37 -113
  112. data/ext/third_party/snappy/.appveyor.yml +36 -0
  113. data/ext/third_party/snappy/.gitignore +8 -0
  114. data/ext/third_party/snappy/.travis.yml +98 -0
  115. data/ext/third_party/snappy/AUTHORS +1 -0
  116. data/ext/third_party/snappy/CMakeLists.txt +345 -0
  117. data/ext/third_party/snappy/CONTRIBUTING.md +26 -0
  118. data/ext/third_party/snappy/COPYING +54 -0
  119. data/ext/third_party/snappy/NEWS +188 -0
  120. data/ext/third_party/snappy/README.md +148 -0
  121. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +33 -0
  122. data/ext/third_party/snappy/cmake/config.h.in +59 -0
  123. data/ext/third_party/snappy/docs/README.md +72 -0
  124. data/ext/third_party/snappy/format_description.txt +110 -0
  125. data/ext/third_party/snappy/framing_format.txt +135 -0
  126. data/ext/third_party/snappy/snappy-c.cc +90 -0
  127. data/ext/third_party/snappy/snappy-c.h +138 -0
  128. data/ext/third_party/snappy/snappy-internal.h +315 -0
  129. data/ext/third_party/snappy/snappy-sinksource.cc +121 -0
  130. data/ext/third_party/snappy/snappy-sinksource.h +182 -0
  131. data/ext/third_party/snappy/snappy-stubs-internal.cc +42 -0
  132. data/ext/third_party/snappy/snappy-stubs-internal.h +493 -0
  133. data/ext/third_party/snappy/snappy-stubs-public.h.in +63 -0
  134. data/ext/third_party/snappy/snappy-test.cc +613 -0
  135. data/ext/third_party/snappy/snappy-test.h +526 -0
  136. data/ext/third_party/snappy/snappy.cc +1770 -0
  137. data/ext/third_party/snappy/snappy.h +209 -0
  138. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +60 -0
  139. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +58 -0
  140. data/ext/third_party/snappy/snappy_unittest.cc +1512 -0
  141. data/ext/third_party/snappy/testdata/alice29.txt +3609 -0
  142. data/ext/third_party/snappy/testdata/asyoulik.txt +4122 -0
  143. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  144. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  145. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  146. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  147. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  148. data/ext/third_party/snappy/testdata/html +1 -0
  149. data/ext/third_party/snappy/testdata/html_x_4 +1 -0
  150. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  151. data/ext/third_party/snappy/testdata/lcet10.txt +7519 -0
  152. data/ext/third_party/snappy/testdata/paper-100k.pdf +600 -2
  153. data/ext/third_party/snappy/testdata/plrabn12.txt +10699 -0
  154. data/ext/third_party/snappy/testdata/urls.10K +10000 -0
  155. data/lib/couchbase/binary_collection.rb +33 -76
  156. data/lib/couchbase/binary_collection_options.rb +94 -0
  157. data/lib/couchbase/bucket.rb +9 -3
  158. data/lib/couchbase/cluster.rb +161 -23
  159. data/lib/couchbase/collection.rb +108 -191
  160. data/lib/couchbase/collection_options.rb +430 -0
  161. data/lib/couchbase/errors.rb +136 -134
  162. data/lib/couchbase/json_transcoder.rb +32 -0
  163. data/lib/couchbase/management/analytics_index_manager.rb +185 -9
  164. data/lib/couchbase/management/bucket_manager.rb +84 -33
  165. data/lib/couchbase/management/collection_manager.rb +166 -1
  166. data/lib/couchbase/management/query_index_manager.rb +261 -0
  167. data/lib/couchbase/management/search_index_manager.rb +291 -0
  168. data/lib/couchbase/management/user_manager.rb +12 -10
  169. data/lib/couchbase/management/view_index_manager.rb +151 -1
  170. data/lib/couchbase/mutation_state.rb +11 -1
  171. data/lib/couchbase/scope.rb +4 -4
  172. data/lib/couchbase/version.rb +1 -1
  173. metadata +113 -18
  174. data/.travis.yml +0 -7
  175. data/ext/couchbase/io/binary_parser.hxx +0 -64
  176. data/lib/couchbase/results.rb +0 -307
@@ -22,13 +22,23 @@ module Couchbase
22
22
  attr_accessor :sequence_number
23
23
  # @return [String] name of the bucket
24
24
  attr_accessor :bucket_name
25
+
26
+ # @yieldparam [MutationToken] self
27
+ def initialize
28
+ yield self if block_given?
29
+ end
25
30
  end
26
31
 
27
32
  class MutationState
33
+ attr_accessor :tokens
34
+
28
35
  # Create a mutation state from one or more MutationTokens
29
36
  #
30
37
  # @param [Array<MutationToken>] mutation_tokens the mutation tokens
31
- def initialize(*mutation_tokens) end
38
+ def initialize(*mutation_tokens)
39
+ @tokens = []
40
+ add(*mutation_tokens)
41
+ end
32
42
 
33
43
  # Add one or more Mutation tokens to this state
34
44
  #
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'couchbase/collection'
15
+ require "couchbase/collection"
16
16
 
17
17
  module Couchbase
18
18
  class Scope
@@ -23,7 +23,7 @@ module Couchbase
23
23
 
24
24
  # @param [Couchbase::Backend] backend
25
25
  # @param [String] bucket_name name of the bucket
26
- # @param [String, :default] scope_name name of the scope
26
+ # @param [String, :_default] scope_name name of the scope
27
27
  def initialize(backend, bucket_name, scope_name)
28
28
  @backend = backend
29
29
  @bucket_name = bucket_name
@@ -34,7 +34,7 @@ module Couchbase
34
34
  #
35
35
  # @return [Collection]
36
36
  def default_collection
37
- Collection.new(@backend, @bucket_name, @name, :default)
37
+ Collection.new(@backend, @bucket_name, @name, :_default)
38
38
  end
39
39
 
40
40
  # Opens the default collection for this scope
@@ -46,4 +46,4 @@ module Couchbase
46
46
  Collection.new(@backend, @bucket_name, @name, collection_name)
47
47
  end
48
48
  end
49
- end
49
+ end
@@ -14,5 +14,5 @@
14
14
 
15
15
  module Couchbase
16
16
  VERSION = {} unless defined?(VERSION)
17
- VERSION.update(:sdk => "3.0.0.alpha.1".freeze)
17
+ VERSION.update(:sdk => "3.0.0.alpha.2".freeze)
18
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha.1
4
+ version: 3.0.0.alpha.2
5
5
  platform: universal-darwin-19
6
6
  authors:
7
7
  - Sergey Avseyev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-21 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,22 +73,28 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/tests-6.0.3.yml"
77
+ - ".github/workflows/tests.yml"
76
78
  - ".gitignore"
77
79
  - ".gitmodules"
78
80
  - ".idea/.gitignore"
79
81
  - ".idea/dictionaries/gem_terms.xml"
80
82
  - ".idea/inspectionProfiles/Project_Default.xml"
81
83
  - ".idea/vcs.xml"
82
- - ".travis.yml"
83
84
  - Gemfile
84
85
  - LICENSE.txt
85
86
  - README.md
86
87
  - Rakefile
87
88
  - bin/console
89
+ - bin/init-cluster
88
90
  - bin/setup
89
91
  - couchbase.gemspec
90
92
  - examples/crud.rb
93
+ - examples/managing_buckets.rb
94
+ - examples/managing_collections.rb
95
+ - examples/managing_query_indexes.rb
91
96
  - examples/query.rb
97
+ - examples/query_with_consistency.rb
92
98
  - examples/subdocument.rb
93
99
  - ext/.clang-format
94
100
  - ext/.clang-tidy
@@ -102,6 +108,7 @@ files:
102
108
  - ext/.idea/vcs.xml
103
109
  - ext/CMakeLists.txt
104
110
  - ext/LICENSE.txt
111
+ - ext/build_version.hxx.in
105
112
  - ext/couchbase/bucket.hxx
106
113
  - ext/couchbase/cbcrypto/cbcrypto.cc
107
114
  - ext/couchbase/cbcrypto/cbcrypto.h
@@ -123,25 +130,51 @@ files:
123
130
  - ext/couchbase/configuration.hxx
124
131
  - ext/couchbase/configuration_monitor.hxx
125
132
  - ext/couchbase/couchbase.cxx
133
+ - ext/couchbase/document_id.hxx
126
134
  - ext/couchbase/error_map.hxx
127
135
  - ext/couchbase/errors.hxx
128
- - ext/couchbase/io/binary_message.hxx
129
- - ext/couchbase/io/binary_parser.hxx
130
136
  - ext/couchbase/io/http_message.hxx
131
137
  - ext/couchbase/io/http_parser.hxx
132
138
  - ext/couchbase/io/http_session.hxx
133
- - ext/couchbase/io/key_value_session.hxx
139
+ - ext/couchbase/io/mcbp_message.hxx
140
+ - ext/couchbase/io/mcbp_parser.hxx
141
+ - ext/couchbase/io/mcbp_session.hxx
134
142
  - ext/couchbase/io/session_manager.hxx
135
143
  - ext/couchbase/mutation_token.hxx
136
144
  - ext/couchbase/operations.hxx
145
+ - ext/couchbase/operations/bucket_create.hxx
146
+ - ext/couchbase/operations/bucket_drop.hxx
147
+ - ext/couchbase/operations/bucket_flush.hxx
148
+ - ext/couchbase/operations/bucket_get.hxx
149
+ - ext/couchbase/operations/bucket_get_all.hxx
150
+ - ext/couchbase/operations/bucket_settings.hxx
151
+ - ext/couchbase/operations/bucket_update.hxx
152
+ - ext/couchbase/operations/cluster_developer_preview_enable.hxx
153
+ - ext/couchbase/operations/collection_create.hxx
154
+ - ext/couchbase/operations/collection_drop.hxx
137
155
  - ext/couchbase/operations/command.hxx
138
- - ext/couchbase/operations/document_id.hxx
139
- - ext/couchbase/operations/get.hxx
140
- - ext/couchbase/operations/lookup_in.hxx
141
- - ext/couchbase/operations/mutate_in.hxx
142
- - ext/couchbase/operations/query.hxx
143
- - ext/couchbase/operations/remove.hxx
144
- - ext/couchbase/operations/upsert.hxx
156
+ - ext/couchbase/operations/document_decrement.hxx
157
+ - ext/couchbase/operations/document_exists.hxx
158
+ - ext/couchbase/operations/document_get.hxx
159
+ - ext/couchbase/operations/document_get_and_lock.hxx
160
+ - ext/couchbase/operations/document_get_and_touch.hxx
161
+ - ext/couchbase/operations/document_increment.hxx
162
+ - ext/couchbase/operations/document_insert.hxx
163
+ - ext/couchbase/operations/document_lookup_in.hxx
164
+ - ext/couchbase/operations/document_mutate_in.hxx
165
+ - ext/couchbase/operations/document_query.hxx
166
+ - ext/couchbase/operations/document_remove.hxx
167
+ - ext/couchbase/operations/document_replace.hxx
168
+ - ext/couchbase/operations/document_touch.hxx
169
+ - ext/couchbase/operations/document_unlock.hxx
170
+ - ext/couchbase/operations/document_upsert.hxx
171
+ - ext/couchbase/operations/query_index_build_deferred.hxx
172
+ - ext/couchbase/operations/query_index_create.hxx
173
+ - ext/couchbase/operations/query_index_drop.hxx
174
+ - ext/couchbase/operations/query_index_get_all.hxx
175
+ - ext/couchbase/operations/scope_create.hxx
176
+ - ext/couchbase/operations/scope_drop.hxx
177
+ - ext/couchbase/operations/scope_get_all.hxx
145
178
  - ext/couchbase/platform/base64.cc
146
179
  - ext/couchbase/platform/base64.h
147
180
  - ext/couchbase/platform/random.cc
@@ -153,28 +186,43 @@ files:
153
186
  - ext/couchbase/protocol/client_opcode.hxx
154
187
  - ext/couchbase/protocol/client_request.hxx
155
188
  - ext/couchbase/protocol/client_response.hxx
189
+ - ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx
190
+ - ext/couchbase/protocol/cmd_decrement.hxx
191
+ - ext/couchbase/protocol/cmd_exists.hxx
156
192
  - ext/couchbase/protocol/cmd_get.hxx
193
+ - ext/couchbase/protocol/cmd_get_and_lock.hxx
194
+ - ext/couchbase/protocol/cmd_get_and_touch.hxx
157
195
  - ext/couchbase/protocol/cmd_get_cluster_config.hxx
158
196
  - ext/couchbase/protocol/cmd_get_collections_manifest.hxx
159
197
  - ext/couchbase/protocol/cmd_get_error_map.hxx
160
198
  - ext/couchbase/protocol/cmd_hello.hxx
199
+ - ext/couchbase/protocol/cmd_increment.hxx
161
200
  - ext/couchbase/protocol/cmd_info.hxx
201
+ - ext/couchbase/protocol/cmd_insert.hxx
162
202
  - ext/couchbase/protocol/cmd_lookup_in.hxx
163
203
  - ext/couchbase/protocol/cmd_mutate_in.hxx
164
204
  - ext/couchbase/protocol/cmd_remove.hxx
205
+ - ext/couchbase/protocol/cmd_replace.hxx
165
206
  - ext/couchbase/protocol/cmd_sasl_auth.hxx
166
207
  - ext/couchbase/protocol/cmd_sasl_list_mechs.hxx
167
208
  - ext/couchbase/protocol/cmd_sasl_step.hxx
168
209
  - ext/couchbase/protocol/cmd_select_bucket.hxx
210
+ - ext/couchbase/protocol/cmd_touch.hxx
211
+ - ext/couchbase/protocol/cmd_unlock.hxx
169
212
  - ext/couchbase/protocol/cmd_upsert.hxx
170
213
  - ext/couchbase/protocol/datatype.hxx
214
+ - ext/couchbase/protocol/durability_level.hxx
215
+ - ext/couchbase/protocol/frame_info_id.hxx
171
216
  - ext/couchbase/protocol/hello_feature.hxx
172
217
  - ext/couchbase/protocol/magic.hxx
218
+ - ext/couchbase/protocol/server_opcode.hxx
219
+ - ext/couchbase/protocol/server_request.hxx
173
220
  - ext/couchbase/protocol/status.hxx
174
221
  - ext/couchbase/protocol/unsigned_leb128.h
175
222
  - ext/couchbase/service_type.hxx
176
223
  - ext/couchbase/utils/byteswap.hxx
177
224
  - ext/couchbase/utils/crc32.hxx
225
+ - ext/couchbase/utils/url_codec.hxx
178
226
  - ext/couchbase/version.hxx
179
227
  - ext/extconf.rb
180
228
  - ext/test/main.cxx
@@ -1872,6 +1920,49 @@ files:
1872
1920
  - ext/third_party/json/tests/taocpp/position.json
1873
1921
  - ext/third_party/json/tests/taocpp/schema.json
1874
1922
  - ext/third_party/json/tests/twitter.json
1923
+ - ext/third_party/snappy/.appveyor.yml
1924
+ - ext/third_party/snappy/.gitignore
1925
+ - ext/third_party/snappy/.travis.yml
1926
+ - ext/third_party/snappy/AUTHORS
1927
+ - ext/third_party/snappy/CMakeLists.txt
1928
+ - ext/third_party/snappy/CONTRIBUTING.md
1929
+ - ext/third_party/snappy/COPYING
1930
+ - ext/third_party/snappy/NEWS
1931
+ - ext/third_party/snappy/README.md
1932
+ - ext/third_party/snappy/cmake/SnappyConfig.cmake.in
1933
+ - ext/third_party/snappy/cmake/config.h.in
1934
+ - ext/third_party/snappy/docs/README.md
1935
+ - ext/third_party/snappy/format_description.txt
1936
+ - ext/third_party/snappy/framing_format.txt
1937
+ - ext/third_party/snappy/snappy-c.cc
1938
+ - ext/third_party/snappy/snappy-c.h
1939
+ - ext/third_party/snappy/snappy-internal.h
1940
+ - ext/third_party/snappy/snappy-sinksource.cc
1941
+ - ext/third_party/snappy/snappy-sinksource.h
1942
+ - ext/third_party/snappy/snappy-stubs-internal.cc
1943
+ - ext/third_party/snappy/snappy-stubs-internal.h
1944
+ - ext/third_party/snappy/snappy-stubs-public.h.in
1945
+ - ext/third_party/snappy/snappy-test.cc
1946
+ - ext/third_party/snappy/snappy-test.h
1947
+ - ext/third_party/snappy/snappy.cc
1948
+ - ext/third_party/snappy/snappy.h
1949
+ - ext/third_party/snappy/snappy_compress_fuzzer.cc
1950
+ - ext/third_party/snappy/snappy_uncompress_fuzzer.cc
1951
+ - ext/third_party/snappy/snappy_unittest.cc
1952
+ - ext/third_party/snappy/testdata/alice29.txt
1953
+ - ext/third_party/snappy/testdata/asyoulik.txt
1954
+ - ext/third_party/snappy/testdata/baddata1.snappy
1955
+ - ext/third_party/snappy/testdata/baddata2.snappy
1956
+ - ext/third_party/snappy/testdata/baddata3.snappy
1957
+ - ext/third_party/snappy/testdata/fireworks.jpeg
1958
+ - ext/third_party/snappy/testdata/geo.protodata
1959
+ - ext/third_party/snappy/testdata/html
1960
+ - ext/third_party/snappy/testdata/html_x_4
1961
+ - ext/third_party/snappy/testdata/kppkn.gtb
1962
+ - ext/third_party/snappy/testdata/lcet10.txt
1963
+ - ext/third_party/snappy/testdata/paper-100k.pdf
1964
+ - ext/third_party/snappy/testdata/plrabn12.txt
1965
+ - ext/third_party/snappy/testdata/urls.10K
1875
1966
  - ext/third_party/spdlog/.clang-format
1876
1967
  - ext/third_party/spdlog/.clang-tidy
1877
1968
  - ext/third_party/spdlog/.gitattributes
@@ -2025,11 +2116,14 @@ files:
2025
2116
  - lib/couchbase.rb
2026
2117
  - lib/couchbase/authenticator.rb
2027
2118
  - lib/couchbase/binary_collection.rb
2119
+ - lib/couchbase/binary_collection_options.rb
2028
2120
  - lib/couchbase/bucket.rb
2029
2121
  - lib/couchbase/cluster.rb
2030
2122
  - lib/couchbase/collection.rb
2123
+ - lib/couchbase/collection_options.rb
2031
2124
  - lib/couchbase/common_options.rb
2032
2125
  - lib/couchbase/errors.rb
2126
+ - lib/couchbase/json_transcoder.rb
2033
2127
  - lib/couchbase/libcouchbase.bundle
2034
2128
  - lib/couchbase/management/analytics_index_manager.rb
2035
2129
  - lib/couchbase/management/bucket_manager.rb
@@ -2039,20 +2133,21 @@ files:
2039
2133
  - lib/couchbase/management/user_manager.rb
2040
2134
  - lib/couchbase/management/view_index_manager.rb
2041
2135
  - lib/couchbase/mutation_state.rb
2042
- - lib/couchbase/results.rb
2043
2136
  - lib/couchbase/scope.rb
2044
2137
  - lib/couchbase/subdoc.rb
2045
2138
  - lib/couchbase/version.rb
2046
2139
  - rbi/couchbase.rbi
2047
- homepage: https://github.com/couchbase/couchbase.rb
2140
+ homepage: https://www.couchbase.com
2048
2141
  licenses:
2049
- - MIT
2142
+ - Apache-2.0
2050
2143
  metadata:
2051
- homepage_uri: https://github.com/couchbase/couchbase.rb
2144
+ homepage_uri: https://www.couchbase.com
2052
2145
  source_code_uri: https://github.com/couchbase/couchbase-ruby-client
2053
2146
  changelog_uri: https://github.com/couchbase/couchbase-ruby-client/releases
2054
2147
  post_install_message:
2055
- rdoc_options: []
2148
+ rdoc_options:
2149
+ - "--exclude"
2150
+ - ext/
2056
2151
  require_paths:
2057
2152
  - lib
2058
2153
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.7.0
7
- before_install: gem install bundler -v 2.1.2
@@ -1,64 +0,0 @@
1
- /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright 2020 Couchbase, Inc.
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
- #pragma once
19
-
20
- #include <gsl/gsl_assert>
21
- #include <protocol/magic.hxx>
22
-
23
- namespace couchbase::io
24
- {
25
- struct binary_parser {
26
- enum result { ok, need_data, failure };
27
-
28
- template<typename Iterator>
29
- void feed(Iterator begin, Iterator end)
30
- {
31
- buf.reserve(buf.size() + static_cast<size_t>(std::distance(begin, end)));
32
- std::copy(begin, end, std::back_inserter(buf));
33
- }
34
-
35
- void reset()
36
- {
37
- buf.clear();
38
- }
39
-
40
- result next(binary_message& msg)
41
- {
42
- static const size_t header_size = 24;
43
- if (buf.size() < header_size) {
44
- return need_data;
45
- }
46
- std::memcpy(&msg.header, buf.data(), header_size);
47
- uint32_t body_size = ntohl(msg.header.bodylen);
48
- if (body_size > 0 && buf.size() - header_size < body_size) {
49
- return need_data;
50
- }
51
- msg.body.clear();
52
- msg.body.reserve(body_size);
53
- std::copy(buf.begin() + header_size, buf.begin() + header_size + body_size, std::back_inserter(msg.body));
54
- buf.erase(buf.begin(), buf.begin() + header_size + body_size);
55
- if (!protocol::is_valid_magic(buf[0])) {
56
- spdlog::warn("invalid magic of the next frame: {:x}, {} bytes to parse", buf[0], buf.size());
57
- reset();
58
- }
59
- return ok;
60
- }
61
-
62
- std::vector<std::uint8_t> buf;
63
- };
64
- } // namespace couchbase::io
@@ -1,307 +0,0 @@
1
- # Copyright 2020 Couchbase, Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'json'
16
-
17
- module Couchbase
18
- class QueryResult
19
- # @return [QueryMetaData] returns object representing additional metadata associated with this query
20
- attr_accessor :meta_data
21
-
22
- attr_accessor :transcoder
23
-
24
- # Returns all rows converted using a transcoder
25
- #
26
- # @return [Array]
27
- def rows(transcoder = self.transcoder)
28
- @rows.lazy.map do |row|
29
- if transcoder == :json
30
- JSON.parse(row)
31
- else
32
- transcoder.call(row)
33
- end
34
- end
35
- end
36
-
37
- def initialize
38
- yield self if block_given?
39
- @transcoder = :json
40
- end
41
- end
42
-
43
- class QueryMetaData
44
- # @return [String] returns the request identifier string of the query request
45
- attr_accessor :request_id
46
-
47
- # @return [String] returns the client context identifier string set of the query request
48
- attr_accessor :client_context_id
49
-
50
- # @return [Symbol] returns raw query execution status as returned by the query engine
51
- attr_accessor :status
52
-
53
- # @return [Hash] returns the signature as returned by the query engine which is then decoded as JSON object
54
- attr_accessor :signature
55
-
56
- # @return [Hash] returns the profiling information returned by the query engine which is then decoded as JSON object
57
- attr_accessor :profile
58
-
59
- # @return [QueryMetrics] metrics as returned by the query engine, if enabled
60
- attr_accessor :metrics
61
-
62
- # @return [List<QueryWarning>] list of warnings returned by the query engine
63
- attr_accessor :warnings
64
-
65
- def initialize
66
- yield self if block_given?
67
- end
68
- end
69
-
70
- class QueryMetrics
71
- # @return [Integer] The total time taken for the request, that is the time from when the request was received until the results were returned
72
- attr_accessor :elapsed_time
73
-
74
- # @return [Integer] The time taken for the execution of the request, that is the time from when query execution started until the results were returned
75
- attr_accessor :execution_time
76
-
77
- # @return [Integer] the total number of results selected by the engine before restriction through LIMIT clause.
78
- attr_accessor :sort_count
79
-
80
- # @return [Integer] The total number of objects in the results.
81
- attr_accessor :result_count
82
-
83
- # @return [Integer] The total number of bytes in the results.
84
- attr_accessor :result_size
85
-
86
- # @return [Integer] The number of mutations that were made during the request.
87
- attr_accessor :mutation_count
88
-
89
- # @return [Integer] The number of errors that occurred during the request.
90
- attr_accessor :error_count
91
-
92
- # @return [Integer] The number of warnings that occurred during the request.
93
- attr_accessor :warning_count
94
-
95
- def initialize
96
- yield self if block_given?
97
- end
98
- end
99
-
100
- # Represents a single warning returned from the query engine.
101
- class QueryWarning
102
- # @return [Integer]
103
- attr_accessor :code
104
-
105
- # @return [String]
106
- attr_accessor :message
107
-
108
- def initialize(code, message)
109
- @code = code
110
- @message = message
111
- end
112
- end
113
-
114
- class GetResult
115
- # @return [Integer] holds the CAS value of the fetched document
116
- attr_accessor :cas
117
-
118
- # @return [Integer] the expiration if fetched and present
119
- attr_accessor :expiration
120
-
121
- # @return [String] The encoded content when loading the document
122
- attr_accessor :content
123
-
124
- # Decodes the content of the document using given (or default transcoder)
125
- #
126
- # @param [Proc, :json] transcoder custom transcoder
127
- #
128
- # @return [Object]
129
- def content_as(transcoder = self.transcoder)
130
- if transcoder == :json
131
- JSON.parse(@content)
132
- else
133
- transcoder.call(@content, @flags)
134
- end
135
- end
136
-
137
- def initialize
138
- yield self if block_given?
139
- @transcoder = :json
140
- end
141
-
142
- protected
143
-
144
- # @return [Integer] The flags from the operation
145
- attr_accessor :flags
146
-
147
- # @return [Proc] The default transcoder which should be used
148
- attr_accessor :transcoder
149
- end
150
-
151
- class GetReplicaResult < GetResult
152
- # @return [Boolean] true if this result came from a replica
153
- attr_accessor :is_replica
154
- alias_method :replica?, :is_replica
155
- end
156
-
157
- class ExistsResult
158
- # @return [Integer] holds the CAS value of the fetched document
159
- attr_accessor :cas
160
-
161
- # @return [Boolean] Holds the boolean if the document actually exists
162
- attr_accessor :exists
163
- alias_method :exists?, :exists
164
- end
165
-
166
- class MutationResult
167
- # @return [Integer] holds the CAS value of the document after the mutation
168
- attr_accessor :cas
169
-
170
- # @return [MutationToken] if returned, holds the mutation token of the document after the mutation
171
- attr_accessor :mutation_token
172
-
173
- def initialize
174
- yield self if block_given?
175
- end
176
- end
177
-
178
- class LookupInResult
179
- # @return [Integer] holds the CAS value of the fetched document
180
- attr_accessor :cas
181
-
182
- # Decodes the content at the given index
183
- #
184
- # @param [Integer] index the index of the subdocument value to decode
185
- #
186
- # @return [Object] the decoded
187
- def content(index, transcoder = self.transcoder)
188
- if transcoder == :json
189
- return if encoded[index].value&.empty?
190
- JSON.parse(encoded[index].value)
191
- else
192
- transcoder.call(encoded[index].value)
193
- end
194
- end
195
-
196
- # Allows to check if a value at the given index exists
197
- #
198
- # @param [Integer] index the index of the subdocument value to check
199
- #
200
- # @return [Boolean] true if a value is present at the index, false otherwise
201
- def exists?(index)
202
- encoded[index].exists
203
- end
204
-
205
- # @return [Array<SubDocumentField>] holds the encoded subdocument responses
206
- attr_accessor :encoded
207
-
208
- def initialize
209
- yield self if block_given?
210
- @transcoder = :json
211
- end
212
-
213
- private
214
-
215
- # @return [Proc] The default transcoder which should be used
216
- attr_accessor :transcoder
217
- end
218
-
219
- class MutateInResult < MutationResult
220
- # Decodes the content at the given index
221
- #
222
- # @param [Integer] index the index of the subdocument value to decode
223
- #
224
- # @return [Object] the decoded
225
- def content(index, transcoder = self.transcoder)
226
- if transcoder == :json
227
- JSON.parse(encoded[index].value)
228
- else
229
- transcoder.call(encoded[index].value)
230
- end
231
- end
232
-
233
- def initialize
234
- yield self if block_given?
235
- @transcoder = :json
236
- end
237
-
238
- def success?
239
- !!first_error_index
240
- end
241
-
242
- # @return [Array<SubDocumentField>] holds the encoded subdocument responses
243
- attr_accessor :encoded
244
-
245
- # @return [Integer, nil] index of first operation entry that generated an error
246
- attr_accessor :first_error_index
247
-
248
- private
249
-
250
- # @return [Proc] The default transcoder which should be used
251
- attr_accessor :transcoder
252
- end
253
-
254
- # @private
255
- class SubDocumentField
256
- attr_accessor :error
257
- # @return [Boolean] true if the path exists in the document
258
- attr_accessor :exists
259
- # @return [String] value
260
- attr_accessor :value
261
- # @return [String] path
262
- attr_accessor :path
263
-
264
- # * +:set_doc+
265
- # * +:counter+
266
- # * +:replace+
267
- # * +:dict_add+
268
- # * +:dict_upsert+
269
- # * +:array_push_first+
270
- # * +:array_push_last+
271
- # * +:array_add_unique+
272
- # * +:array_insert+
273
- # * +:delete+
274
- # * +:get+
275
- # * +:exists+
276
- # * +:count+
277
- # * +:get_doc+
278
- #
279
- # @return [Symbol] command type
280
- attr_accessor :type
281
-
282
- # * +:success+ Indicates a successful response in general.
283
- # * +:path_not_found+ The provided path does not exist in the document
284
- # * +:path_mismatch+ One of path components treats a non-dictionary as a dictionary, or a non-array as an array, or value the path points to is not a number
285
- # * +:path_invalid+ The path's syntax was incorrect
286
- # * +:path_too_big+ The path provided is too large: either the string is too long, or it contains too many components
287
- # * +:value_cannot_insert+ The value provided will invalidate the JSON if inserted
288
- # * +:doc_not_json+ The existing document is not valid JSON
289
- # * +:num_range+ The existing number is out of the valid range for arithmetic operations
290
- # * +:delta_invalid+ The operation would result in a number outside the valid range
291
- # * +:path_exists+ The requested operation requires the path to not already exist, but it exists
292
- # * +:value_too_deep+ Inserting the value would cause the document to be too deep
293
- # * +:invalid_combo+ An invalid combination of commands was specified
294
- # * +:xattr_invalid_flag_combo+ An invalid combination of operations, using macros when not using extended attributes
295
- # * +:xattr_invalid_key_combo+ Only single xattr key may be accessed at the same time
296
- # * +:xattr_unknown_macro+ The server has no knowledge of the requested macro
297
- # * +:xattr_unknown_vattr+ Unknown virtual attribute.
298
- # * +:xattr_cannot_modify_vattr+ Cannot modify this virtual attribute.
299
- # * +:unknown+ Unknown error.
300
- # @return [Symbol] status
301
- attr_accessor :status
302
-
303
- def initialize
304
- yield self if block_given?
305
- end
306
- end
307
- end