couchbase 3.0.0.alpha.4-universal-darwin-19 → 3.0.0.alpha.5-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 (749) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/bin/fetch-stats +19 -0
  4. data/bin/init-cluster +24 -24
  5. data/bin/jenkins/build-extension +35 -0
  6. data/bin/jenkins/install-dependencies +47 -0
  7. data/bin/jenkins/test-with-cbdyncluster +58 -0
  8. data/couchbase.gemspec +27 -1
  9. data/examples/subdocument.rb +2 -2
  10. data/ext/build_version.hxx.in +1 -1
  11. data/ext/couchbase/cluster.hxx +41 -40
  12. data/ext/couchbase/couchbase.cxx +174 -61
  13. data/ext/couchbase/io/dns_message.hxx +3 -6
  14. data/ext/couchbase/io/http_session.hxx +31 -26
  15. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +3 -3
  16. data/ext/couchbase/io/mcbp_message.hxx +19 -2
  17. data/ext/couchbase/io/mcbp_session.hxx +89 -47
  18. data/ext/couchbase/operations/command.hxx +18 -7
  19. data/ext/couchbase/operations/document_analytics.hxx +5 -6
  20. data/ext/couchbase/operations/document_decrement.hxx +2 -1
  21. data/ext/couchbase/operations/document_exists.hxx +2 -1
  22. data/ext/couchbase/operations/document_get.hxx +2 -1
  23. data/ext/couchbase/operations/document_get_and_lock.hxx +2 -1
  24. data/ext/couchbase/operations/document_get_and_touch.hxx +2 -1
  25. data/ext/couchbase/operations/document_get_projected.hxx +2 -1
  26. data/ext/couchbase/operations/document_increment.hxx +2 -1
  27. data/ext/couchbase/operations/document_insert.hxx +2 -1
  28. data/ext/couchbase/operations/document_lookup_in.hxx +21 -1
  29. data/ext/couchbase/operations/document_mutate_in.hxx +44 -2
  30. data/ext/couchbase/operations/document_query.hxx +6 -7
  31. data/ext/couchbase/operations/document_remove.hxx +2 -1
  32. data/ext/couchbase/operations/document_replace.hxx +2 -1
  33. data/ext/couchbase/operations/document_search.hxx +3 -2
  34. data/ext/couchbase/operations/document_touch.hxx +2 -1
  35. data/ext/couchbase/operations/document_unlock.hxx +2 -1
  36. data/ext/couchbase/operations/document_upsert.hxx +2 -1
  37. data/ext/couchbase/operations/document_view.hxx +2 -1
  38. data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
  39. data/ext/couchbase/protocol/client_opcode.hxx +7 -3
  40. data/ext/couchbase/protocol/client_response.hxx +1 -1
  41. data/ext/couchbase/protocol/cmd_hello.hxx +10 -0
  42. data/ext/couchbase/protocol/cmd_lookup_in.hxx +1 -0
  43. data/ext/couchbase/protocol/cmd_mutate_in.hxx +53 -5
  44. data/ext/couchbase/version.hxx +1 -1
  45. data/ext/extconf.rb +1 -1
  46. data/lib/couchbase/bucket.rb +3 -0
  47. data/lib/couchbase/cluster.rb +5 -0
  48. data/lib/couchbase/collection.rb +18 -6
  49. data/lib/couchbase/collection_options.rb +50 -7
  50. data/lib/couchbase/errors.rb +2 -2
  51. data/lib/couchbase/subdoc.rb +80 -19
  52. data/lib/couchbase/version.rb +1 -1
  53. metadata +7 -705
  54. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  55. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  56. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  57. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  58. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  59. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  60. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  61. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  62. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  63. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  64. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  65. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  66. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  67. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  68. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  69. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  70. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  71. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  72. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  73. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  74. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  75. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  76. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  77. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  78. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  79. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  80. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  81. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  82. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  83. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  84. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  85. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  86. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  87. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  88. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  89. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  90. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  91. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  92. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  93. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  94. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  95. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  96. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  97. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  98. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  99. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  100. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  101. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  102. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  103. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  104. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  105. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  106. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  107. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  108. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  109. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  110. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  111. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  112. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  113. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  114. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  115. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  116. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  117. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  118. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  119. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  120. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  121. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  122. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  123. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  124. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  125. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  126. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  127. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  128. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  129. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  130. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  131. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  132. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  133. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  134. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  135. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  136. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  137. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  138. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  139. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  140. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  141. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  142. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  143. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  144. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  145. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  146. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  147. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  148. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  149. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  150. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  151. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  152. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  153. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  154. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  155. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  156. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  157. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  158. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  159. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  160. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  161. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  162. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  163. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  164. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  165. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  166. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  167. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  168. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  169. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  170. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  171. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  172. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  173. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  174. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  175. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  176. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  177. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  178. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  179. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  180. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  181. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  182. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  183. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  184. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  185. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  186. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  187. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  188. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  189. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  190. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  191. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  192. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  193. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  194. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  195. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  196. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  197. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  198. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  199. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  200. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  201. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  202. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  203. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  204. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  205. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  206. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  207. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  208. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  209. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  210. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  211. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  212. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  213. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  214. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  215. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  216. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  217. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  218. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  219. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  220. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  221. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  222. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  223. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  224. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  225. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  226. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  227. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  228. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  229. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  230. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  231. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  232. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  233. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  234. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  235. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  236. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  237. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  238. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  239. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  240. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  241. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  242. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  243. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  244. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  245. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  246. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  247. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  248. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  249. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  250. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  251. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  252. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  253. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  254. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  255. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  256. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  257. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  258. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  259. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  260. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  261. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  262. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  263. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  264. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  265. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  266. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  267. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  268. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  269. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  270. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  271. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  272. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  273. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  274. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  275. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  276. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  277. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  278. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  279. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  280. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  281. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  282. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  283. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  284. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  285. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  286. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  287. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  288. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  289. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  290. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  291. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  292. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  293. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  294. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  295. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  296. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  297. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  298. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  299. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  300. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  301. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  302. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  303. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  304. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  305. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  306. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  307. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  308. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  309. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  310. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  311. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  312. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  313. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  314. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  315. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  316. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  317. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  318. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  319. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  320. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  321. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  322. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  323. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  324. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  325. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  326. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  327. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  328. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  329. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  330. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  331. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  332. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  333. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  334. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  335. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  336. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  337. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  338. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  339. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  340. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  341. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  342. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  343. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  344. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  345. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  346. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  347. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  348. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  349. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  350. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  351. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  352. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  353. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  354. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  355. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  356. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  357. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  358. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  359. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  360. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  361. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  362. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  363. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  364. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  365. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  366. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  367. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  368. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  369. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  370. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  371. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  372. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  373. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  374. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  375. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  376. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  377. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  378. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  379. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  380. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  381. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  382. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  383. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  384. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  385. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  386. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  387. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  388. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  389. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  390. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  391. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  392. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  393. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  394. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  395. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  396. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  397. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  398. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  399. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  400. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  401. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  402. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  403. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  404. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  405. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  406. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  407. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  408. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  409. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  410. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  411. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  412. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  413. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  414. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  415. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  416. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  417. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  418. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  419. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  420. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  421. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  422. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  423. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  424. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  425. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  426. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  427. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  428. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  429. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  430. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  431. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  432. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  433. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  434. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  435. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  436. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  437. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  438. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  439. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  440. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  441. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  442. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  443. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  444. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  445. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  446. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  447. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  448. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  449. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  450. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  451. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  452. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  453. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  454. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  455. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  456. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  457. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  458. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  459. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  460. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  461. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  462. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  463. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  464. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  465. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  466. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  467. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  468. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  469. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  470. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  471. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  472. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  473. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  474. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  475. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  476. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  477. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  478. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  479. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  480. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  481. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  482. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  483. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  484. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  485. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  486. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  487. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  488. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  489. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  490. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  491. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  492. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  493. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  494. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  495. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  496. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  497. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  498. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  499. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  500. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  501. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  502. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  503. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  504. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  505. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  506. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  507. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  508. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  509. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  510. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  511. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  512. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  513. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  514. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  515. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  516. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  517. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  518. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  519. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  520. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  521. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  522. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  523. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  524. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  525. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  526. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  527. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  528. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  529. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  530. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  531. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  532. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  533. data/ext/third_party/json/doc/Changelog.md +0 -31
  534. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  535. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  536. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  537. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  538. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  539. data/ext/third_party/json/doc/Interoperability.md +0 -75
  540. data/ext/third_party/json/doc/Overview.md +0 -24
  541. data/ext/third_party/json/doc/Overview.png +0 -0
  542. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  543. data/ext/third_party/json/doc/README.md +0 -78
  544. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  545. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  546. data/ext/third_party/json/doc/Types.png +0 -0
  547. data/ext/third_party/json/doc/Value-Class.md +0 -525
  548. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  549. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  550. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  551. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  552. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  553. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  554. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  555. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  556. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  557. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  558. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  559. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  560. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  561. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  562. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  563. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  564. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  565. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  566. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  567. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  568. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  569. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  570. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  571. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  572. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  573. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  574. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  575. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  576. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  577. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  578. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  579. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  580. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  581. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  582. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  583. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  584. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  585. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  586. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  587. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  588. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  589. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  590. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  591. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  592. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  593. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  594. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  595. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  596. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  597. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  598. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  599. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  600. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  601. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  602. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  603. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  604. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  605. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  606. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  607. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  608. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  609. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  610. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  611. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  612. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  613. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  614. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  615. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  616. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  617. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  618. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  619. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  620. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  621. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  622. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  623. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  624. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  625. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  626. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  627. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  628. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  629. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  630. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  631. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  632. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  633. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  634. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  635. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  636. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  637. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  638. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  639. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  640. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  641. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  642. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  643. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  644. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  645. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  646. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  647. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  648. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  649. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  650. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  651. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  652. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  653. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  654. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  655. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  656. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  657. data/ext/third_party/json/tests/blns.json +0 -496
  658. data/ext/third_party/json/tests/canada.json +0 -9
  659. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  660. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  661. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  662. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  663. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  664. data/ext/third_party/json/tests/draft4/default.json +0 -49
  665. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  666. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  667. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  668. data/ext/third_party/json/tests/draft4/items.json +0 -46
  669. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  670. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  671. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  672. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  673. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  674. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  675. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  676. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  677. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  678. data/ext/third_party/json/tests/draft4/not.json +0 -96
  679. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  680. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  681. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  682. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  683. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  684. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  685. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  686. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  687. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  688. data/ext/third_party/json/tests/draft4/required.json +0 -44
  689. data/ext/third_party/json/tests/draft4/type.json +0 -345
  690. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  691. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  692. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  693. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  694. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  695. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  696. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  697. data/ext/third_party/json/tests/twitter.json +0 -15482
  698. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  699. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  700. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  701. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  702. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  703. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  704. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  705. data/ext/third_party/snappy/testdata/html +0 -1
  706. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  707. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  708. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  709. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  710. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  711. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  712. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  713. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  714. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  715. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  716. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  717. data/ext/third_party/spdlog/bench/utils.h +0 -34
  718. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  719. data/ext/third_party/spdlog/example/example.cpp +0 -282
  720. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  721. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  722. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  723. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  724. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  725. data/ext/third_party/spdlog/tests/catch.license +0 -23
  726. data/ext/third_party/spdlog/tests/includes.h +0 -26
  727. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  728. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  729. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  730. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  731. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  732. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  733. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  734. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  735. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  736. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  737. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  738. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  739. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  740. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  741. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  742. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  743. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  744. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  745. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  746. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  747. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  748. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  749. data/ext/third_party/spdlog/tests/utils.h +0 -18
