couchbase 3.0.0.alpha.2 → 3.0.0

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 (887) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +227 -0
  3. data/.rubocop_todo.yml +47 -0
  4. data/.yardopts +1 -0
  5. data/CONTRIBUTING.md +110 -0
  6. data/Gemfile +16 -3
  7. data/README.md +6 -4
  8. data/Rakefile +6 -2
  9. data/couchbase.gemspec +46 -13
  10. data/examples/analytics.rb +236 -0
  11. data/examples/auth.rb +33 -0
  12. data/examples/crud.rb +16 -2
  13. data/examples/managing_analytics_indexes.rb +86 -0
  14. data/examples/managing_buckets.rb +17 -3
  15. data/examples/managing_collections.rb +22 -9
  16. data/examples/managing_query_indexes.rb +39 -19
  17. data/examples/managing_search_indexes.rb +77 -0
  18. data/examples/managing_view_indexes.rb +68 -0
  19. data/examples/query.rb +17 -3
  20. data/examples/query_with_consistency.rb +30 -20
  21. data/examples/search.rb +202 -0
  22. data/examples/search_with_consistency.rb +97 -0
  23. data/examples/subdocument.rb +42 -30
  24. data/examples/view.rb +59 -0
  25. data/ext/.clang-tidy +2 -0
  26. data/ext/.idea/misc.xml +12 -0
  27. data/ext/CMakeLists.txt +50 -3
  28. data/ext/build_config.hxx.in +20 -0
  29. data/ext/build_version.hxx.in +1 -1
  30. data/ext/couchbase/bucket.hxx +228 -51
  31. data/ext/couchbase/cluster.hxx +147 -87
  32. data/ext/couchbase/cluster_options.hxx +53 -0
  33. data/ext/couchbase/configuration.hxx +232 -14
  34. data/ext/couchbase/couchbase.cxx +4250 -1458
  35. data/ext/couchbase/error_map.hxx +202 -2
  36. data/ext/couchbase/errors.hxx +8 -2
  37. data/ext/couchbase/io/dns_client.hxx +217 -0
  38. data/ext/couchbase/io/dns_codec.hxx +207 -0
  39. data/ext/couchbase/io/dns_config.hxx +116 -0
  40. data/ext/couchbase/io/dns_message.hxx +555 -0
  41. data/ext/couchbase/io/http_command.hxx +91 -0
  42. data/ext/couchbase/io/http_session.hxx +119 -47
  43. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +34 -34
  44. data/ext/couchbase/io/mcbp_command.hxx +237 -0
  45. data/ext/couchbase/io/mcbp_message.hxx +24 -2
  46. data/ext/couchbase/io/mcbp_parser.hxx +2 -0
  47. data/ext/couchbase/io/mcbp_session.hxx +455 -173
  48. data/ext/couchbase/io/retry_action.hxx +30 -0
  49. data/ext/couchbase/io/retry_context.hxx +39 -0
  50. data/ext/couchbase/io/retry_orchestrator.hxx +96 -0
  51. data/ext/couchbase/io/retry_reason.hxx +235 -0
  52. data/ext/couchbase/io/retry_strategy.hxx +156 -0
  53. data/ext/couchbase/io/streams.hxx +165 -0
  54. data/ext/couchbase/mutation_token.hxx +1 -1
  55. data/ext/couchbase/operations.hxx +33 -1
  56. data/ext/couchbase/operations/analytics_dataset_create.hxx +117 -0
  57. data/ext/couchbase/operations/analytics_dataset_drop.hxx +103 -0
  58. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +107 -0
  59. data/ext/couchbase/operations/analytics_dataverse_create.hxx +104 -0
  60. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +104 -0
  61. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +91 -0
  62. data/ext/couchbase/operations/analytics_index_create.hxx +128 -0
  63. data/ext/couchbase/operations/analytics_index_drop.hxx +110 -0
  64. data/ext/couchbase/operations/analytics_index_get_all.hxx +106 -0
  65. data/ext/couchbase/operations/analytics_link_connect.hxx +102 -0
  66. data/ext/couchbase/operations/analytics_link_disconnect.hxx +101 -0
  67. data/ext/couchbase/operations/bucket_create.hxx +5 -2
  68. data/ext/couchbase/operations/bucket_drop.hxx +5 -2
  69. data/ext/couchbase/operations/bucket_flush.hxx +5 -2
  70. data/ext/couchbase/operations/bucket_get.hxx +5 -2
  71. data/ext/couchbase/operations/bucket_get_all.hxx +5 -2
  72. data/ext/couchbase/operations/bucket_update.hxx +5 -2
  73. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +5 -2
  74. data/ext/couchbase/operations/collection_create.hxx +10 -3
  75. data/ext/couchbase/operations/collection_drop.hxx +5 -2
  76. data/ext/couchbase/operations/design_document.hxx +59 -0
  77. data/ext/couchbase/operations/document_analytics.hxx +288 -0
  78. data/ext/couchbase/operations/document_decrement.hxx +11 -4
  79. data/ext/couchbase/operations/document_exists.hxx +5 -1
  80. data/ext/couchbase/operations/document_get.hxx +8 -1
  81. data/ext/couchbase/operations/document_get_and_lock.hxx +8 -1
  82. data/ext/couchbase/operations/document_get_and_touch.hxx +10 -3
  83. data/ext/couchbase/operations/document_get_projected.hxx +249 -0
  84. data/ext/couchbase/operations/document_increment.hxx +14 -5
  85. data/ext/couchbase/operations/document_insert.hxx +10 -3
  86. data/ext/couchbase/operations/document_lookup_in.hxx +27 -1
  87. data/ext/couchbase/operations/document_mutate_in.hxx +51 -2
  88. data/ext/couchbase/operations/document_query.hxx +31 -11
  89. data/ext/couchbase/operations/document_remove.hxx +8 -1
  90. data/ext/couchbase/operations/document_replace.hxx +10 -3
  91. data/ext/couchbase/operations/document_search.hxx +360 -0
  92. data/ext/couchbase/operations/document_touch.hxx +10 -3
  93. data/ext/couchbase/operations/document_unlock.hxx +8 -1
  94. data/ext/couchbase/operations/document_upsert.hxx +10 -3
  95. data/ext/couchbase/operations/document_view.hxx +228 -0
  96. data/ext/couchbase/operations/query_index_build_deferred.hxx +4 -3
  97. data/ext/couchbase/operations/query_index_create.hxx +18 -7
  98. data/ext/couchbase/operations/query_index_drop.hxx +16 -5
  99. data/ext/couchbase/operations/query_index_get_all.hxx +15 -5
  100. data/ext/couchbase/operations/scope_create.hxx +5 -2
  101. data/ext/couchbase/operations/scope_drop.hxx +5 -2
  102. data/ext/couchbase/operations/scope_get_all.hxx +6 -2
  103. data/ext/couchbase/operations/search_index.hxx +79 -0
  104. data/ext/couchbase/operations/search_index_analyze_document.hxx +92 -0
  105. data/ext/couchbase/operations/search_index_control_ingest.hxx +80 -0
  106. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +80 -0
  107. data/ext/couchbase/operations/search_index_control_query.hxx +80 -0
  108. data/ext/couchbase/operations/search_index_drop.hxx +77 -0
  109. data/ext/couchbase/operations/search_index_get.hxx +80 -0
  110. data/ext/couchbase/operations/search_index_get_all.hxx +82 -0
  111. data/ext/couchbase/operations/search_index_get_documents_count.hxx +81 -0
  112. data/ext/couchbase/operations/search_index_upsert.hxx +106 -0
  113. data/ext/couchbase/operations/view_index_drop.hxx +67 -0
  114. data/ext/couchbase/operations/view_index_get.hxx +90 -0
  115. data/ext/couchbase/operations/view_index_get_all.hxx +125 -0
  116. data/ext/couchbase/operations/view_index_upsert.hxx +87 -0
  117. data/ext/couchbase/origin.hxx +178 -0
  118. data/ext/couchbase/platform/backtrace.c +189 -0
  119. data/ext/couchbase/platform/backtrace.h +54 -0
  120. data/ext/couchbase/platform/terminate_handler.cc +122 -0
  121. data/ext/couchbase/platform/terminate_handler.h +36 -0
  122. data/ext/couchbase/protocol/client_opcode.hxx +17 -3
  123. data/ext/couchbase/protocol/client_response.hxx +1 -1
  124. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +1 -6
  125. data/ext/couchbase/protocol/cmd_decrement.hxx +5 -5
  126. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +5 -5
  127. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +7 -7
  128. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +117 -0
  129. data/ext/couchbase/protocol/cmd_hello.hxx +10 -0
  130. data/ext/couchbase/protocol/cmd_increment.hxx +5 -5
  131. data/ext/couchbase/protocol/cmd_info.hxx +0 -11
  132. data/ext/couchbase/protocol/cmd_insert.hxx +5 -5
  133. data/ext/couchbase/protocol/cmd_lookup_in.hxx +1 -0
  134. data/ext/couchbase/protocol/cmd_mutate_in.hxx +53 -5
  135. data/ext/couchbase/protocol/cmd_replace.hxx +5 -5
  136. data/ext/couchbase/protocol/cmd_touch.hxx +1 -1
  137. data/ext/couchbase/protocol/cmd_upsert.hxx +5 -5
  138. data/ext/couchbase/protocol/status.hxx +14 -4
  139. data/ext/couchbase/service_type.hxx +38 -1
  140. data/ext/couchbase/timeout_defaults.hxx +41 -0
  141. data/ext/couchbase/utils/connection_string.hxx +370 -0
  142. data/ext/couchbase/version.hxx +2 -2
  143. data/ext/extconf.rb +60 -24
  144. data/ext/test/main.cxx +139 -22
  145. data/ext/third_party/http_parser/Makefile +160 -0
  146. data/ext/third_party/json/Makefile +77 -0
  147. data/lib/couchbase.rb +0 -1
  148. data/lib/couchbase/analytics_options.rb +177 -0
  149. data/lib/couchbase/authenticator.rb +14 -0
  150. data/lib/couchbase/binary_collection.rb +17 -13
  151. data/lib/couchbase/binary_collection_options.rb +14 -8
  152. data/lib/couchbase/bucket.rb +55 -3
  153. data/lib/couchbase/cluster.rb +219 -250
  154. data/lib/couchbase/collection.rb +67 -33
  155. data/lib/couchbase/collection_options.rb +95 -15
  156. data/lib/couchbase/common_options.rb +1 -1
  157. data/{bin/console → lib/couchbase/datastructures.rb} +4 -7
  158. data/lib/couchbase/datastructures/couchbase_list.rb +171 -0
  159. data/lib/couchbase/datastructures/couchbase_map.rb +205 -0
  160. data/lib/couchbase/datastructures/couchbase_queue.rb +145 -0
  161. data/lib/couchbase/datastructures/couchbase_set.rb +139 -0
  162. data/lib/couchbase/errors.rb +76 -66
  163. data/lib/couchbase/json_transcoder.rb +4 -4
  164. data/lib/couchbase/management/analytics_index_manager.rb +139 -25
  165. data/lib/couchbase/management/bucket_manager.rb +19 -5
  166. data/lib/couchbase/management/collection_manager.rb +16 -7
  167. data/lib/couchbase/management/query_index_manager.rb +75 -20
  168. data/lib/couchbase/management/search_index_manager.rb +65 -15
  169. data/lib/couchbase/management/user_manager.rb +2 -2
  170. data/lib/couchbase/management/view_index_manager.rb +70 -11
  171. data/lib/couchbase/mutation_state.rb +13 -0
  172. data/lib/couchbase/query_options.rb +256 -0
  173. data/lib/couchbase/scope.rb +61 -8
  174. data/lib/couchbase/search_options.rb +1512 -0
  175. data/lib/couchbase/subdoc.rb +87 -23
  176. data/lib/couchbase/version.rb +2 -2
  177. data/lib/couchbase/view_options.rb +155 -0
  178. metadata +88 -783
  179. data/.github/workflows/tests-6.0.3.yml +0 -49
  180. data/.github/workflows/tests.yml +0 -47
  181. data/.gitignore +0 -20
  182. data/.gitmodules +0 -18
  183. data/.idea/.gitignore +0 -5
  184. data/.idea/dictionaries/gem_terms.xml +0 -18
  185. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  186. data/.idea/vcs.xml +0 -12
  187. data/bin/init-cluster +0 -62
  188. data/bin/setup +0 -24
  189. data/ext/couchbase/configuration_monitor.hxx +0 -93
  190. data/ext/couchbase/operations/command.hxx +0 -77
  191. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  192. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  193. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  194. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  195. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  196. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  197. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  198. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  199. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  200. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  201. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  202. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  203. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  204. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  205. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  206. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  207. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  208. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  209. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  210. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  211. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  212. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  213. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  214. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  215. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  216. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  217. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  218. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  219. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  220. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  221. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  222. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  223. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  224. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  225. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  226. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  227. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  228. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  229. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  230. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  231. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  232. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  233. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  234. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  235. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  236. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  237. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  238. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  239. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  240. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  241. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  242. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  243. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  244. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  245. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  246. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  247. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  248. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  249. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  250. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  251. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  252. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  253. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  254. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  255. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  256. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  257. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  258. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  259. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  260. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  261. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  262. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  263. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  264. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  265. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  266. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  267. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  268. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  269. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  270. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  271. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  272. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  273. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  274. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  275. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  276. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  277. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  278. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  279. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  280. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  281. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  282. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  283. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  284. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  285. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  286. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  287. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  288. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  289. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  290. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  291. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  292. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  293. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  294. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  295. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  296. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  297. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  298. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  299. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  300. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  301. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  302. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  303. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  304. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  305. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  306. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  307. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  308. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  309. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  310. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  311. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  312. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  313. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  314. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  315. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  316. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  317. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  318. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  319. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  320. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  321. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  322. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  323. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  324. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  325. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  326. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  327. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  328. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  329. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  330. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  331. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  332. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  333. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  334. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  335. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  336. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  337. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  338. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  339. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  340. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  341. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  342. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  343. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  344. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  345. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  346. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  347. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  348. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  349. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  350. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  351. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  352. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  353. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  354. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  355. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  356. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  357. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  358. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  359. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  360. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  361. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  362. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  363. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  364. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  365. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  366. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  367. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  368. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  369. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  370. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  371. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  372. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  373. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  374. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  375. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  376. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  377. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  378. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  379. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  380. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  381. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  382. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  383. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  384. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  385. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  386. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  387. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  388. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  389. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  390. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  391. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  392. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  393. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  394. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  395. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  396. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  397. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  398. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  399. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  400. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  401. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  402. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  403. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  404. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  405. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  406. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  407. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  408. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  409. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  410. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  411. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  412. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  413. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  414. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  415. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  416. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  417. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  418. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  419. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  420. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  421. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  422. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  423. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  424. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  425. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  426. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  427. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  428. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  429. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  430. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  431. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  432. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  433. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  434. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  435. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  436. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  437. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  438. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  439. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  440. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  441. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  442. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  443. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  444. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  445. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  446. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  447. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  448. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  449. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  450. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  451. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  452. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  453. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  454. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  455. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  456. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  457. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  458. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  459. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  460. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  461. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  462. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  463. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  464. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  465. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  466. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  467. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  468. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  469. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  470. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  471. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  472. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  473. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  474. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  475. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  476. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  477. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  478. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  479. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  480. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  481. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  482. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  483. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  484. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  485. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  486. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  487. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  488. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  489. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  490. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  491. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  492. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  493. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  494. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  495. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  496. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  497. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  498. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  499. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  500. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  501. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  502. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  503. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  504. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  505. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  506. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  507. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  508. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  509. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  510. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  511. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  512. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  513. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  514. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  515. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  516. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  517. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  518. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  519. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  520. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  521. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  522. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  523. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  524. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  525. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  526. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  527. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  528. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  529. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  530. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  531. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  532. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  533. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  534. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  535. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  536. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  537. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  538. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  539. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  540. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  541. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  542. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  543. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  544. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  545. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  546. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  547. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  548. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  549. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  550. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  551. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  552. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  553. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  554. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  555. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  556. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  557. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  558. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  559. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  560. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  561. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  562. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  563. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  564. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  565. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  566. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  567. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  568. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  569. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  570. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  571. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  572. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  573. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  574. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  575. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  576. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  577. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  578. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  579. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  580. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  581. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  582. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  583. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  584. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  585. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  586. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  587. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  588. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  589. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  590. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  591. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  592. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  593. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  594. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  595. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  596. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  597. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  598. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  599. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  600. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  601. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  602. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  603. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  604. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  605. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  606. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  607. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  608. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  609. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  610. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  611. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  612. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  613. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  614. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  615. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  616. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  617. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  618. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  619. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  620. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  621. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  622. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  623. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  624. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  625. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  626. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  627. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  628. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  629. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  630. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  631. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  632. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  633. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  634. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  635. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  636. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  637. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  638. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  639. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  640. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  641. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  642. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  643. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  644. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  645. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  646. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  647. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  648. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  649. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  650. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  651. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  652. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  653. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  654. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  655. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  656. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  657. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  658. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  659. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  660. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  661. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  662. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  663. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  664. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  665. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  666. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  667. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  668. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  669. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  670. data/ext/third_party/json/doc/Changelog.md +0 -31
  671. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  672. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  673. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  674. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  675. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  676. data/ext/third_party/json/doc/Interoperability.md +0 -75
  677. data/ext/third_party/json/doc/Overview.md +0 -24
  678. data/ext/third_party/json/doc/Overview.png +0 -0
  679. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  680. data/ext/third_party/json/doc/README.md +0 -78
  681. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  682. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  683. data/ext/third_party/json/doc/Types.png +0 -0
  684. data/ext/third_party/json/doc/Value-Class.md +0 -525
  685. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  686. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  687. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  688. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  689. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  690. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  691. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  692. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  693. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  694. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  695. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  696. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  697. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  698. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  699. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  700. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  701. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  702. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  703. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  704. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  705. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  706. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  707. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  708. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  709. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  710. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  711. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  712. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  713. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  714. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  715. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  716. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  717. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  718. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  719. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  720. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  721. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  722. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  723. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  724. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  725. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  726. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  727. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  728. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  729. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  730. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  731. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  732. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  733. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  734. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  735. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  736. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  737. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  738. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  739. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  740. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  741. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  742. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  743. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  744. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  745. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  746. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  747. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  748. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  749. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  750. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  751. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  752. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  753. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  754. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  755. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  756. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  757. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  758. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  759. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  760. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  761. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  762. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  763. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  764. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  765. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  766. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  767. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  768. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  769. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  770. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  771. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  772. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  773. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  774. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  775. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  776. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  777. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  778. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  779. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  780. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  781. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  782. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  783. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  784. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  785. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  786. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  787. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  788. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  789. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  790. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  791. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  792. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  793. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  794. data/ext/third_party/json/tests/blns.json +0 -496
  795. data/ext/third_party/json/tests/canada.json +0 -9
  796. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  797. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  798. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  799. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  800. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  801. data/ext/third_party/json/tests/draft4/default.json +0 -49
  802. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  803. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  804. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  805. data/ext/third_party/json/tests/draft4/items.json +0 -46
  806. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  807. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  808. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  809. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  810. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  811. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  812. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  813. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  814. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  815. data/ext/third_party/json/tests/draft4/not.json +0 -96
  816. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  817. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  818. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  819. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  820. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  821. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  822. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  823. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  824. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  825. data/ext/third_party/json/tests/draft4/required.json +0 -44
  826. data/ext/third_party/json/tests/draft4/type.json +0 -345
  827. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  828. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  829. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  830. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  831. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  832. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  833. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  834. data/ext/third_party/json/tests/twitter.json +0 -15482
  835. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  836. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  837. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  838. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  839. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  840. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  841. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  842. data/ext/third_party/snappy/testdata/html +0 -1
  843. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  844. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  845. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  846. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  847. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  848. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  849. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  850. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  851. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  852. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  853. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  854. data/ext/third_party/spdlog/bench/utils.h +0 -34
  855. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  856. data/ext/third_party/spdlog/example/example.cpp +0 -282
  857. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  858. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  859. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  860. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  861. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  862. data/ext/third_party/spdlog/tests/catch.license +0 -23
  863. data/ext/third_party/spdlog/tests/includes.h +0 -26
  864. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  865. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  866. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  867. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  868. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  869. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  870. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  871. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  872. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  873. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  874. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  875. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  876. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  877. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  878. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  879. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  880. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  881. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  882. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  883. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  884. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  885. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  886. data/ext/third_party/spdlog/tests/utils.h +0 -18
  887. data/rbi/couchbase.rbi +0 -79