@@ -86,6 +86,10 @@ init_versions(VALUE mCouchbase)
86
86
  #endif
87
87
 
88
88
  #undef VERSION_SPLIT_
89
+
90
+ VALUE version_info = rb_inspect(cb_Version);
91
+ spdlog::info("couchbase backend has been initialized: {}",
92
+ std::string_view(RSTRING_PTR(version_info), static_cast<std::size_t>(RSTRING_LEN(version_info))));
89
93
  }
90
94
 
91
95
  struct cb_backend_data {
@@ -261,7 +265,7 @@ init_exceptions(VALUE mCouchbase)
261
265
  eIndexFailure = rb_define_class_under(mError, "IndexFailure", rb_eStandardError);
262
266
  eIndexNotFound = rb_define_class_under(mError, "IndexNotFound", rb_eStandardError);
263
267
  eInternalServerFailure = rb_define_class_under(mError, "InternalServerFailure", rb_eStandardError);
264
- eInvalidArgument = rb_define_class_under(mError, "InvalidArgument", rb_eStandardError);
268
+ eInvalidArgument = rb_define_class_under(mError, "InvalidArgument", rb_eArgError);
265
269
  eJobQueueFull = rb_define_class_under(mError, "JobQueueFull", rb_eStandardError);
266
270
  eLinkNotFound = rb_define_class_under(mError, "LinkNotFound", rb_eStandardError);
267
271
  eNumberTooBig = rb_define_class_under(mError, "NumberTooBig", rb_eStandardError);
@@ -619,7 +623,7 @@ cb_Backend_document_get(VALUE self, VALUE bucket, VALUE collection, VALUE id, VA
619
623
  backend->cluster->execute(req, [barrier](couchbase::operations::get_response resp) mutable { barrier->set_value(resp); });
620
624
  auto resp = f.get();
621
625
  if (resp.ec) {
622
- exc = cb__map_error_code(resp.ec, fmt::format("unable fetch {}", doc_id));
626
+ exc = cb__map_error_code(resp.ec, fmt::format("unable fetch {} (opaque={})", doc_id, resp.opaque));
623
627
  break;
624
628
  }
625
629
 
@@ -681,7 +685,7 @@ cb_Backend_document_get_projected(VALUE self,
681
685
  backend->cluster->execute(req, [barrier](couchbase::operations::get_projected_response resp) mutable { barrier->set_value(resp); });
682
686
  auto resp = f.get();
683
687
  if (resp.ec) {
684
- exc = cb__map_error_code(resp.ec, fmt::format("unable fetch with projections {}", doc_id));
688
+ exc = cb__map_error_code(resp.ec, fmt::format("unable fetch with projections {} (opaque={})", doc_id, resp.opaque));
685
689
  break;
686
690
  }
687
691
 
@@ -729,7 +733,7 @@ cb_Backend_document_get_and_lock(VALUE self, VALUE bucket, VALUE collection, VAL
729
733
  backend->cluster->execute(req, [barrier](couchbase::operations::get_and_lock_response resp) mutable { barrier->set_value(resp); });
730
734
  auto resp = f.get();
731
735
  if (resp.ec) {
732
- exc = cb__map_error_code(resp.ec, fmt::format("unable lock and fetch {}", doc_id));
736
+ exc = cb__map_error_code(resp.ec, fmt::format("unable lock and fetch {} (opaque={})", doc_id, resp.opaque));
733
737
  break;
734
738
  }
735
739
 
@@ -774,7 +778,7 @@ cb_Backend_document_get_and_touch(VALUE self, VALUE bucket, VALUE collection, VA
774
778
  backend->cluster->execute(req, [barrier](couchbase::operations::get_and_touch_response resp) mutable { barrier->set_value(resp); });
775
779
  auto resp = f.get();
776
780
  if (resp.ec) {
777
- exc = cb__map_error_code(resp.ec, fmt::format("unable fetch and touch {}", doc_id));
781
+ exc = cb__map_error_code(resp.ec, fmt::format("unable fetch and touch {} (opaque={})", doc_id, resp.opaque));
778
782
  break;
779
783
  }
780
784
 
@@ -836,7 +840,7 @@ cb_Backend_document_touch(VALUE self, VALUE bucket, VALUE collection, VALUE id,
836
840
  backend->cluster->execute(req, [barrier](couchbase::operations::touch_response resp) mutable { barrier->set_value(resp); });
837
841
  auto resp = f.get();
838
842
  if (resp.ec) {
839
- exc = cb__map_error_code(resp.ec, fmt::format("unable to touch {}", doc_id));
843
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to touch {} (opaque={})", doc_id, resp.opaque));
840
844
  break;
841
845
  }
842
846
 
@@ -877,7 +881,7 @@ cb_Backend_document_exists(VALUE self, VALUE bucket, VALUE collection, VALUE id,
877
881
  backend->cluster->execute(req, [barrier](couchbase::operations::exists_response resp) mutable { barrier->set_value(resp); });
878
882
  auto resp = f.get();
879
883
  if (resp.ec) {
880
- exc = cb__map_error_code(resp.ec, fmt::format("unable to exists {}", doc_id));
884
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to exists {} (opaque={})", doc_id, resp.opaque));
881
885
  break;
882
886
  }
883
887
 
@@ -944,7 +948,7 @@ cb_Backend_document_unlock(VALUE self, VALUE bucket, VALUE collection, VALUE id,
944
948
  backend->cluster->execute(req, [barrier](couchbase::operations::unlock_response resp) mutable { barrier->set_value(resp); });
945
949
  auto resp = f.get();
946
950
  if (resp.ec) {
947
- exc = cb__map_error_code(resp.ec, fmt::format("unable to unlock {}", doc_id));
951
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to unlock {} (opaque={})", doc_id, resp.opaque));
948
952
  break;
949
953
  }
950
954
 
@@ -1019,7 +1023,7 @@ cb_Backend_document_upsert(VALUE self, VALUE bucket, VALUE collection, VALUE id,
1019
1023
  backend->cluster->execute(req, [barrier](couchbase::operations::upsert_response resp) mutable { barrier->set_value(resp); });
1020
1024
  auto resp = f.get();
1021
1025
  if (resp.ec) {
1022
- exc = cb__map_error_code(resp.ec, fmt::format("unable to upsert {}", doc_id));
1026
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to upsert {} (opaque={})", doc_id, resp.opaque));
1023
1027
  break;
1024
1028
  }
1025
1029
 
@@ -1103,7 +1107,7 @@ cb_Backend_document_replace(VALUE self, VALUE bucket, VALUE collection, VALUE id
1103
1107
  backend->cluster->execute(req, [barrier](couchbase::operations::replace_response resp) mutable { barrier->set_value(resp); });
1104
1108
  auto resp = f.get();
1105
1109
  if (resp.ec) {
1106
- exc = cb__map_error_code(resp.ec, fmt::format("unable to replace {}", doc_id));
1110
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to replace {} (opaque={})", doc_id, resp.opaque));
1107
1111
  break;
1108
1112
  }
1109
1113
 
@@ -1176,7 +1180,7 @@ cb_Backend_document_insert(VALUE self, VALUE bucket, VALUE collection, VALUE id,
1176
1180
  backend->cluster->execute(req, [barrier](couchbase::operations::insert_response resp) mutable { barrier->set_value(resp); });
1177
1181
  auto resp = f.get();
1178
1182
  if (resp.ec) {
1179
- exc = cb__map_error_code(resp.ec, fmt::format("unable to insert {}", doc_id));
1183
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to insert {} (opaque={})", doc_id, resp.opaque));
1180
1184
  break;
1181
1185
  }
1182
1186
 
@@ -1239,7 +1243,7 @@ cb_Backend_document_remove(VALUE self, VALUE bucket, VALUE collection, VALUE id,
1239
1243
  backend->cluster->execute(req, [barrier](couchbase::operations::remove_response resp) mutable { barrier->set_value(resp); });
1240
1244
  auto resp = f.get();
1241
1245
  if (resp.ec) {
1242
- exc = cb__map_error_code(resp.ec, fmt::format("unable to remove {}", doc_id));
1246
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to remove {} (opaque={})", doc_id, resp.opaque));
1243
1247
  break;
1244
1248
  }
1245
1249
  return cb__extract_mutation_result(resp);
@@ -1328,7 +1332,7 @@ cb_Backend_document_increment(VALUE self, VALUE bucket, VALUE collection, VALUE
1328
1332
  backend->cluster->execute(req, [barrier](couchbase::operations::increment_response resp) mutable { barrier->set_value(resp); });
1329
1333
  auto resp = f.get();
1330
1334
  if (resp.ec) {
1331
- exc = cb__map_error_code(resp.ec, fmt::format("unable to increment {} by {}", doc_id, req.delta));
1335
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to increment {} by {} (opaque={})", doc_id, req.delta, resp.opaque));
1332
1336
  break;
1333
1337
  }
1334
1338
  VALUE res = cb__extract_mutation_result(resp);
@@ -1420,7 +1424,7 @@ cb_Backend_document_decrement(VALUE self, VALUE bucket, VALUE collection, VALUE
1420
1424
  backend->cluster->execute(req, [barrier](couchbase::operations::decrement_response resp) mutable { barrier->set_value(resp); });
1421
1425
  auto resp = f.get();
1422
1426
  if (resp.ec) {
1423
- exc = cb__map_error_code(resp.ec, fmt::format("unable to decrement {} by {}", doc_id, req.delta));
1427
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to decrement {} by {} (opaque={})", doc_id, req.delta, resp.opaque));
1424
1428
  break;
1425
1429
  }
1426
1430
  VALUE res = cb__extract_mutation_result(resp);
@@ -1473,64 +1477,132 @@ cb__map_subdoc_opcode(couchbase::protocol::subdoc_opcode opcode)
1473
1477
 
1474
1478
  case couchbase::protocol::subdoc_opcode::get_doc:
1475
1479
  return rb_id2sym(rb_intern("get_doc"));
1480
+
1481
+ case couchbase::protocol::subdoc_opcode::set_doc:
1482
+ return rb_id2sym(rb_intern("set_doc"));
1476
1483
  }
1477
1484
  return rb_id2sym(rb_intern("unknown"));
1478
1485
  }
1479
1486
 
1480
- static VALUE
1481
- cb__map_subdoc_status(couchbase::protocol::status status)
1487
+ static void
1488
+ cb__map_subdoc_status(couchbase::protocol::status status, std::size_t index, const std::string& path, VALUE entry)
1482
1489
  {
1483
1490
  switch (status) {
1484
1491
  case couchbase::protocol::status::success:
1485
- return rb_id2sym(rb_intern("success"));
1492
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("success")));
1493
+ return;
1494
+
1495
+ case couchbase::protocol::status::subdoc_path_not_found:
1496
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("path_not_found")));
1497
+ rb_hash_aset(
1498
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(ePathNotFound, fmt::format("index={}, path={}", index, path).c_str()));
1499
+ return;
1486
1500
 
1487
1501
  case couchbase::protocol::status::subdoc_path_mismatch:
1488
- return rb_id2sym(rb_intern("path_mismatch"));
1502
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("path_mismatch")));
1503
+ rb_hash_aset(
1504
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(ePathMismatch, fmt::format("index={}, path={}", index, path).c_str()));
1505
+ return;
1489
1506
 
1490
1507
  case couchbase::protocol::status::subdoc_path_invalid:
1491
- return rb_id2sym(rb_intern("path_invalid"));
1508
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("path_invalid")));
1509
+ rb_hash_aset(
1510
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(ePathInvalid, fmt::format("index={}, path={}", index, path).c_str()));
1511
+ return;
1492
1512
 
1493
1513
  case couchbase::protocol::status::subdoc_path_too_big:
1494
- return rb_id2sym(rb_intern("path_too_big"));
1514
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("path_too_big")));
1515
+ rb_hash_aset(
1516
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(ePathTooBig, fmt::format("index={}, path={}", index, path).c_str()));
1517
+ return;
1495
1518
 
1496
1519
  case couchbase::protocol::status::subdoc_value_cannot_insert:
1497
- return rb_id2sym(rb_intern("value_cannot_insert"));
1520
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("value_cannot_insert")));
1521
+ rb_hash_aset(
1522
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(eValueInvalid, fmt::format("index={}, path={}", index, path).c_str()));
1523
+ return;
1498
1524
 
1499
1525
  case couchbase::protocol::status::subdoc_doc_not_json:
1500
- return rb_id2sym(rb_intern("doc_not_json"));
1526
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("doc_not_json")));
1527
+ rb_hash_aset(entry,
1528
+ rb_id2sym(rb_intern("error")),
1529
+ rb_exc_new_cstr(eDocumentNotJson, fmt::format("index={}, path={}", index, path).c_str()));
1530
+ return;
1501
1531
 
1502
1532
  case couchbase::protocol::status::subdoc_num_range_error:
1503
- return rb_id2sym(rb_intern("num_range"));
1533
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("num_range")));
1534
+ rb_hash_aset(
1535
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(eNumberTooBig, fmt::format("index={}, path={}", index, path).c_str()));
1536
+ return;
1504
1537
 
1505
1538
  case couchbase::protocol::status::subdoc_delta_invalid:
1506
- return rb_id2sym(rb_intern("delta_invalid"));
1539
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("delta_invalid")));
1540
+ rb_hash_aset(
1541
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(eDeltaInvalid, fmt::format("index={}, path={}", index, path).c_str()));
1542
+ return;
1507
1543
 
1508
1544
  case couchbase::protocol::status::subdoc_path_exists:
1509
- return rb_id2sym(rb_intern("path_exists"));
1545
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("path_exists")));
1546
+ rb_hash_aset(
1547
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(ePathExists, fmt::format("index={}, path={}", index, path).c_str()));
1548
+ return;
1510
1549
 
1511
1550
  case couchbase::protocol::status::subdoc_value_too_deep:
1512
- return rb_id2sym(rb_intern("value_too_deep"));
1551
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("value_too_deep")));
1552
+ rb_hash_aset(
1553
+ entry, rb_id2sym(rb_intern("error")), rb_exc_new_cstr(eValueTooDeep, fmt::format("index={}, path={}", index, path).c_str()));
1554
+ return;
1513
1555
 