@@ -0,0 +1,1512 @@
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
+ module Couchbase
16
+ class Cluster
17
+ class SearchQuery
18
+ # Prepare {MatchQuery} body
19
+ #
20
+ # @param [String] match
21
+ # @yieldparam [MatchQuery] query
22
+ #
23
+ # @return [MatchQuery]
24
+ def self.match(match, &block)
25
+ MatchQuery.new(match, &block)
26
+ end
27
+
28
+ # A match query analyzes the input text and uses that analyzed text to query the index.
29
+ class MatchQuery < SearchQuery
30
+ # @return [Float]
31
+ attr_accessor :boost
32
+
33
+ # @return [String]
34
+ attr_accessor :field
35
+
36
+ # @return [String]
37
+ attr_accessor :analyzer
38
+
39
+ # @return [Integer]
40
+ attr_accessor :prefix_length
41
+
42
+ # @return [Integer]
43
+ attr_accessor :fuzziness
44
+
45
+ # @param [String] match
46
+ # @yieldparam [MatchQuery] self
47
+ def initialize(match)
48
+ super()
49
+ @match = match
50
+ yield self if block_given?
51
+ end
52
+
53
+ # @return [String]
54
+ def to_json(*args)
55
+ data = {"match" => @match}
56
+ data["boost"] = boost if boost
57
+ data["field"] = field if field
58
+ data["analyzer"] = analyzer if analyzer
59
+ if fuzziness
60
+ data["fuzziness"] = fuzziness
61
+ data["prefix_length"] = prefix_length if prefix_length
62
+ end
63
+ data.to_json(*args)
64
+ end
65
+ end
66
+
67
+ # Prepare {MatchPhraseQuery} body
68
+ #
69
+ # @param [String] match_phrase
70
+ # @yieldparam [MatchPhraseQuery] query
71
+ #
72
+ # @return [MatchPhraseQuery]
73
+ def self.match_phrase(match_phrase, &block)
74
+ MatchPhraseQuery.new(match_phrase, &block)
75
+ end
76
+
77
+ # The input text is analyzed and a phrase query is built with the terms resulting from the analysis.
78
+ class MatchPhraseQuery < SearchQuery
79
+ # @return [Float]
80
+ attr_accessor :boost
81
+
82
+ # @return [String]
83
+ attr_accessor :field
84
+
85
+ # @return [String]
86
+ attr_accessor :analyzer
87
+
88
+ # @param [String] match_phrase
89
+ #
90
+ # @yieldparam [MatchPhraseQuery] self
91
+ def initialize(match_phrase)
92
+ super()
93
+ @match_phrase = match_phrase
94
+ yield self if block_given?
95
+ end
96
+
97
+ # @return [String]
98
+ def to_json(*args)
99
+ data = {"match_phrase" => @match_phrase}
100
+ data["boost"] = boost if boost
101
+ data["field"] = field if field
102
+ data["analyzer"] = analyzer if analyzer
103
+ data.to_json(*args)
104
+ end
105
+ end
106
+
107
+ # Prepare {RegexpQuery} body
108
+ #
109
+ # @param [String] regexp
110
+ # @yieldparam [RegexpQuery] query
111
+ #
112
+ # @return [RegexpQuery]
113
+ def self.regexp(regexp, &block)
114
+ RegexpQuery.new(regexp, &block)
115
+ end
116
+
117
+ # Finds documents containing terms that match the specified regular expression.
118
+ class RegexpQuery < SearchQuery
119
+ # @return [Float]
120
+ attr_accessor :boost
121
+
122
+ # @return [String]
123
+ attr_accessor :field
124
+
125
+ # @param [String] regexp
126
+ #
127
+ # @yieldparam [RegexpQuery] self
128
+ def initialize(regexp)
129
+ super()
130
+ @regexp = regexp
131
+ yield self if block_given?
132
+ end
133
+
134
+ # @return [String]
135
+ def to_json(*args)
136
+ data = {"regexp" => @regexp}
137
+ data["boost"] = boost if boost
138
+ data["field"] = field if field
139
+ data.to_json(*args)
140
+ end
141
+ end
142
+
143
+ # Prepare {QueryStringQuery} body
144
+ #
145
+ # @param [String] query_string
146
+ # @yieldparam [QueryStringQuery] query
147
+ #
148
+ # @return [QueryStringQuery]
149
+ def self.query_string(query_string, &block)
150
+ QueryStringQuery.new(query_string, &block)
151
+ end
152
+
153
+ # The query string query allows humans to describe complex queries using a simple syntax.
154
+ class QueryStringQuery < SearchQuery
155
+ # @return [Float]
156
+ attr_accessor :boost
157
+
158
+ # @param [String] query_string
159
+ #
160
+ # @yieldparam [QueryStringQuery] self
161
+ def initialize(query_string)
162
+ super()
163
+ @query_string = query_string
164
+ yield self if block_given?
165
+ end
166
+
167
+ # @return [String]
168
+ def to_json(*args)
169
+ data = {"query" => @query_string}
170
+ data["boost"] = boost if boost
171
+ data.to_json(*args)
172
+ end
173
+ end
174
+
175
+ # Prepare {WildcardQuery} body
176
+ #
177
+ # @param [String] wildcard
178
+ # @yieldparam [WildcardQuery] query
179
+ #
180
+ # @return [WildcardQuery]
181
+ def self.wildcard(wildcard, &block)
182
+ WildcardQuery.new(wildcard, &block)
183
+ end
184
+
185
+ # Interprets * and ? wildcards as found in a lot of applications, for an easy implementation of such a search feature.
186
+ class WildcardQuery < SearchQuery
187
+ # @return [Float]
188
+ attr_accessor :boost
189
+
190
+ # @return [String]
191
+ attr_accessor :field
192
+
193
+ # @param [String] wildcard
194
+ #
195
+ # @yieldparam [WildcardQuery] self
196
+ def initialize(wildcard)
197
+ super()
198
+ @wildcard = wildcard
199
+ yield self if block_given?
200
+ end
201
+
202
+ # @return [String]
203
+ def to_json(*args)
204
+ data = {"wildcard" => @wildcard}
205
+ data["boost"] = boost if boost
206
+ data["field"] = field if field
207
+ data.to_json(*args)
208
+ end
209
+ end
210
+
211
+ # Prepare {DocIdQuery} body
212
+ #
213
+ # @param [String...] doc_ids
214
+ # @yieldparam [DocIdQuery] query
215
+ #
216
+ # @return [DocIdQuery]
217
+ def self.doc_id(*doc_ids)
218
+ DocIdQuery.new(*doc_ids)
219
+ end
220
+
221
+ # Allows to restrict matches to a set of specific documents.
222
+ class DocIdQuery < SearchQuery
223
+ # @return [Float]
224
+ attr_accessor :boost
225
+
226
+ # @return [String]
227
+ attr_accessor :field
228
+
229
+ # @param [String...] doc_ids
230
+ #
231
+ # @yieldparam [DocIdQuery] self
232
+ def initialize(*doc_ids)
233
+ super()
234
+ @doc_ids = doc_ids
235
+ yield self if block_given?
236
+ end
237
+
238
+ # @return [String]
239
+ def to_json(*args)
240
+ data = {"doc_ids" => @doc_ids.flatten.uniq}
241
+ data["boost"] = boost if boost
242
+ data["field"] = field if field
243
+ data.to_json(*args)
244
+ end
245
+ end
246
+
247
+ # Prepare {BooleanFieldQuery} body
248
+ #
249
+ # @param [Boolean] value
250
+ # @yieldparam [BooleanFieldQuery] query
251
+ #
252
+ # @return [BooleanFieldQuery]
253
+ def self.boolean_field(value)
254
+ BooleanFieldQuery.new(value)
255
+ end
256
+
257
+ # Allow to match `true`/`false` in a field mapped as boolean.
258
+ class BooleanFieldQuery < SearchQuery
259
+ # @return [Float]
260
+ attr_accessor :boost
261
+
262
+ # @return [String]
263
+ attr_accessor :field
264
+
265
+ # @param [Boolean] value
266
+ #
267
+ # @yieldparam [BooleanFieldQuery] self
268
+ def initialize(value)
269
+ super()
270
+ @value = value
271
+ yield self if block_given?
272
+ end
273
+
274
+ # @return [String]
275
+ def to_json(*args)
276
+ data = {"bool" => @value}
277
+ data["boost"] = boost if boost
278
+ data["field"] = field if field
279
+ data.to_json(*args)
280
+ end
281
+ end
282
+
283
+ # Prepare {DateRangeQuery} body
284
+ #
285
+ # @yieldparam [DateRangeQuery] query
286
+ #
287
+ # @return [DateRangeQuery]
288
+ def self.date_range(&block)
289
+ DateRangeQuery.new(&block)
290
+ end
291
+
292
+ # The date range query finds documents containing a date value in the specified field within the specified range.
293
+ class DateRangeQuery < SearchQuery
294
+ # @return [Float]
295
+ attr_accessor :boost
296
+
297
+ # @return [String]
298
+ attr_accessor :field
299
+
300
+ # @return [String]
301
+ attr_accessor :date_time_parser
302
+
303
+ # Sets the lower boundary of the range.
304
+ #
305
+ # @note The lower boundary is considered inclusive by default on the server side.
306
+ #
307
+ # @param [Time, String] time_point start time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server
308
+ # default)
309
+ # @param [Boolean] inclusive
310
+ def start_time(time_point, inclusive = nil)
311
+ @start_time = time_point
312
+ @start_inclusive = inclusive
313
+ end
314
+
315
+ # Sets the upper boundary of the range.
316
+ #
317
+ # @note The upper boundary is considered exclusive by default on the server side.
318
+ #
319
+ # @param [Time, String] time_point end time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server default)
320
+ # @param [Boolean] inclusive
321
+ def end_time(time_point, inclusive = nil)
322
+ @end_time = time_point
323
+ @end_inclusive = inclusive
324
+ end
325
+
326
+ # @yieldparam [DateRangeQuery] self
327
+ def initialize
328
+ super
329
+ @start_time = nil
330
+ @start_inclusive = nil
331
+ @end_time = nil
332
+ @end_inclusive = nil
333
+ yield self if block_given?
334
+ end
335
+
336
+ DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z".freeze
337
+
338
+ # @return [String]
339
+ def to_json(*args)
340
+ raise ArgumentError, "either start_time or end_time must be set for DateRangeQuery" if @start_time.nil? && @end_time.nil?
341
+
342
+ data = {}
343
+ data["boost"] = boost if boost
344
+ data["field"] = field if field
345
+ data["datetime_parser"] = date_time_parser if date_time_parser
346
+ if @start_time
347
+ data["start"] = if @start_time.respond_to?(:strftime)
348
+ @start_time.strftime(DATE_FORMAT_RFC3339)
349
+ else
350
+ @start_time
351
+ end
352
+ data["inclusive_start"] = @start_inclusive unless @start_inclusive.nil?
353
+ end
354
+ if @end_time
355
+ data["end"] = if @end_time.respond_to?(:strftime)
356
+ @end_time.strftime(DATE_FORMAT_RFC3339)
357
+ else
358
+ @end_time
359
+ end
360
+ data["inclusive_end"] = @end_inclusive unless @end_inclusive.nil?
361
+ end
362
+ data.to_json(*args)
363
+ end
364
+ end
365
+
366
+ # Prepare {NumericRangeQuery} body
367
+ #
368
+ # @yieldparam [NumericRangeQuery] query
369
+ #
370
+ # @return [NumericRangeQuery]
371
+ def self.numeric_range(&block)
372
+ NumericRangeQuery.new(&block)
373
+ end
374
+
375
+ # The numeric range query finds documents containing a numeric value in the specified field within the specified range.
376
+ class NumericRangeQuery < SearchQuery
377
+ # @return [Float]
378
+ attr_accessor :boost
379
+
380
+ # @return [String]
381
+ attr_accessor :field
382
+
383
+ # Sets lower bound of the range.
384
+ #
385
+ # The lower boundary is considered inclusive by default on the server side.
386
+ #
387
+ # @param [Numeric] lower_bound
388
+ # @param [Boolean] inclusive
389
+ def min(lower_bound, inclusive = nil)
390
+ @min = lower_bound
391
+ @min_inclusive = inclusive
392
+ end
393
+
394
+ # Sets upper bound of the range.
395
+ #
396
+ # The upper boundary is considered exclusive by default on the server side.
397
+ #
398
+ # @param [Numeric] upper_bound
399
+ # @param [Boolean] inclusive
400
+ def max(upper_bound, inclusive = nil)
401
+ @max = upper_bound
402
+ @max_inclusive = inclusive
403
+ end
404
+
405
+ # @yieldparam [NumericRangeQuery] self
406
+ def initialize
407
+ super
408
+ @min = nil
409
+ @min_inclusive = nil
410
+ @max = nil
411
+ @max_inclusive = nil
412
+ yield self if block_given?
413
+ end
414
+
415
+ # @return [String]
416
+ def to_json(*args)
417
+ raise ArgumentError, "either min or max must be set for NumericRangeQuery" if @min.nil? && @max.nil?
418
+
419
+ data = {}
420
+ data["boost"] = boost if boost
421
+ data["field"] = field if field
422
+ if @min
423
+ data["min"] = @min
424
+ data["inclusive_min"] = @min_inclusive unless @min_inclusive.nil?
425
+ end
426
+ if @max
427
+ data["max"] = @max
428
+ data["inclusive_max"] = @max_inclusive unless @max_inclusive.nil?
429
+ end
430
+ data.to_json(*args)
431
+ end
432
+ end
433
+
434
+ # Prepare {TermRangeQuery} body
435
+ #
436
+ # @yieldparam [TermRangeQuery] query
437
+ #
438
+ # @return [TermRangeQuery]
439
+ def self.term_range(&block)
440
+ TermRangeQuery.new(&block)
441
+ end
442
+
443
+ # The term range query finds documents containing a string value in the specified field within the specified range.
444
+ class TermRangeQuery < SearchQuery
445
+ # @return [Float]
446
+ attr_accessor :boost
447
+
448
+ # @return [String]
449
+ attr_accessor :field
450
+
451
+ # Sets lower bound of the range.
452
+ #
453
+ # The lower boundary is considered inclusive by default on the server side.
454
+ #
455
+ # @param [String] lower_bound
456
+ # @param [Boolean] inclusive
457
+ def min(lower_bound, inclusive = nil)
458
+ @min = lower_bound
459
+ @min_inclusive = inclusive
460
+ end
461
+
462
+ # Sets upper bound of the range.
463
+ #
464
+ # The upper boundary is considered exclusive by default on the server side.
465
+ #
466
+ # @param [String] upper_bound
467
+ # @param [Boolean] inclusive
468
+ def max(upper_bound, inclusive = nil)
469
+ @max = upper_bound
470
+ @max_inclusive = inclusive
471
+ end
472
+
473
+ # @yieldparam [TermRangeQuery] self
474
+ def initialize
475
+ super
476
+ @min = nil
477
+ @min_inclusive = nil
478
+ @max = nil
479
+ @max_inclusive = nil
480
+ yield self if block_given?
481
+ end
482
+
483
+ # @return [String]
484
+ def to_json(*args)
485
+ raise ArgumentError, "either min or max must be set for TermRangeQuery" if @min.nil? && @max.nil?
486
+
487
+ data = {}
488
+ data["boost"] = boost if boost
489
+ data["field"] = field if field
490
+ if @min
491
+ data["min"] = @min
492
+ data["inclusive_min"] = @min_inclusive unless @min_inclusive.nil?
493
+ end
494
+ if @max
495
+ data["max"] = @max
496
+ data["inclusive_max"] = @max_inclusive unless @max_inclusive.nil?
497
+ end
498
+ data.to_json(*args)
499
+ end
500
+ end
501
+
502
+ # Prepare {GeoDistanceQuery} body
503
+ #
504
+ # @yieldparam [GeoDistanceQuery] query
505
+ #
506
+ # @param [Float] latitude location latitude
507
+ # @param [Float] longitude location longitude
508
+ # @param [String] distance how big is area (number with units)
509
+ #
510
+ # @return [GeoDistanceQuery]
511
+ def self.geo_distance(longitude, latitude, distance, &block)
512
+ GeoDistanceQuery.new(longitude, latitude, distance, &block)
513
+ end
514
+
515
+ # Finds `geopoint` indexed matches around a point with the given distance.
516
+ class GeoDistanceQuery < SearchQuery
517
+ # @return [Float]
518
+ attr_accessor :boost
519
+
520
+ # @return [String]
521
+ attr_accessor :field
522
+
523
+ # @yieldparam [GeoDistanceQuery] self
524
+ # @param [Float] longitude
525
+ # @param [Float] latitude
526
+ # @param [Float] distance
527
+ def initialize(longitude, latitude, distance)
528
+ super()
529
+ @longitude = longitude
530
+ @latitude = latitude
531
+ @distance = distance
532
+ yield self if block_given?
533
+ end
534
+
535
+ # @return [String]
536
+ def to_json(*args)
537
+ data = {
538
+ "location" => [@longitude, @latitude],
539
+ "distance" => @distance,
540
+ }
541
+ data["boost"] = boost if boost
542
+ data["field"] = field if field
543
+ data.to_json(*args)
544
+ end
545
+ end
546
+
547
+ # Prepare {GeoBoundingBoxQuery} body
548
+ #
549
+ # @yieldparam [GeoDistanceQuery] query
550
+ #
551
+ # @param [Float] top_left_longitude
552
+ # @param [Float] top_left_latitude
553
+ # @param [Float] bottom_right_longitude
554
+ # @param [Float] bottom_right_latitude
555
+ #
556
+ # @return [GeoBoundingBoxQuery]
557
+ def self.geo_bounding_box(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
558
+ GeoBoundingBoxQuery.new(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
559
+ end
560
+
561
+ # Finds `geopoint` indexed matches in a given bounding box.
562
+ class GeoBoundingBoxQuery < SearchQuery
563
+ # @return [Float]
564
+ attr_accessor :boost
565
+
566
+ # @return [String]
567
+ attr_accessor :field
568
+
569
+ # @yieldparam [GeoBoundingBoxQuery] self
570
+ #
571
+ # @param [Float] top_left_longitude
572
+ # @param [Float] top_left_latitude
573
+ # @param [Float] bottom_right_longitude
574
+ # @param [Float] bottom_right_latitude
575
+ def initialize(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude)
576
+ super()
577
+ @top_left_longitude = top_left_longitude
578
+ @top_left_latitude = top_left_latitude
579
+ @bottom_right_longitude = bottom_right_longitude
580
+ @bottom_right_latitude = bottom_right_latitude
581
+ yield self if block_given?
582
+ end
583
+
584
+ # @return [String]
585
+ def to_json(*args)
586
+ data = {
587
+ "top_left" => [@top_left_longitude, @top_left_latitude],
588
+ "bottom_right" => [@bottom_right_longitude, @bottom_right_latitude],
589
+ }
590
+ data["boost"] = boost if boost
591
+ data["field"] = field if field
592
+ data.to_json(*args)
593
+ end
594
+ end
595
+
596
+ # Prepare {ConjunctionQuery} body
597
+ #
598
+ # @yieldparam [ConjunctionQuery] query
599
+ #
600
+ # @return [ConjunctionQuery]
601
+ def self.conjuncts(*queries, &block)
602
+ ConjunctionQuery.new(*queries, &block)
603
+ end
604
+
605
+ # Result documents must satisfy all of the child queries.
606
+ class ConjunctionQuery < SearchQuery
607
+ # @return [Float]
608
+ attr_accessor :boost
609
+
610
+ # @yieldparam [ConjunctionQuery] self
611
+ #
612
+ # @param [*SearchQuery] queries
613
+ def initialize(*queries)
614
+ super()
615
+ @queries = queries.flatten
616
+ yield self if block_given?
617
+ end
618
+
619
+ # @param [*SearchQuery] queries
620
+ def and_also(*queries)
621
+ @queries |= queries.flatten
622
+ end
623
+
624
+ def empty?
625
+ @queries.empty?
626
+ end
627
+
628
+ # @return [String]
629
+ def to_json(*args)
630
+ raise ArgumentError, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty?
631
+
632
+ data = {"conjuncts" => @queries.uniq}
633
+ data["boost"] = boost if boost
634
+ data.to_json(*args)
635
+ end
636
+ end
637
+
638
+ # Prepare {ConjunctionQuery} body
639
+ #
640
+ # @yieldparam [ConjunctionQuery] query
641
+ #
642
+ # @return [ConjunctionQuery]
643
+ def self.disjuncts(*queries, &block)
644
+ DisjunctionQuery.new(*queries, &block)
645
+ end
646
+
647
+ # Result documents must satisfy a configurable min number of child queries.
648
+ class DisjunctionQuery < SearchQuery
649
+ # @return [Float]
650
+ attr_accessor :boost
651
+
652
+ # @return [Integer]
653
+ attr_accessor :min
654
+
655
+ # @yieldparam [DisjunctionQuery] self
656
+ #
657
+ # @param [*SearchQuery] queries
658
+ def initialize(*queries)
659
+ super()
660
+ @queries = queries.flatten
661
+ yield self if block_given?
662
+ end
663
+
664
+ # @param [*SearchQuery] queries
665
+ def or_else(*queries)
666
+ @queries |= queries.flatten
667
+ end
668
+
669
+ def empty?
670
+ @queries.empty?
671
+ end
672
+
673
+ # @return [String]
674
+ def to_json(*args)
675
+ raise ArgumentError, "compound disjunction query must have sub-queries" if @queries.nil? || @queries.empty?
676
+
677
+ data = {"disjuncts" => @queries.uniq}
678
+ if min
679
+ raise ArgumentError, "disjunction query has fewer sub-queries than configured minimum" if @queries.size < min
680
+
681
+ data["min"] = min
682
+ end
683
+ data["boost"] = boost if boost
684
+ data.to_json(*args)
685
+ end
686
+ end
687
+
688
+ # Prepare {BooleanQuery} body
689
+ #
690
+ # @yieldparam [BooleanQuery] query
691
+ #
692
+ # @return [BooleanQuery]
693
+ def self.booleans(&block)
694
+ BooleanQuery.new(&block)
695
+ end
696
+
697
+ # The boolean query is a useful combination of conjunction and disjunction queries.
698
+ class BooleanQuery < SearchQuery
699
+ # @return [Float]
700
+ attr_accessor :boost
701
+
702
+ # @yieldparam [BooleanQuery] self
703
+ def initialize
704
+ super()
705
+ @must = ConjunctionQuery.new
706
+ @must_not = DisjunctionQuery.new
707
+ @should = DisjunctionQuery.new
708
+ yield self if block_given?
709
+ end
710
+
711
+ # @param [Integer] min minimal value for "should" disjunction query
712
+ def should_min(min)
713
+ @should.min = min
714
+ self
715
+ end
716
+
717
+ # @param [*SearchQuery] queries
718
+ def must(*queries)
719
+ @must.and_also(*queries)
720
+ self
721
+ end
722
+
723
+ # @param [*SearchQuery] queries
724
+ def must_not(*queries)
725
+ @must_not.or_else(*queries)
726
+ self
727
+ end
728
+
729
+ # @param [*SearchQuery] queries
730
+ def should(*queries)
731
+ @should.or_else(*queries)
732
+ self
733
+ end
734
+
735
+ # @return [String]
736
+ def to_json(*args)
737
+ if @must.empty? && @must_not.empty? && @should.empty?
738
+ raise ArgumentError, "BooleanQuery must have at least one non-empty sub-query"
739
+ end
740
+
741
+ data = {}
742
+ data["must"] = @must unless @must.empty?
743
+ data["must_not"] = @must_not unless @must_not.empty?
744
+ data["should"] = @should unless @should.empty?
745
+ data["boost"] = boost if boost
746
+ data.to_json(*args)
747
+ end
748
+ end
749
+
750
+ # Prepare {TermQuery} body
751
+ #
752
+ # @yieldparam [TermQuery] query
753
+ # @param [String] term
754
+ #
755
+ # @return [TermQuery]
756
+ def self.term(term, &block)
757
+ TermQuery.new(term, &block)
758
+ end
759
+
760
+ # A query that looks for **exact** matches of the term in the index (no analyzer, no stemming). Useful to check what the actual
761
+ # content of the index is. It can also apply fuzziness on the term. Usual better alternative is `MatchQuery`.
762
+ class TermQuery < SearchQuery
763
+ # @return [Float]
764
+ attr_accessor :boost
765
+
766
+ # @return [String]
767
+ attr_accessor :field
768
+
769
+ # @return [Integer]
770
+ attr_accessor :fuzziness
771
+
772
+ # @return [Integer]
773
+ attr_accessor :prefix_length
774
+
775
+ # @yieldparam [TermQuery] self
776
+ #
777
+ # @param [String] term
778
+ def initialize(term)
779
+ super()
780
+ @term = term
781
+ yield self if block_given?
782
+ end
783
+
784
+ # @return [String]
785
+ def to_json(*args)
786
+ data = {"term" => @term}
787
+ data["boost"] = boost if boost
788
+ data["field"] = field if field
789
+ if fuzziness
790
+ data["fuzziness"] = fuzziness
791
+ data["prefix_length"] = prefix_length if prefix_length
792
+ end
793
+ data.to_json(*args)
794
+ end
795
+ end
796
+
797
+ # Prepare {PrefixQuery} body
798
+ #
799
+ # @yieldparam [PrefixQuery] query
800
+ # @param [String] prefix
801
+ #
802
+ # @return [PrefixQuery]
803
+ def self.prefix(prefix, &block)
804
+ PrefixQuery.new(prefix, &block)
805
+ end
806
+
807
+ # The prefix query finds documents containing terms that start with the provided prefix. Usual better alternative is `MatchQuery`.
808
+ class PrefixQuery < SearchQuery
809
+ # @return [Float]
810
+ attr_accessor :boost
811
+
812
+ # @return [String]
813
+ attr_accessor :field
814
+
815
+ # @yieldparam [PrefixQuery] self
816
+ #
817
+ # @param [String] prefix
818
+ def initialize(prefix)
819
+ super()
820
+ @prefix = prefix
821
+ yield self if block_given?
822
+ end
823
+
824
+ # @return [String]
825
+ def to_json(*args)
826
+ data = {"prefix" => @prefix}
827
+ data["boost"] = boost if boost
828
+ data["field"] = field if field
829
+ data.to_json(*args)
830
+ end
831
+ end
832
+
833
+ # Prepare {PhraseQuery} body
834
+ #
835
+ # @yieldparam [PhraseQuery] query
836
+ # @param [*String] terms
837
+ #
838
+ # @return [PhraseQuery]
839
+ def self.phrase(*terms, &block)
840
+ PhraseQuery.new(*terms, &block)
841
+ end
842
+
843
+ # A query that looks for **exact** match of several terms (in the exact order) in the index. Usual better alternative is
844
+ # {MatchPhraseQuery}.
845
+ class PhraseQuery < SearchQuery
846
+ # @return [Float]
847
+ attr_accessor :boost
848
+
849
+ # @return [String]
850
+ attr_accessor :field
851
+
852
+ # @yieldparam [PhraseQuery] self
853
+ #
854
+ # @param [*String] terms
855
+ def initialize(*terms)
856
+ super()
857
+ @terms = terms.flatten
858
+ yield self if block_given?
859
+ end
860
+
861
+ # @return [String]
862
+ def to_json(*args)
863
+ data = {"terms" => @terms.flatten.uniq}
864
+ data["boost"] = boost if boost
865
+ data["field"] = field if field
866
+ data.to_json(*args)
867
+ end
868
+ end
869
+
870
+ # Prepare {MatchAllQuery} body
871
+ #
872
+ # @yieldparam [MatchAllQuery] query
873
+ #
874
+ # @return [MatchAllQuery]
875
+ def self.match_all(&block)
876
+ MatchAllQuery.new(&block)
877
+ end
878
+
879
+ # A query that matches all indexed documents.
880
+ class MatchAllQuery < SearchQuery
881
+ # @return [Float]
882
+ attr_accessor :boost
883
+
884
+ # @yieldparam [MatchAllQuery] self
885
+ def initialize
886
+ super()
887
+ yield self if block_given?
888
+ end
889
+
890
+ # @return [String]
891
+ def to_json(*args)
892
+ data = {"match_all" => nil}
893
+ data["boost"] = boost if boost
894
+ data.to_json(*args)
895
+ end
896
+ end
897
+
898
+ # Prepare {MatchNoneQuery} body
899
+ #
900
+ # @yieldparam [MatchNoneQuery] query
901
+ #
902
+ # @return [MatchNoneQuery]
903
+ def self.match_none(&block)
904
+ MatchNoneQuery.new(&block)
905
+ end
906
+
907
+ # A query that matches nothing.
908
+ class MatchNoneQuery < SearchQuery
909
+ # @return [Float]
910
+ attr_accessor :boost
911
+
912
+ # @yieldparam [MatchNoneQuery] self
913
+ def initialize
914
+ super()
915
+ yield self if block_given?
916
+ end
917
+
918
+ # @return [String]
919
+ def to_json(*args)
920
+ data = {"match_none" => nil}
921
+ data["boost"] = boost if boost
922
+ data.to_json(*args)
923
+ end
924
+ end
925
+ end
926
+
927
+ class SearchSort
928
+ # @yieldparam [SearchSortScore]
929
+ # @return [SearchSortScore]
930
+ def self.score(&block)
931
+ SearchSortScore.new(&block)
932
+ end
933
+
934
+ # @yieldparam [SearchSortId]
935
+ # @return [SearchSortScore]
936
+ def self.id(&block)
937
+ SearchSortId.new(&block)
938
+ end
939
+
940
+ # @param [String] name field name
941
+ # @yieldparam [SearchSortField]
942
+ # @return [SearchSortField]
943
+ def self.field(name, &block)
944
+ SearchSortField.new(name, &block)
945
+ end
946
+
947
+ # @param [String] name field name
948
+ # @param [Float] longitude
949
+ # @param [Float] latitude
950
+ # @yieldparam [SearchSortField]
951
+ # @return [SearchSortGeoDistance]
952
+ def self.geo_distance(name, longitude, latitude, &block)
953
+ SearchSortGeoDistance.new(name, longitude, latitude, &block)
954
+ end
955
+
956
+ class SearchSortScore < SearchSort
957
+ # @return [Boolean] if descending order should be applied
958
+ attr_accessor :desc
959
+
960
+ # @yieldparam [SearchSortScore]
961
+ def initialize
962
+ super
963
+ yield self if block_given?
964
+ end
965
+
966
+ # @api private
967
+ def to_json(*args)
968
+ {by: :score, desc: desc}.to_json(*args)
969
+ end
970
+ end
971
+
972
+ class SearchSortId < SearchSort
973
+ # @return [Boolean] if descending order should be applied
974
+ attr_accessor :desc
975
+
976
+ # @yieldparam [SearchSortId]
977
+ def initialize
978
+ super
979
+ yield self if block_given?
980
+ end
981
+
982
+ # @api private
983
+ def to_json(*args)
984
+ {by: :id, desc: desc}.to_json(*args)
985
+ end
986
+ end
987
+
988
+ class SearchSortField < SearchSort
989
+ # @return [String] name of the field to sort by
990
+ attr_reader :field
991
+
992
+ # @return [Boolean] if descending order should be applied
993
+ attr_accessor :desc
994
+
995
+ # @return [:auto, :string, :number, :date]
996
+ attr_accessor :type
997
+
998
+ # @return [:first, :last] where the documents with missing field should be placed
999
+ attr_accessor :missing
1000
+
1001
+ # @return [:default, :min, :max]
1002
+ attr_accessor :mode
1003
+
1004
+ # @param [String] field the name of the filed for ordering
1005
+ # @yieldparam [SearchSortField]
1006
+ def initialize(field)
1007
+ super()
1008
+ @field = field
1009
+ yield self if block_given?
1010
+ end
1011
+
1012
+ # @api private
1013
+ def to_json(*args)
1014
+ {by: :field, field: field, desc: desc, type: type, missing: missing, mode: mode}.to_json(*args)
1015
+ end
1016
+ end
1017
+
1018
+ class SearchSortGeoDistance < SearchSort
1019
+ # @return [String] name of the field to sort by
1020
+ attr_reader :field
1021
+
1022
+ # @return [Boolean] if descending order should be applied
1023
+ attr_accessor :desc
1024
+
1025
+ # @return [Float]
1026
+ attr_reader :longitude
1027
+
1028
+ # @return [Float]
1029
+ attr_reader :latitude
1030
+
1031
+ # @return [:meters, :miles, :centimeters, :millimeters, :kilometers, :nauticalmiles, :feet, :yards, :inch]
1032
+ attr_accessor :unit
1033
+
1034
+ # @param [String] field field name
1035
+ # @param [Float] longitude
1036
+ # @param [Float] latitude
1037
+ # @yieldparam [SearchSortGeoDistance]
1038
+ def initialize(field, longitude, latitude)
1039
+ super()
1040
+ @field = field
1041
+ @longitude = longitude
1042
+ @latitude = latitude
1043
+ yield self if block_given?
1044
+ end
1045
+
1046
+ # @api private
1047
+ def to_json(*args)
1048
+ {by: :geo_distance, field: field, desc: desc, location: [longitude, latitude], unit: unit}.to_json(*args)
1049
+ end
1050
+ end
1051
+ end
1052
+
1053
+ class SearchFacet
1054
+ # @param [String] field_name
1055
+ # @return [SearchFacetTerm]
1056
+ def self.term(field_name, &block)
1057
+ SearchFacetTerm.new(field_name, &block)
1058
+ end
1059
+
1060
+ # @param [String] field_name
1061
+ # @return [SearchFacetNumericRange]
1062
+ def self.numeric_range(field_name, &block)
1063
+ SearchFacetNumericRange.new(field_name, &block)
1064
+ end
1065
+
1066
+ # @param [String] field_name
1067
+ # @return [SearchFacetDateRange]
1068
+ def self.date_range(field_name, &block)
1069
+ SearchFacetDateRange.new(field_name, &block)
1070
+ end
1071
+
1072
+ class SearchFacetTerm
1073
+ # @return [String]
1074
+ attr_reader :field
1075
+
1076
+ # @return [Integer]
1077
+ attr_accessor :size
1078
+
1079
+ # @param [String] field name of the field
1080
+ def initialize(field)
1081
+ @field = field
1082
+ yield self if block_given?
1083
+ end
1084
+
1085
+ # @api private
1086
+ def to_json(*args)
1087
+ {field: field, size: size}.to_json(*args)
1088
+ end
1089
+ end
1090
+
1091
+ class SearchFacetNumericRange
1092
+ # @return [String]
1093
+ attr_reader :field
1094
+
1095
+ # @return [Integer]
1096
+ attr_accessor :size
1097
+
1098
+ # @param [String] field name of the field
1099
+ def initialize(field)
1100
+ @field = field
1101
+ @ranges = []
1102
+ yield self if block_given?
1103
+ end
1104
+
1105
+ # @param [String] name the name of the range
1106
+ # @param [Integer, Float, nil] min lower bound of the range (pass +nil+ if there is no lower bound)
1107
+ # @param [Integer, Float, nil] max upper bound of the range (pass +nil+ if there is no upper bound)
1108
+ def add(name, min, max)
1109
+ @ranges.append({name: name, min: min, max: max})
1110
+ end
1111
+
1112
+ # @api private
1113
+ def to_json(*args)
1114
+ {field: field, size: size, numeric_ranges: @ranges}.to_json(*args)
1115
+ end
1116
+ end
1117
+
1118
+ class SearchFacetDateRange
1119
+ # @return [String]
1120
+ attr_reader :field
1121
+
1122
+ # @return [Integer]
1123
+ attr_accessor :size
1124
+
1125
+ # @param [String] field name of the field
1126
+ def initialize(field)
1127
+ super()
1128
+ @field = field
1129
+ @ranges = []
1130
+ yield self if block_given?
1131
+ end
1132
+
1133
+ DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z".freeze
1134
+
1135
+ # @param [String] name the name of the range
1136
+ # @param [Time, String, nil] start_time lower bound of the range (pass +nil+ if there is no lower bound)
1137
+ # @param [Time, String, nil] end_time lower bound of the range (pass +nil+ if there is no lower bound)
1138
+ def add(name, start_time, end_time)
1139
+ start_time = start_time.strftime(DATE_FORMAT_RFC3339) if start_time.respond_to?(:strftime)
1140
+ end_time = end_time.strftime(DATE_FORMAT_RFC3339) if end_time.respond_to?(:strftime)
1141
+ @ranges.append({name: name, start: start_time, end: end_time})
1142
+ end
1143
+
1144
+ # @api private
1145
+ def to_json(*args)
1146
+ {field: field, size: size, date_ranges: @ranges}.to_json(*args)
1147
+ end
1148
+ end
1149
+ end
1150
+
1151
+ class SearchOptions
1152
+ # @return [Integer] Timeout in milliseconds
1153
+ attr_accessor :timeout
1154
+
1155
+ # @return [Integer] limits the number of matches returned from the complete result set.
1156
+ attr_accessor :limit
1157
+
1158
+ # @return [Integer] indicates how many matches are skipped on the result set before starting to return the matches
1159
+ attr_accessor :skip
1160
+
1161
+ # @return [Boolean] triggers inclusion of additional search result score explanations. (Default: +false+)
1162
+ attr_accessor :explain
1163
+
1164
+ # @return [:html, :ansi] the style of highlighting in the result excerpts (if not specified, the server default will be used)
1165
+ attr_accessor :highlight_style
1166
+
1167
+ # @return [Array<String>] list of the fields to highlight
1168
+ attr_accessor :highlight_fields
1169
+
1170
+ # @return [Array<String>] list of field values which should be retrieved for result documents, provided they were stored while
1171
+ # indexing
1172
+ attr_accessor :fields
1173
+
1174
+ # @return [:not_bounded] specifies level of consistency for the query
1175
+ attr_reader :scan_consistency
1176
+
1177
+ # @api private
1178
+ # @return [MutationState]
1179
+ attr_reader :mutation_state
1180
+
1181
+ # Customizes the consistency guarantees for this query
1182
+ #
1183
+ # @note overrides consistency level set by {#consistent_with}
1184
+ #
1185
+ # [+:not_bounded+] The engine will return whatever state it has at the time of query
1186
+ #
1187
+ # @param [:not_bounded] level the scan consistency to be used for this query
1188
+ #
1189
+ # @return [void]
1190
+ def scan_consistency=(level)
1191
+ @mutation_state = nil if @mutation_state
1192
+ @scan_consistency = level
1193
+ end
1194
+
1195
+ # Sets the mutation tokens this query should be consistent with
1196
+ #
1197
+ # @note overrides consistency level set by {#scan_consistency=}
1198
+ #
1199
+ # @param [MutationState] mutation_state the mutation state containing the mutation tokens
1200
+ #
1201
+ # @return [void]
1202
+ def consistent_with(mutation_state)
1203
+ @scan_consistency = nil if @scan_consistency
1204
+ @mutation_state = mutation_state
1205
+ end
1206
+
1207
+ # Ordering rules to apply to the results
1208
+ #
1209
+ # The list might contain either strings or special objects, that derive from {SearchSort}.
1210
+ #
1211
+ # In case of String, the value represents the name of the field with optional +-+ in front of the name, which will turn on descending
1212
+ # mode for this field. One field is special is +"_score"+ which will sort results by their score.
1213
+ #
1214
+ # When nothing specified, the Server will order results by their score descending, which is equivalent of +"-_score"+.
1215
+ #
1216
+ # @return [Array<String, SearchSort>] list of ordering object
1217
+ attr_accessor :sort
1218
+
1219
+ # Facets allow to aggregate information collected on a particular result set
1220
+ #
1221
+ # @return [Hash<String => SearchFacet>]
1222
+ attr_accessor :facets
1223
+
1224
+ # @return [JsonTranscoder] transcoder to use for the results
1225
+ attr_accessor :transcoder
1226
+
1227
+ # @yieldparam [SearchOptions] self
1228
+ def initialize
1229
+ super
1230
+ @explain = false
1231
+ @transcoder = JsonTranscoder.new
1232
+ @scan_consistency = nil
1233
+ @mutation_state = nil
1234
+ yield self if block_given?
1235
+ end
1236
+ end
1237
+
1238
+ class SearchRowLocation
1239
+ # @return [String]
1240
+ attr_accessor :field
1241
+
1242
+ # @return [String]
1243
+ attr_accessor :term
1244
+
1245
+ # @return [Integer] the position of the term within the field, starting at 1
1246
+ attr_accessor :position
1247
+
1248
+ # @return [Integer] start byte offset of the term in the field
1249
+ attr_accessor :start_offset
1250
+
1251
+ # @return [Integer] end byte offset of the term in the field
1252
+ attr_accessor :end_offset
1253
+
1254
+ # @return [Array<Integer>] the positions of the term within any elements.
1255
+ attr_accessor :array_positions
1256
+ end
1257
+
1258
+ class SearchRowLocations
1259
+ # Lists all locations (any field, any term)
1260
+ #
1261
+ # @return [Array<SearchRowLocation>]
1262
+ def get_all
1263
+ @locations
1264
+ end
1265
+
1266
+ # Lists all locations for a given field (any term)
1267
+ #
1268
+ # @return [Array<SearchRowLocation>]
1269
+ def get_for_field(name)
1270
+ @locations.select { |location| location.field == name }
1271
+ end
1272
+
1273
+ # Lists all locations for a given field and term
1274
+ #
1275
+ # @return [Array<SearchRowLocation>]
1276
+ def get_for_field_and_term(name, term)
1277
+ @locations.select { |location| location.field == name && location.term == term }
1278
+ end
1279
+
1280
+ # Lists the fields in this location
1281
+ #
1282
+ # @return [Array<String>]
1283
+ def fields
1284
+ @locations.map(&:field).uniq
1285
+ end
1286
+
1287
+ # Lists all terms in this locations, considering all fields
1288
+ #
1289
+ # @return [Array<String>]
1290
+ def terms
1291
+ @locations.map(&:term).uniq
1292
+ end
1293
+
1294
+ # Lists the terms for a given field
1295
+ #
1296
+ # @return [Array<String>]
1297
+ def terms_for_field(name)
1298
+ get_for_field(name).map(&:term).uniq
1299
+ end
1300
+
1301
+ # @param [Array<SearchRowLocation>] locations
1302
+ def initialize(locations)
1303
+ super()
1304
+ @locations = locations
1305
+ end
1306
+ end
1307
+
1308
+ # An individual facet result has both metadata and details, as each facet can define ranges into which results are categorized
1309
+ class SearchFacetResult
1310
+ # @return [String]
1311
+ attr_accessor :name
1312
+
1313
+ # @return [String]
1314
+ attr_accessor :field
1315
+
1316
+ # @return [Integer]
1317
+ attr_accessor :total
1318
+
1319
+ # @return [Integer]
1320
+ attr_accessor :missing
1321
+
1322
+ # @return [Integer]
1323
+ attr_accessor :other
1324
+
1325
+ class TermFacetResult < SearchFacetResult
1326
+ # @return [Array<TermFacet>]
1327
+ attr_accessor :terms
1328
+
1329
+ def type
1330
+ :term_facet
1331
+ end
1332
+
1333
+ # @yieldparam [TermFacetResult] self
1334
+ def initialize
1335
+ super
1336
+ yield self if block_given?
1337
+ end
1338
+
1339
+ class TermFacet
1340
+ # @return [String]
1341
+ attr_reader :term
1342
+
1343
+ # @return [Integer]
1344
+ attr_reader :count
1345
+
1346
+ def initialize(term, count)
1347
+ super()
1348
+ @term = term
1349
+ @count = count
1350
+ end
1351
+ end
1352
+ end
1353
+
1354
+ class DateRangeFacetResult < SearchFacetResult
1355
+ # @return [Array<DateRangeFacet>]
1356
+ attr_accessor :date_ranges
1357
+
1358
+ def type
1359
+ :date_range_facet
1360
+ end
1361
+
1362
+ # @yieldparam [DateRangeFacetResult] self
1363
+ def initialize
1364
+ super
1365
+ yield self if block_given?
1366
+ end
1367
+
1368
+ class DateRangeFacet
1369
+ # @return [String]
1370
+ attr_reader :name
1371
+
1372
+ # @return [Integer]
1373
+ attr_reader :count
1374
+
1375
+ # @return [String]
1376
+ attr_reader :start_time
1377
+
1378
+ # @return [String]
1379
+ attr_reader :end_time
1380
+
1381
+ def initialize(name, count, start_time, end_time)
1382
+ @name = name
1383
+ @count = count
1384
+ @start_time = start_time
1385
+ @end_time = end_time
1386
+ end
1387
+ end
1388
+ end
1389
+
1390
+ class NumericRangeFacetResult < SearchFacetResult
1391
+ # @return [Array<NumericRangeFacet>]
1392
+ attr_accessor :numeric_ranges
1393
+
1394
+ def type
1395
+ :numeric_range_facet
1396
+ end
1397
+
1398
+ # @yieldparam [NumericRangeFacetResult] self
1399
+ def initialize
1400
+ super
1401
+ yield self if block_given?
1402
+ end
1403
+
1404
+ class NumericRangeFacet
1405
+ # @return [String]
1406
+ attr_reader :name
1407
+
1408
+ # @return [Integer]
1409
+ attr_reader :count
1410
+
1411
+ # @return [Integer, Float, nil]
1412
+ attr_reader :min
1413
+
1414
+ # @return [Integer, Float, nil]
1415
+ attr_reader :max
1416
+
1417
+ def initialize(name, count, min, max)
1418
+ @name = name
1419
+ @count = count
1420
+ @min = min
1421
+ @max = max
1422
+ end
1423
+ end
1424
+ end
1425
+ end
1426
+
1427
+ class SearchRow
1428
+ # @return [String] name of the index
1429
+ attr_accessor :index
1430
+
1431
+ # @return [String] document identifier
1432
+ attr_accessor :id
1433
+
1434
+ # @return [Float]
1435
+ attr_accessor :score
1436
+
1437
+ # @return [SearchRowLocations]
1438
+ attr_accessor :locations
1439
+
1440
+ # @return [Hash]
1441
+ attr_accessor :explanation
1442
+
1443
+ # @return [Hash<String => Array<String>>]
1444
+ attr_accessor :fragments
1445
+
1446
+ # @return [JsonTranscoder] transcoder to use for the fields
1447
+ attr_accessor :transcoder
1448
+
1449
+ def fields
1450
+ @transcoder.decode(@fields, :json) if @fields && @transcoder
1451
+ end
1452
+
1453
+ # @yieldparam [SearchRow] self
1454
+ def initialize
1455
+ @fields = nil
1456
+ yield self if block_given?
1457
+ end
1458
+ end
1459
+
1460
+ class SearchMetrics
1461
+ # @return [Integer] time spent executing the query (in milliseconds)
1462
+ attr_accessor :took
1463
+
1464
+ # @return [Integer]
1465
+ attr_accessor :total_rows
1466
+
1467
+ # @return [Float]
1468
+ attr_accessor :max_score
1469
+
1470
+ # @return [Integer]
1471
+ attr_accessor :success_partition_count
1472
+
1473
+ # @return [Integer]
1474
+ attr_accessor :error_partition_count
1475
+
1476
+ # @return [Integer]
1477
+ def total_partition_count
1478
+ success_partition_count + error_partition_count
1479
+ end
1480
+ end
1481
+
1482
+ class SearchMetaData
1483
+ # @return [SearchMetrics]
1484
+ attr_accessor :metrics
1485
+
1486
+ # @return [Hash<String => String>]
1487
+ attr_accessor :errors
1488
+
1489
+ # @yieldparam [SearchMetaData] self
1490
+ def initialize
1491
+ @metrics = SearchMetrics.new
1492
+ yield self if block_given?
1493
+ end
1494
+ end
1495
+
1496
+ class SearchResult
1497
+ # @return [Array<SearchRow>]
1498
+ attr_accessor :rows
1499
+
1500
+ # @return [Hash<String => SearchFacetResult>]
1501
+ attr_accessor :facets
1502
+
1503
+ # @return [SearchMetaData]
1504
+ attr_accessor :meta_data
1505
+
1506
+ # @yieldparam [SearchResult] self
1507
+ def initialize
1508
+ yield self if block_given?
1509
+ end
1510
+ end
1511
+ end
1512
+ end