1514
1556
  case couchbase::protocol::status::subdoc_invalid_combo:
1515
- return rb_id2sym(rb_intern("invalid_combo"));
1557
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("invalid_combo")));
1558
+ rb_hash_aset(entry,
1559
+ rb_id2sym(rb_intern("error")),
1560
+ rb_exc_new_cstr(eInvalidArgument, fmt::format("index={}, path={}", index, path).c_str()));
1561
+ return;
1516
1562
 
1517
1563
  case couchbase::protocol::status::subdoc_xattr_invalid_flag_combo:
1518
- return rb_id2sym(rb_intern("xattr_invalid_flag_combo"));
1564
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("xattr_invalid_flag_combo")));
1565
+ rb_hash_aset(entry,
1566
+ rb_id2sym(rb_intern("error")),
1567
+ rb_exc_new_cstr(eXattrInvalidKeyCombo, fmt::format("index={}, path={}", index, path).c_str()));
1568
+ return;
1519
1569
 
1520
1570
  case couchbase::protocol::status::subdoc_xattr_invalid_key_combo:
1521
- return rb_id2sym(rb_intern("xattr_invalid_key_combo"));
1571
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("xattr_invalid_key_combo")));
1572
+ rb_hash_aset(entry,
1573
+ rb_id2sym(rb_intern("error")),
1574
+ rb_exc_new_cstr(eXattrInvalidKeyCombo, fmt::format("index={}, path={}", index, path).c_str()));
1575
+ return;
1522
1576
 
1523
1577
  case couchbase::protocol::status::subdoc_xattr_unknown_macro:
1524
- return rb_id2sym(rb_intern("xattr_unknown_macro"));
1578
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("xattr_unknown_macro")));
1579
+ rb_hash_aset(entry,
1580
+ rb_id2sym(rb_intern("error")),
1581
+ rb_exc_new_cstr(eXattrUnknownMacro, fmt::format("index={}, path={}", index, path).c_str()));
1582
+ return;
1525
1583
 
1526
1584
  case couchbase::protocol::status::subdoc_xattr_unknown_vattr:
1527
- return rb_id2sym(rb_intern("xattr_unknown_vattr"));
1585
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("xattr_unknown_vattr")));
1586
+ rb_hash_aset(entry,
1587
+ rb_id2sym(rb_intern("error")),
1588
+ rb_exc_new_cstr(eXattrUnknownVirtualAttribute, fmt::format("index={}, path={}", index, path).c_str()));
1589
+ return;
1528
1590
 
1529
1591
  case couchbase::protocol::status::subdoc_xattr_cannot_modify_vattr:
1530
- return rb_id2sym(rb_intern("xattr_cannot_modify_vattr"));
1592
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("xattr_cannot_modify_vattr")));
1593
+ rb_hash_aset(entry,
1594
+ rb_id2sym(rb_intern("error")),
1595
+ rb_exc_new_cstr(eXattrCannotModifyVirtualAttribute, fmt::format("index={}, path={}", index, path).c_str()));
1596
+ return;
1531
1597
 
1532
1598
  default:
1533
- return rb_id2sym(rb_intern("unknown"));
1599
+ rb_hash_aset(entry, rb_id2sym(rb_intern("status")), rb_id2sym(rb_intern("unknown")));
1600
+ rb_hash_aset(
1601
+ entry,
1602
+ rb_id2sym(rb_intern("error")),
1603
+ rb_exc_new_cstr(eInternalServerFailure,
1604
+ fmt::format("unknown subdocument error status={}, index={}, path={}", status, index, path).c_str()));
1605
+ return;
1534
1606
  }
1535
1607
  }
1536
1608
 
@@ -1593,7 +1665,7 @@ cb_Backend_document_lookup_in(VALUE self, VALUE bucket, VALUE collection, VALUE
1593
1665
  backend->cluster->execute(req, [barrier](couchbase::operations::lookup_in_response resp) mutable { barrier->set_value(resp); });
1594
1666
  auto resp = f.get();
1595
1667
  if (resp.ec) {
1596
- exc = cb__map_error_code(resp.ec, fmt::format("unable fetch {}", doc_id));
1668
+ exc = cb__map_error_code(resp.ec, fmt::format("unable fetch {} (opaque={})", doc_id, resp.opaque));
1597
1669
  break;
1598
1670
  }
1599
1671
 
@@ -1603,13 +1675,14 @@ cb_Backend_document_lookup_in(VALUE self, VALUE bucket, VALUE collection, VALUE
1603
1675
  rb_hash_aset(res, rb_id2sym(rb_intern("fields")), fields);
1604
1676
  for (size_t i = 0; i < resp.fields.size(); ++i) {
1605
1677
  VALUE entry = rb_hash_new();
1678
+ rb_hash_aset(entry, rb_id2sym(rb_intern("index")), ULL2NUM(i));
1606
1679
  rb_hash_aset(entry, rb_id2sym(rb_intern("exists")), resp.fields[i].exists ? Qtrue : Qfalse);
1607
1680
  rb_hash_aset(
1608
1681
  entry, rb_id2sym(rb_intern("path")), rb_str_new(resp.fields[i].path.data(), static_cast<long>(resp.fields[i].path.size())));
1609
1682
  rb_hash_aset(entry,
1610
1683
  rb_id2sym(rb_intern("value")),
1611
1684
  rb_str_new(resp.fields[i].value.data(), static_cast<long>(resp.fields[i].value.size())));
1612
- rb_hash_aset(entry, rb_id2sym(rb_intern("status")), cb__map_subdoc_status(resp.fields[i].status));
1685
+ cb__map_subdoc_status(resp.fields[i].status, i, resp.fields[i].path, entry);
1613
1686
  if (resp.fields[i].opcode == couchbase::protocol::subdoc_opcode::get && resp.fields[i].path.empty()) {
1614
1687
  rb_hash_aset(entry, rb_id2sym(rb_intern("type")), rb_id2sym(rb_intern("get_doc")));
1615
1688
  } else {
@@ -1624,14 +1697,7 @@ cb_Backend_document_lookup_in(VALUE self, VALUE bucket, VALUE collection, VALUE
1624
1697
  }
1625
1698
 
1626
1699
  static VALUE
1627
- cb_Backend_document_mutate_in(VALUE self,
1628
- VALUE bucket,
1629
- VALUE collection,
1630
- VALUE id,
1631
- VALUE timeout,
1632
- VALUE access_deleted,
1633
- VALUE specs,
1634
- VALUE options)
1700
+ cb_Backend_document_mutate_in(VALUE self, VALUE bucket, VALUE collection, VALUE id, VALUE timeout, VALUE specs, VALUE options)
1635
1701
  {
1636
1702
  cb_backend_data* backend = nullptr;
1637
1703
  TypedData_Get_Struct(self, cb_backend_data, &cb_backend_type, backend);
@@ -1680,8 +1746,39 @@ cb_Backend_document_mutate_in(VALUE self,
1680
1746
  req.durability_timeout = FIX2UINT(durability_timeout);
1681
1747
  }
1682
1748
  }
1749
+ VALUE access_deleted = rb_hash_aref(options, rb_id2sym(rb_intern("access_deleted")));
1750
+ if (!NIL_P(access_deleted)) {
1751
+ req.access_deleted = RTEST(access_deleted);
1752
+ }
1753
+ VALUE store_semantics = rb_hash_aref(options, rb_id2sym(rb_intern("store_semantics")));
1754
+ if (!NIL_P(store_semantics)) {
1755
+ Check_Type(store_semantics, T_SYMBOL);
1756
+ ID semantics = rb_sym2id(store_semantics);
1757
+ if (semantics == rb_intern("replace")) {
1758
+ req.store_semantics = couchbase::protocol::mutate_in_request_body::store_semantics_type::replace;
1759
+ } else if (semantics == rb_intern("insert")) {
1760
+ req.store_semantics = couchbase::protocol::mutate_in_request_body::store_semantics_type::insert;
1761
+ } else if (semantics == rb_intern("upsert")) {
1762
+ req.store_semantics = couchbase::protocol::mutate_in_request_body::store_semantics_type::upsert;
1763
+ }
1764
+ }
1765
+ VALUE expiration = rb_hash_aref(options, rb_id2sym(rb_intern("expiration")));
1766
+ if (!NIL_P(expiration)) {
1767
+ Check_Type(expiration, T_FIXNUM);
1768
+ req.expiration = FIX2UINT(expiration);
1769
+ }
1770
+ VALUE cas = rb_hash_aref(options, rb_id2sym(rb_intern("cas")));
1771
+ if (!NIL_P(cas)) {
1772
+ switch (TYPE(cas)) {
1773
+ case T_FIXNUM:
1774
+ case T_BIGNUM:
1775
+ req.cas = NUM2ULL(cas);
1776
+ break;
1777
+ default:
1778
+ rb_raise(rb_eArgError, "CAS must be an Integer");
1779
+ }
1780
+ }
1683
1781
  }
1684
- req.access_deleted = RTEST(access_deleted);
1685
1782
  auto entries_size = static_cast<size_t>(RARRAY_LEN(specs));
1686
1783
  req.specs.entries.reserve(entries_size);
1687
1784
  for (size_t i = 0; i < entries_size; ++i) {
@@ -1709,11 +1806,13 @@ cb_Backend_document_mutate_in(VALUE self,
1709
1806
  opcode = couchbase::protocol::subdoc_opcode::array_add_unique;
1710
1807
  } else if (operation_id == rb_intern("counter")) {
1711
1808
  opcode = couchbase::protocol::subdoc_opcode::counter;
1809
+ } else if (operation_id == rb_intern("set_doc")) {
1810
+ opcode = couchbase::protocol::subdoc_opcode::set_doc;
1712
1811
  } else {
1713
1812
  rb_raise(rb_eArgError, "Unsupported operation for subdocument mutation: %+" PRIsVALUE, operation);
1714
1813
  }
1715
1814
  bool xattr = RTEST(rb_hash_aref(entry, rb_id2sym(rb_intern("xattr"))));
1716
- bool create_parents = RTEST(rb_hash_aref(entry, rb_id2sym(rb_intern("create_parents"))));
1815
+ bool create_path = RTEST(rb_hash_aref(entry, rb_id2sym(rb_intern("create_path"))));
1717
1816
  bool expand_macros = RTEST(rb_hash_aref(entry, rb_id2sym(rb_intern("expand_macros"))));
1718
1817
  VALUE path = rb_hash_aref(entry, rb_id2sym(rb_intern("path")));
1719
1818
  Check_Type(path, T_STRING);
@@ -1724,7 +1823,7 @@ cb_Backend_document_mutate_in(VALUE self,
1724
1823
  Check_Type(param, T_FIXNUM);
1725
1824
  req.specs.add_spec(opcode,
1726
1825
  xattr,
1727
- create_parents,
1826
+ create_path,
1728
1827
  expand_macros,
1729
1828
  std::string(RSTRING_PTR(path), static_cast<size_t>(RSTRING_LEN(path))),
1730
1829
  FIX2LONG(param));
@@ -1732,7 +1831,7 @@ cb_Backend_document_mutate_in(VALUE self,
1732
1831
  Check_Type(param, T_STRING);
1733
1832
  req.specs.add_spec(opcode,
1734
1833
  xattr,
1735
- create_parents,
1834
+ create_path,
1736
1835
  expand_macros,
1737
1836
  std::string(RSTRING_PTR(path), static_cast<size_t>(RSTRING_LEN(path))),
1738
1837
  std::string(RSTRING_PTR(param), static_cast<size_t>(RSTRING_LEN(param))));
@@ -1744,7 +1843,7 @@ cb_Backend_document_mutate_in(VALUE self,
1744
1843
  backend->cluster->execute(req, [barrier](couchbase::operations::mutate_in_response resp) mutable { barrier->set_value(resp); });
1745
1844
  auto resp = f.get();
1746
1845
  if (resp.ec) {
1747
- exc = cb__map_error_code(resp.ec, fmt::format("unable to mutate {}", doc_id));
1846
+ exc = cb__map_error_code(resp.ec, fmt::format("unable to mutate {} (opaque={})", doc_id, resp.opaque));
1748
1847
  break;
1749
1848
  }
1750
1849
 
@@ -1756,16 +1855,22 @@ cb_Backend_document_mutate_in(VALUE self,
1756
1855
  rb_hash_aset(res, rb_id2sym(rb_intern("fields")), fields);
1757
1856
  for (size_t i = 0; i < resp.fields.size(); ++i) {
1758
1857
  VALUE entry = rb_hash_new();
1858
+ rb_hash_aset(entry, rb_id2sym(rb_intern("index")), ULL2NUM(i));
1759
1859
  rb_hash_aset(
1760
1860
  entry, rb_id2sym(rb_intern("path")), rb_str_new(resp.fields[i].path.data(), static_cast<long>(resp.fields[i].path.size())));
1761
- if (resp.fields[i].opcode == couchbase::protocol::subdoc_opcode::counter) {
1762
- rb_hash_aset(entry, rb_id2sym(rb_intern("value")), LONG2NUM(std::stoll(resp.fields[i].value)));
1763
- } else {
1764
- rb_hash_aset(entry,
1765
- rb_id2sym(rb_intern("value")),
1766
- rb_str_new(resp.fields[i].value.data(), static_cast<long>(resp.fields[i].value.size())));
1861
+ if (resp.fields[i].status == couchbase::protocol::status::success ||
1862
+ resp.fields[i].status == couchbase::protocol::status::subdoc_success_deleted) {
1863
+ if (resp.fields[i].opcode == couchbase::protocol::subdoc_opcode::counter) {
1864
+ if (resp.fields[i].value.size() > 0) {
1865
+ rb_hash_aset(entry, rb_id2sym(rb_intern("value")), LONG2NUM(std::stoll(resp.fields[i].value)));
1866
+ }
1867
+ } else {
1868
+ rb_hash_aset(entry,
1869
+ rb_id2sym(rb_intern("value")),
1870
+ rb_str_new(resp.fields[i].value.data(), static_cast<long>(resp.fields[i].value.size())));
1871
+ }
1767
1872
  }
1768
- rb_hash_aset(entry, rb_id2sym(rb_intern("status")), cb__map_subdoc_status(resp.fields[i].status));
1873
+ cb__map_subdoc_status(resp.fields[i].status, i, resp.fields[i].path, entry);
1769
1874
  rb_hash_aset(entry, rb_id2sym(rb_intern("type")), cb__map_subdoc_opcode(resp.fields[i].opcode));
1770
1875
  rb_ary_store(fields, static_cast<long>(i), entry);
1771
1876
  }
@@ -5248,7 +5353,7 @@ init_backend(VALUE mCouchbase)
5248
5353
  rb_define_method(cBackend, "document_upsert", VALUE_FUNC(cb_Backend_document_upsert), 7);
5249
5354
  rb_define_method(cBackend, "document_remove", VALUE_FUNC(cb_Backend_document_remove), 5);
5250
5355
  rb_define_method(cBackend, "document_lookup_in", VALUE_FUNC(cb_Backend_document_lookup_in), 6);
5251
- rb_define_method(cBackend, "document_mutate_in", VALUE_FUNC(cb_Backend_document_mutate_in), 7);
5356
+ rb_define_method(cBackend, "document_mutate_in", VALUE_FUNC(cb_Backend_document_mutate_in), 6);
5252
5357
  rb_define_method(cBackend, "document_query", VALUE_FUNC(cb_Backend_document_query), 2);
5253
5358
  rb_define_method(cBackend, "document_touch", VALUE_FUNC(cb_Backend_document_touch), 5);
5254
5359
  rb_define_method(cBackend, "document_exists", VALUE_FUNC(cb_Backend_document_exists), 4);
@@ -5316,17 +5421,25 @@ init_backend(VALUE mCouchbase)
5316
5421
  rb_define_singleton_method(cBackend, "parse_connection_string", VALUE_FUNC(cb_Backend_parse_connection_string), 1);
5317
5422
  }
5318
5423
 
5319
- extern "C" {
5320
5424
  void
5321
- Init_libcouchbase(void)
5425
+ init_logger()
5322
5426
  {
5323
- auto env_val = spdlog::details::os::getenv("SPDLOG_LEVEL");
5427
+ spdlog::set_pattern("[%Y-%m-%d %T.%e] [%P,%t] [%^%l%$] %v");
5428
+
5429
+ auto env_val = spdlog::details::os::getenv("COUCHBASE_BACKEND_LOG_LEVEL");
5324
5430
  if (env_val.empty()) {
5325
5431
  spdlog::set_level(spdlog::level::critical);
5326
5432
  } else {
5327
- spdlog::cfg::load_env_levels();
5433
+ auto levels = spdlog::cfg::helpers::extract_levels(env_val);
5434
+ spdlog::details::registry::instance().update_levels(std::move(levels));
5328
5435
  }
5329
- spdlog::set_pattern("[%Y-%m-%d %T.%e] [%P,%t] [%^%l%$] %v");
5436
+ }
5437
+
5438
+ extern "C" {
5439
+ void
5440
+ Init_libcouchbase(void)
5441
+ {
5442
+ init_logger();
5330
5443
 
5331
5444
  VALUE mCouchbase = rb_define_module("Couchbase");
5332
5445
  init_versions(mCouchbase);