couchbase 3.0.0.alpha.5-x86_64-linux → 3.5.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1510) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -13
  3. data/ext/extconf.rb +0 -47
  4. data/lib/active_support/cache/couchbase_store.rb +339 -0
  5. data/lib/couchbase/3.0/libcouchbase.so +0 -0
  6. data/lib/couchbase/3.1/libcouchbase.so +0 -0
  7. data/lib/couchbase/3.2/libcouchbase.so +0 -0
  8. data/lib/couchbase/3.3/libcouchbase.so +0 -0
  9. data/lib/couchbase/analytics_options.rb +2 -60
  10. data/lib/couchbase/authenticator.rb +40 -1
  11. data/lib/couchbase/binary_collection.rb +66 -27
  12. data/lib/couchbase/binary_collection_options.rb +1 -75
  13. data/lib/couchbase/bucket.rb +47 -42
  14. data/lib/couchbase/cluster.rb +310 -168
  15. data/lib/couchbase/cluster_registry.rb +49 -0
  16. data/lib/couchbase/collection.rb +482 -108
  17. data/lib/couchbase/collection_options.rb +219 -310
  18. data/lib/couchbase/config_profiles.rb +55 -0
  19. data/lib/couchbase/configuration.rb +56 -0
  20. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  21. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  22. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  23. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  24. data/lib/couchbase/datastructures.rb +24 -0
  25. data/lib/couchbase/diagnostics.rb +181 -0
  26. data/lib/couchbase/errors.rb +218 -66
  27. data/lib/couchbase/json_transcoder.rb +12 -5
  28. data/lib/couchbase/key_value_scan.rb +117 -0
  29. data/lib/couchbase/libcouchbase.rb +6 -0
  30. data/lib/couchbase/logger.rb +85 -0
  31. data/lib/couchbase/management/analytics_index_manager.rb +923 -229
  32. data/lib/couchbase/management/bucket_manager.rb +298 -107
  33. data/lib/couchbase/management/collection_manager.rb +329 -61
  34. data/lib/couchbase/management/collection_query_index_manager.rb +222 -0
  35. data/lib/couchbase/management/query_index_manager.rb +462 -142
  36. data/lib/couchbase/management/scope_search_index_manager.rb +198 -0
  37. data/lib/couchbase/management/search_index_manager.rb +90 -30
  38. data/lib/couchbase/management/user_manager.rb +196 -51
  39. data/lib/couchbase/management/view_index_manager.rb +12 -6
  40. data/lib/couchbase/management.rb +29 -0
  41. data/lib/couchbase/mutation_state.rb +14 -1
  42. data/lib/couchbase/options.rb +2837 -0
  43. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  44. data/lib/couchbase/protostellar/bucket.rb +51 -0
  45. data/lib/couchbase/protostellar/client.rb +99 -0
  46. data/lib/couchbase/protostellar/cluster.rb +163 -0
  47. data/lib/couchbase/protostellar/collection.rb +152 -0
  48. data/lib/couchbase/protostellar/connect_options.rb +63 -0
  49. data/lib/couchbase/protostellar/error_handling.rb +203 -0
  50. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +61 -0
  51. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +35 -0
  52. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +57 -0
  53. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +36 -0
  54. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +61 -0
  55. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +37 -0
  56. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +72 -0
  57. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +44 -0
  58. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +52 -0
  59. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +30 -0
  60. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +70 -0
  61. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +36 -0
  62. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +97 -0
  63. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +46 -0
  64. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +57 -0
  65. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +30 -0
  66. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +52 -0
  67. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +30 -0
  68. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +99 -0
  69. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +30 -0
  70. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +57 -0
  71. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +36 -0
  72. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +51 -0
  73. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +30 -0
  74. data/lib/couchbase/protostellar/generated.rb +9 -0
  75. data/lib/couchbase/protostellar/management/bucket_manager.rb +67 -0
  76. data/lib/couchbase/protostellar/management/collection_manager.rb +94 -0
  77. data/lib/couchbase/protostellar/management/collection_query_index_manager.rb +124 -0
  78. data/lib/couchbase/protostellar/management/query_index_manager.rb +112 -0
  79. data/{Gemfile → lib/couchbase/protostellar/management.rb} +8 -8
  80. data/lib/couchbase/protostellar/request.rb +78 -0
  81. data/lib/couchbase/protostellar/request_behaviour.rb +42 -0
  82. data/lib/couchbase/protostellar/request_generator/admin/bucket.rb +124 -0
  83. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +94 -0
  84. data/lib/couchbase/protostellar/request_generator/admin/query.rb +130 -0
  85. data/lib/couchbase/protostellar/request_generator/admin.rb +24 -0
  86. data/lib/couchbase/protostellar/request_generator/kv.rb +474 -0
  87. data/lib/couchbase/protostellar/request_generator/query.rb +133 -0
  88. data/lib/couchbase/protostellar/request_generator/search.rb +387 -0
  89. data/{bin/setup → lib/couchbase/protostellar/request_generator.rb} +12 -10
  90. data/lib/couchbase/protostellar/response_converter/admin/bucket.rb +55 -0
  91. data/lib/couchbase/protostellar/response_converter/admin/collection.rb +42 -0
  92. data/lib/couchbase/protostellar/response_converter/admin/query.rb +59 -0
  93. data/lib/couchbase/protostellar/response_converter/admin.rb +24 -0
  94. data/lib/couchbase/protostellar/response_converter/kv.rb +151 -0
  95. data/lib/couchbase/protostellar/response_converter/query.rb +84 -0
  96. data/lib/couchbase/protostellar/response_converter/search.rb +136 -0
  97. data/lib/couchbase/protostellar/response_converter.rb +26 -0
  98. data/lib/couchbase/protostellar/retry/action.rb +38 -0
  99. data/lib/couchbase/protostellar/retry/orchestrator.rb +60 -0
  100. data/lib/couchbase/protostellar/retry/reason.rb +67 -0
  101. data/lib/couchbase/protostellar/retry/strategies/best_effort.rb +49 -0
  102. data/lib/couchbase/protostellar/retry/strategies.rb +26 -0
  103. data/lib/couchbase/protostellar/retry.rb +28 -0
  104. data/lib/couchbase/protostellar/scope.rb +57 -0
  105. data/lib/couchbase/protostellar/timeout_defaults.rb +30 -0
  106. data/lib/couchbase/protostellar/timeouts.rb +83 -0
  107. data/lib/couchbase/{common_options.rb → protostellar.rb} +12 -12
  108. data/lib/couchbase/query_options.rb +7 -106
  109. data/lib/couchbase/railtie.rb +45 -0
  110. data/lib/couchbase/raw_binary_transcoder.rb +37 -0
  111. data/lib/couchbase/raw_json_transcoder.rb +38 -0
  112. data/lib/couchbase/raw_string_transcoder.rb +40 -0
  113. data/lib/couchbase/scope.rb +217 -10
  114. data/lib/couchbase/search_options.rb +1306 -1176
  115. data/lib/couchbase/subdoc.rb +33 -30
  116. data/lib/couchbase/transcoder_flags.rb +62 -0
  117. data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
  118. data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
  119. data/lib/couchbase/utils/time.rb +69 -0
  120. data/{bin/console → lib/couchbase/utils.rb} +7 -7
  121. data/lib/couchbase/version.rb +8 -3
  122. data/lib/couchbase/view_options.rb +5 -95
  123. data/lib/couchbase.rb +11 -1
  124. data/lib/rails/generators/couchbase/config/config_generator.rb +27 -0
  125. metadata +114 -1445
  126. data/.github/workflows/tests-6.0.3.yml +0 -52
  127. data/.github/workflows/tests-dev-preview.yml +0 -55
  128. data/.github/workflows/tests.yml +0 -50
  129. data/.gitignore +0 -20
  130. data/.gitmodules +0 -21
  131. data/.idea/.gitignore +0 -5
  132. data/.idea/dictionaries/gem_terms.xml +0 -18
  133. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  134. data/.idea/vcs.xml +0 -13
  135. data/.yardopts +0 -1
  136. data/Rakefile +0 -51
  137. data/bin/check-cluster +0 -31
  138. data/bin/fetch-stats +0 -19
  139. data/bin/init-cluster +0 -82
  140. data/bin/jenkins/build-extension +0 -35
  141. data/bin/jenkins/install-dependencies +0 -47
  142. data/bin/jenkins/test-with-cbdyncluster +0 -58
  143. data/couchbase.gemspec +0 -73
  144. data/examples/analytics.rb +0 -221
  145. data/examples/crud.rb +0 -20
  146. data/examples/managing_analytics_indexes.rb +0 -72
  147. data/examples/managing_buckets.rb +0 -47
  148. data/examples/managing_collections.rb +0 -58
  149. data/examples/managing_query_indexes.rb +0 -63
  150. data/examples/managing_search_indexes.rb +0 -62
  151. data/examples/managing_view_indexes.rb +0 -54
  152. data/examples/query.rb +0 -18
  153. data/examples/query_with_consistency.rb +0 -76
  154. data/examples/search.rb +0 -187
  155. data/examples/search_with_consistency.rb +0 -84
  156. data/examples/subdocument.rb +0 -51
  157. data/examples/view.rb +0 -50
  158. data/ext/.clang-format +0 -15
  159. data/ext/.clang-tidy +0 -22
  160. data/ext/.cmake-format.yaml +0 -8
  161. data/ext/.gitignore +0 -2
  162. data/ext/.idea/.name +0 -1
  163. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  164. data/ext/.idea/ext.iml +0 -2
  165. data/ext/.idea/misc.xml +0 -4
  166. data/ext/.idea/modules.xml +0 -8
  167. data/ext/.idea/vcs.xml +0 -12
  168. data/ext/CMakeLists.txt +0 -163
  169. data/ext/LICENSE.txt +0 -202
  170. data/ext/build_version.hxx.in +0 -26
  171. data/ext/couchbase/bucket.hxx +0 -95
  172. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  173. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  174. data/ext/couchbase/cbsasl/client.cc +0 -48
  175. data/ext/couchbase/cbsasl/client.h +0 -127
  176. data/ext/couchbase/cbsasl/context.cc +0 -33
  177. data/ext/couchbase/cbsasl/context.h +0 -52
  178. data/ext/couchbase/cbsasl/error.h +0 -72
  179. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  180. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  181. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  182. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  183. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  184. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  185. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  186. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +0 -48
  187. data/ext/couchbase/cluster.hxx +0 -176
  188. data/ext/couchbase/collections_manifest.hxx +0 -88
  189. data/ext/couchbase/configuration.hxx +0 -256
  190. data/ext/couchbase/configuration_monitor.hxx +0 -93
  191. data/ext/couchbase/couchbase.cxx +0 -5449
  192. data/ext/couchbase/document_id.hxx +0 -38
  193. data/ext/couchbase/error_map.hxx +0 -61
  194. data/ext/couchbase/errors.hxx +0 -691
  195. data/ext/couchbase/io/dns_client.hxx +0 -215
  196. data/ext/couchbase/io/dns_codec.hxx +0 -207
  197. data/ext/couchbase/io/dns_config.hxx +0 -116
  198. data/ext/couchbase/io/dns_message.hxx +0 -555
  199. data/ext/couchbase/io/http_message.hxx +0 -38
  200. data/ext/couchbase/io/http_parser.hxx +0 -174
  201. data/ext/couchbase/io/http_session.hxx +0 -321
  202. data/ext/couchbase/io/http_session_manager.hxx +0 -127
  203. data/ext/couchbase/io/mcbp_message.hxx +0 -58
  204. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  205. data/ext/couchbase/io/mcbp_session.hxx +0 -931
  206. data/ext/couchbase/mutation_token.hxx +0 -38
  207. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -117
  208. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -103
  209. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -107
  210. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -104
  211. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -104
  212. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -91
  213. data/ext/couchbase/operations/analytics_index_create.hxx +0 -128
  214. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -110
  215. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -106
  216. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -102
  217. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -101
  218. data/ext/couchbase/operations/bucket_create.hxx +0 -139
  219. data/ext/couchbase/operations/bucket_drop.hxx +0 -66
  220. data/ext/couchbase/operations/bucket_flush.hxx +0 -66
  221. data/ext/couchbase/operations/bucket_get.hxx +0 -70
  222. data/ext/couchbase/operations/bucket_get_all.hxx +0 -63
  223. data/ext/couchbase/operations/bucket_settings.hxx +0 -111
  224. data/ext/couchbase/operations/bucket_update.hxx +0 -116
  225. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -61
  226. data/ext/couchbase/operations/collection_create.hxx +0 -91
  227. data/ext/couchbase/operations/collection_drop.hxx +0 -83
  228. data/ext/couchbase/operations/command.hxx +0 -163
  229. data/ext/couchbase/operations/design_document.hxx +0 -59
  230. data/ext/couchbase/operations/document_analytics.hxx +0 -292
  231. data/ext/couchbase/operations/document_decrement.hxx +0 -82
  232. data/ext/couchbase/operations/document_exists.hxx +0 -82
  233. data/ext/couchbase/operations/document_get.hxx +0 -64
  234. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -66
  235. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -66
  236. data/ext/couchbase/operations/document_get_projected.hxx +0 -244
  237. data/ext/couchbase/operations/document_increment.hxx +0 -84
  238. data/ext/couchbase/operations/document_insert.hxx +0 -76
  239. data/ext/couchbase/operations/document_lookup_in.hxx +0 -106
  240. data/ext/couchbase/operations/document_mutate_in.hxx +0 -139
  241. data/ext/couchbase/operations/document_query.hxx +0 -335
  242. data/ext/couchbase/operations/document_remove.hxx +0 -69
  243. data/ext/couchbase/operations/document_replace.hxx +0 -78
  244. data/ext/couchbase/operations/document_search.hxx +0 -356
  245. data/ext/couchbase/operations/document_touch.hxx +0 -62
  246. data/ext/couchbase/operations/document_unlock.hxx +0 -62
  247. data/ext/couchbase/operations/document_upsert.hxx +0 -76
  248. data/ext/couchbase/operations/document_view.hxx +0 -228
  249. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -86
  250. data/ext/couchbase/operations/query_index_create.hxx +0 -135
  251. data/ext/couchbase/operations/query_index_drop.hxx +0 -109
  252. data/ext/couchbase/operations/query_index_get_all.hxx +0 -107
  253. data/ext/couchbase/operations/scope_create.hxx +0 -82
  254. data/ext/couchbase/operations/scope_drop.hxx +0 -80
  255. data/ext/couchbase/operations/scope_get_all.hxx +0 -74
  256. data/ext/couchbase/operations/search_index.hxx +0 -79
  257. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -92
  258. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -80
  259. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -80
  260. data/ext/couchbase/operations/search_index_control_query.hxx +0 -80
  261. data/ext/couchbase/operations/search_index_drop.hxx +0 -77
  262. data/ext/couchbase/operations/search_index_get.hxx +0 -80
  263. data/ext/couchbase/operations/search_index_get_all.hxx +0 -82
  264. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -81
  265. data/ext/couchbase/operations/search_index_upsert.hxx +0 -106
  266. data/ext/couchbase/operations/view_index_drop.hxx +0 -67
  267. data/ext/couchbase/operations/view_index_get.hxx +0 -90
  268. data/ext/couchbase/operations/view_index_get_all.hxx +0 -125
  269. data/ext/couchbase/operations/view_index_upsert.hxx +0 -87
  270. data/ext/couchbase/operations.hxx +0 -91
  271. data/ext/couchbase/platform/base64.cc +0 -234
  272. data/ext/couchbase/platform/base64.h +0 -47
  273. data/ext/couchbase/platform/random.cc +0 -119
  274. data/ext/couchbase/platform/random.h +0 -39
  275. data/ext/couchbase/platform/string_hex.cc +0 -99
  276. data/ext/couchbase/platform/string_hex.h +0 -50
  277. data/ext/couchbase/platform/uuid.cc +0 -96
  278. data/ext/couchbase/platform/uuid.h +0 -56
  279. data/ext/couchbase/protocol/client_opcode.hxx +0 -264
  280. data/ext/couchbase/protocol/client_request.hxx +0 -160
  281. data/ext/couchbase/protocol/client_response.hxx +0 -218
  282. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -81
  283. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  284. data/ext/couchbase/protocol/cmd_exists.hxx +0 -171
  285. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  286. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  287. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  288. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -124
  289. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  290. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  291. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  292. data/ext/couchbase/protocol/cmd_hello.hxx +0 -156
  293. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  294. data/ext/couchbase/protocol/cmd_info.hxx +0 -36
  295. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  296. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -219
  297. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -365
  298. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  299. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  300. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  301. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  302. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  303. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  304. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  305. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  306. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  307. data/ext/couchbase/protocol/datatype.hxx +0 -48
  308. data/ext/couchbase/protocol/durability_level.hxx +0 -67
  309. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  310. data/ext/couchbase/protocol/hello_feature.hxx +0 -255
  311. data/ext/couchbase/protocol/magic.hxx +0 -83
  312. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  313. data/ext/couchbase/protocol/server_request.hxx +0 -122
  314. data/ext/couchbase/protocol/status.hxx +0 -333
  315. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  316. data/ext/couchbase/service_type.hxx +0 -60
  317. data/ext/couchbase/timeout_defaults.hxx +0 -34
  318. data/ext/couchbase/utils/byteswap.hxx +0 -33
  319. data/ext/couchbase/utils/connection_string.hxx +0 -231
  320. data/ext/couchbase/utils/crc32.hxx +0 -48
  321. data/ext/couchbase/utils/url_codec.hxx +0 -225
  322. data/ext/couchbase/version.hxx +0 -24
  323. data/ext/test/main.cxx +0 -58
  324. data/ext/third_party/asio/.appveyor.yml +0 -107
  325. data/ext/third_party/asio/.cirrus.yml +0 -16
  326. data/ext/third_party/asio/.gitignore +0 -3
  327. data/ext/third_party/asio/.travis.yml +0 -323
  328. data/ext/third_party/asio/asio/.gitignore +0 -23
  329. data/ext/third_party/asio/asio/COPYING +0 -4
  330. data/ext/third_party/asio/asio/INSTALL +0 -5
  331. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  332. data/ext/third_party/asio/asio/Makefile.am +0 -19
  333. data/ext/third_party/asio/asio/README +0 -4
  334. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  335. data/ext/third_party/asio/asio/autogen.sh +0 -55
  336. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  337. data/ext/third_party/asio/asio/boostify.pl +0 -603
  338. data/ext/third_party/asio/asio/configure.ac +0 -182
  339. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  340. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  341. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -131
  342. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -149
  343. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -589
  344. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -123
  345. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1210
  346. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  347. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  348. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1202
  349. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -756
  350. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  351. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  352. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  353. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2495
  354. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  355. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  356. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1049
  357. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  358. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  359. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -763
  360. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -580
  361. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2494
  362. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  363. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  364. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  365. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  366. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  367. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  368. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  369. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -100
  370. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  371. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  372. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  373. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  374. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  375. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -127
  376. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -62
  377. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  378. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  379. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  380. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -45
  381. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  382. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -816
  383. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  384. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -544
  385. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  386. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  387. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  388. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  389. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -83
  390. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  391. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -112
  392. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  393. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1499
  394. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  395. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  396. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  397. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  398. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -280
  399. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  400. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -121
  401. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -130
  402. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -130
  403. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  404. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  405. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  406. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  407. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -104
  408. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  409. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  410. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  411. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  412. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  413. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  414. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  415. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  416. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  417. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  418. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -242
  419. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  420. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -57
  421. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -238
  422. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  423. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -113
  424. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  425. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  426. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -474
  427. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  428. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  429. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  430. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  431. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  432. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -358
  433. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  434. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  435. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  436. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  437. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  438. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  439. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  440. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  441. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  442. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -152
  443. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  444. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  445. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -617
  446. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  447. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  448. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  449. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  450. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -667
  451. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3575
  452. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  453. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -179
  454. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  455. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -118
  456. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -177
  457. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  458. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  459. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  460. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  461. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  462. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  463. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -594
  464. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  465. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  466. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  467. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  468. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  469. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  470. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  471. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  472. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  473. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  474. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  475. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  476. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  477. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -193
  478. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  479. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  480. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  481. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  482. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +0 -26
  483. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  484. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  485. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -70
  486. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  487. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  488. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  489. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -100
  490. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  491. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  492. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  493. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  494. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  495. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  496. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  497. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  498. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  499. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  500. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  501. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  502. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  503. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  504. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  505. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -162
  506. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  507. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  508. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  509. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  510. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  511. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  512. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  513. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  514. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -391
  515. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -92
  516. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -238
  517. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -230
  518. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -116
  519. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -137
  520. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -142
  521. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -135
  522. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -136
  523. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -134
  524. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -505
  525. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -518
  526. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -92
  527. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  528. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  529. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -65
  530. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  531. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  532. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  533. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -138
  534. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  535. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -148
  536. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  537. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  538. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -224
  539. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  540. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  541. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  542. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  543. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  544. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  545. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  546. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  547. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -88
  548. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  549. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  550. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  551. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  552. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -337
  553. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  554. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  555. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  556. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  557. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  558. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -176
  559. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  560. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  561. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  562. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  563. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  564. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -142
  565. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -142
  566. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  567. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  568. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  569. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  570. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -125
  571. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  572. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  573. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  574. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  575. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  576. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  577. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  578. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  579. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  580. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -89
  581. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -151
  582. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -87
  583. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  584. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -151
  585. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  586. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  587. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  588. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -113
  589. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  590. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -106
  591. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -338
  592. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -123
  593. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  594. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -92
  595. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -159
  596. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  597. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -308
  598. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -130
  599. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -120
  600. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -129
  601. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -121
  602. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -114
  603. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  604. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  605. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  606. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -123
  607. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  608. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  609. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  610. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  611. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  612. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  613. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  614. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  615. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  616. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -121
  617. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  618. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -94
  619. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -115
  620. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -106
  621. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  622. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  623. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  624. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  625. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  626. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -73
  627. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -291
  628. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -118
  629. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  630. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  631. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  632. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -341
  633. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -170
  634. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  635. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  636. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  637. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  638. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  639. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  640. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  641. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -81
  642. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  643. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -85
  644. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  645. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -422
  646. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -491
  647. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -471
  648. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -160
  649. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -533
  650. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -872
  651. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -113
  652. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  653. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -113
  654. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  655. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  656. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  657. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  658. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -387
  659. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -38
  660. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -52
  661. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -353
  662. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  663. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -113
  664. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1135
  665. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -699
  666. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3150
  667. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -372
  668. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  669. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  670. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -490
  671. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  672. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -82
  673. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  674. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -80
  675. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -85
  676. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -127
  677. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -87
  678. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -276
  679. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -887
  680. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1043
  681. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -624
  682. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -872
  683. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -374
  684. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  685. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  686. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  687. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  688. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  689. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  690. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  691. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  692. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  693. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  694. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  695. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  696. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  697. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  698. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  699. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  700. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  701. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  702. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  703. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  704. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  705. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  706. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  707. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  708. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  709. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  710. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  711. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  712. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  713. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  714. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  715. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  716. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  717. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  718. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  719. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  720. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  721. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  722. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  723. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  724. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  725. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  726. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  727. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  728. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  729. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  730. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  731. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  732. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  733. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  734. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  735. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  736. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  737. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  738. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  739. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  740. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  741. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  742. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -123
  743. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  744. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  745. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  746. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  747. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  748. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  749. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  750. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  751. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -336
  752. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  753. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  754. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -114
  755. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -160
  756. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -62
  757. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -336
  758. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  759. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -381
  760. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  761. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  762. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  763. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -67
  764. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -64
  765. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -135
  766. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  767. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -67
  768. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  769. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  770. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  771. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  772. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  773. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  774. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  775. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  776. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  777. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -885
  778. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  779. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  780. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  781. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  782. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  783. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -314
  784. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  785. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -81
  786. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  787. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -129
  788. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  789. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  790. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  791. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -235
  792. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  793. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  794. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -34
  795. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  796. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  797. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  798. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -203
  799. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  800. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  801. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  802. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -110
  803. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  804. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  805. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  806. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  807. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  808. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  809. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  810. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  811. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  812. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  813. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -143
  814. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  815. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  816. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  817. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  818. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  819. data/ext/third_party/asio/asio/include/asio.hpp +0 -147
  820. data/ext/third_party/asio/asio/release.pl +0 -440
  821. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  822. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  823. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  824. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  825. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  826. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  827. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  828. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  829. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  830. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  831. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  832. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  833. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  834. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  835. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  836. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  837. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  838. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  839. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  840. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  841. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  842. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  845. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  846. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  847. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  848. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  849. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  850. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  851. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  852. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  853. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  854. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  855. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  856. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  857. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  858. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  859. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  860. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  861. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  862. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  863. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  864. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  865. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  866. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  867. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  868. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  869. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  870. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  871. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  872. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  873. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  874. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  875. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  876. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  877. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  878. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  879. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  880. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  881. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  882. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  883. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  884. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  886. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  887. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  888. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  889. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  890. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  891. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  892. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  893. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  894. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  895. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  896. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  897. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  898. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  899. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  900. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  901. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  902. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  903. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  904. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  905. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  906. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  907. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  908. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  909. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  910. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  911. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  912. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  913. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  914. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  915. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  916. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  917. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  918. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  919. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  920. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  921. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  922. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  924. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  925. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  926. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  927. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  928. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  929. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  930. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  931. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  932. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  933. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  934. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  935. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  936. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  937. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  938. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  939. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  940. data/ext/third_party/asio/asio/tsify.pl +0 -574
  941. data/ext/third_party/gsl/.clang-format +0 -34
  942. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  943. data/ext/third_party/gsl/.gitignore +0 -16
  944. data/ext/third_party/gsl/.travis.yml +0 -551
  945. data/ext/third_party/gsl/CMakeLists.txt +0 -119
  946. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  947. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  948. data/ext/third_party/gsl/GSL.natvis +0 -98
  949. data/ext/third_party/gsl/LICENSE +0 -21
  950. data/ext/third_party/gsl/README.md +0 -124
  951. data/ext/third_party/gsl/ThirdPartyNotices.txt +0 -41
  952. data/ext/third_party/gsl/appveyor.yml +0 -128
  953. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  954. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  955. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  956. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  957. data/ext/third_party/gsl/include/gsl/gsl_util +0 -171
  958. data/ext/third_party/gsl/include/gsl/multi_span +0 -2273
  959. data/ext/third_party/gsl/include/gsl/pointers +0 -301
  960. data/ext/third_party/gsl/include/gsl/span +0 -764
  961. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  962. data/ext/third_party/gsl/include/gsl/string_span +0 -716
  963. data/ext/third_party/http_parser/.gitignore +0 -30
  964. data/ext/third_party/http_parser/.mailmap +0 -8
  965. data/ext/third_party/http_parser/.travis.yml +0 -13
  966. data/ext/third_party/http_parser/AUTHORS +0 -68
  967. data/ext/third_party/http_parser/LICENSE-MIT +0 -19
  968. data/ext/third_party/http_parser/Makefile +0 -160
  969. data/ext/third_party/http_parser/README.md +0 -246
  970. data/ext/third_party/http_parser/bench.c +0 -128
  971. data/ext/third_party/http_parser/http_parser.c +0 -2568
  972. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  973. data/ext/third_party/http_parser/http_parser.h +0 -447
  974. data/ext/third_party/http_parser/test.c +0 -4600
  975. data/ext/third_party/json/.appveyor.yml +0 -44
  976. data/ext/third_party/json/.clang-format +0 -84
  977. data/ext/third_party/json/.conan/build.py +0 -80
  978. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  979. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  980. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  981. data/ext/third_party/json/.gitignore +0 -3
  982. data/ext/third_party/json/.travis.yml +0 -173
  983. data/ext/third_party/json/CMakeLists.txt +0 -44
  984. data/ext/third_party/json/LICENSE +0 -21
  985. data/ext/third_party/json/LICENSE.double-conversion +0 -32
  986. data/ext/third_party/json/LICENSE.itoa +0 -19
  987. data/ext/third_party/json/LICENSE.ryu +0 -201
  988. data/ext/third_party/json/Makefile +0 -77
  989. data/ext/third_party/json/README.md +0 -149
  990. data/ext/third_party/json/conanfile.py +0 -28
  991. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -941
  992. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  993. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  994. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  995. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  996. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -250
  997. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  998. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  999. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  1000. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -103
  1001. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  1002. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -267
  1003. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  1004. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  1005. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  1006. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -127
  1007. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  1008. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  1009. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  1010. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  1011. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  1012. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  1013. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  1014. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  1015. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  1016. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  1017. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  1018. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -417
  1019. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  1020. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  1021. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  1022. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  1023. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -18
  1024. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  1025. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  1026. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  1027. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  1028. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  1029. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  1030. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  1031. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  1032. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -69
  1033. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  1034. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  1035. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  1036. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  1037. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  1038. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  1039. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  1040. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  1041. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +0 -59
  1042. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  1043. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -115
  1044. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1851
  1045. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  1046. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -90
  1047. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  1048. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  1049. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -89
  1050. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  1051. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  1052. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  1053. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  1054. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  1055. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  1056. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  1057. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  1058. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  1059. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -265
  1060. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  1061. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  1062. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  1063. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  1064. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  1065. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  1066. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  1067. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  1068. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  1069. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  1070. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  1071. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  1072. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  1073. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  1074. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  1075. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  1076. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  1077. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  1078. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  1079. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  1080. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  1081. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  1082. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  1083. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  1084. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  1085. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  1086. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  1087. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  1088. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  1089. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  1090. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  1091. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  1092. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -170
  1093. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  1094. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  1095. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  1096. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  1097. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  1098. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  1099. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  1100. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  1101. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  1102. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  1103. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  1104. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  1105. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  1106. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -51
  1107. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -67
  1108. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  1109. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  1110. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  1111. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  1112. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  1113. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  1114. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  1115. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  1116. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  1117. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  1118. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  1119. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -253
  1120. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -68
  1121. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -200
  1122. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -200
  1123. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -105
  1124. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -55
  1125. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -446
  1126. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  1127. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  1128. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -561
  1129. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -104
  1130. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -225
  1131. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -86
  1132. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -62
  1133. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -44
  1134. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  1135. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  1136. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  1137. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  1138. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -33
  1139. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  1140. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  1141. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  1142. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  1143. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  1144. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  1145. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  1146. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  1147. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -44
  1148. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -107
  1149. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  1150. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  1151. data/ext/third_party/json/include/tao/json/external/pegtl/internal/always_false.hpp +0 -21
  1152. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  1153. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  1154. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -50
  1155. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  1156. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  1157. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -53
  1158. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -31
  1159. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  1160. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  1161. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  1162. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -36
  1163. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -44
  1164. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  1165. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  1166. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  1167. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  1168. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  1169. data/ext/third_party/json/include/tao/json/external/pegtl/internal/demangle.hpp +0 -140
  1170. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -44
  1171. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -33
  1172. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  1173. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  1174. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -44
  1175. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian.hpp +0 -62
  1176. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_gcc.hpp +0 -206
  1177. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_win.hpp +0 -106
  1178. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -31
  1179. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -31
  1180. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -32
  1181. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -83
  1182. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -219
  1183. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  1184. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -114
  1185. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -25
  1186. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -25
  1187. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -56
  1188. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  1189. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -53
  1190. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -48
  1191. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -19
  1192. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  1193. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  1194. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -40
  1195. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  1196. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -52
  1197. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  1198. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  1199. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  1200. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  1201. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -20
  1202. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  1203. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -82
  1204. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -25
  1205. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -23
  1206. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -72
  1207. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -53
  1208. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -44
  1209. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  1210. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  1211. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  1212. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  1213. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint.hpp +0 -54
  1214. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint8.hpp +0 -34
  1215. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint.hpp +0 -45
  1216. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint8.hpp +0 -33
  1217. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf16.hpp +0 -54
  1218. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf32.hpp +0 -43
  1219. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -90
  1220. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  1221. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -53
  1222. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -53
  1223. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -51
  1224. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -93
  1225. data/ext/third_party/json/include/tao/json/external/pegtl/internal/read_uint.hpp +0 -77
  1226. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -69
  1227. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -66
  1228. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  1229. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -79
  1230. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -46
  1231. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  1232. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  1233. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  1234. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -73
  1235. data/ext/third_party/json/include/tao/json/external/pegtl/internal/skip_control.hpp +0 -25
  1236. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -60
  1237. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -47
  1238. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  1239. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -49
  1240. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  1241. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  1242. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  1243. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -84
  1244. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -33
  1245. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -73
  1246. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -381
  1247. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  1248. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  1249. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -20
  1250. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -53
  1251. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -69
  1252. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -75
  1253. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -74
  1254. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  1255. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  1256. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  1257. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -67
  1258. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -66
  1259. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  1260. data/ext/third_party/json/include/tao/json/external/pegtl/uint16.hpp +0 -62
  1261. data/ext/third_party/json/include/tao/json/external/pegtl/uint32.hpp +0 -62
  1262. data/ext/third_party/json/include/tao/json/external/pegtl/uint64.hpp +0 -63
  1263. data/ext/third_party/json/include/tao/json/external/pegtl/uint8.hpp +0 -36
  1264. data/ext/third_party/json/include/tao/json/external/pegtl/utf16.hpp +0 -49
  1265. data/ext/third_party/json/include/tao/json/external/pegtl/utf32.hpp +0 -49
  1266. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  1267. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  1268. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -53
  1269. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  1270. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  1271. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  1272. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  1273. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  1274. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  1275. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  1276. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  1277. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  1278. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  1279. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  1280. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  1281. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  1282. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  1283. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -59
  1284. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  1285. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  1286. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  1287. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  1288. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  1289. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  1290. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  1291. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  1292. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  1293. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  1294. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -113
  1295. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  1296. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  1297. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  1298. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  1299. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  1300. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  1301. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  1302. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  1303. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  1304. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  1305. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  1306. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  1307. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  1308. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  1309. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  1310. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  1311. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  1312. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  1313. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  1314. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -256
  1315. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  1316. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  1317. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -263
  1318. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  1319. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  1320. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  1321. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  1322. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  1323. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  1324. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  1325. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  1326. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  1327. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  1328. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  1329. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  1330. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  1331. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  1332. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  1333. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -249
  1334. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  1335. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  1336. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  1337. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -18
  1338. data/ext/third_party/json/include/tao/json/operators.hpp +0 -494
  1339. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -306
  1340. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  1341. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  1342. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -143
  1343. data/ext/third_party/json/include/tao/json/span.hpp +0 -568
  1344. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  1345. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  1346. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  1347. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  1348. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  1349. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  1350. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  1351. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  1352. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  1353. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  1354. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  1355. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  1356. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  1357. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  1358. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  1359. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -413
  1360. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  1361. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  1362. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  1363. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  1364. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -18
  1365. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  1366. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  1367. data/ext/third_party/json/include/tao/json.hpp +0 -45
  1368. data/ext/third_party/snappy/.appveyor.yml +0 -36
  1369. data/ext/third_party/snappy/.gitignore +0 -8
  1370. data/ext/third_party/snappy/.travis.yml +0 -98
  1371. data/ext/third_party/snappy/AUTHORS +0 -1
  1372. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  1373. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  1374. data/ext/third_party/snappy/COPYING +0 -54
  1375. data/ext/third_party/snappy/NEWS +0 -188
  1376. data/ext/third_party/snappy/README.md +0 -148
  1377. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +0 -33
  1378. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  1379. data/ext/third_party/snappy/docs/README.md +0 -72
  1380. data/ext/third_party/snappy/format_description.txt +0 -110
  1381. data/ext/third_party/snappy/framing_format.txt +0 -135
  1382. data/ext/third_party/snappy/snappy-c.cc +0 -90
  1383. data/ext/third_party/snappy/snappy-c.h +0 -138
  1384. data/ext/third_party/snappy/snappy-internal.h +0 -315
  1385. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  1386. data/ext/third_party/snappy/snappy-sinksource.h +0 -182
  1387. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  1388. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  1389. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  1390. data/ext/third_party/snappy/snappy-test.cc +0 -613
  1391. data/ext/third_party/snappy/snappy-test.h +0 -526
  1392. data/ext/third_party/snappy/snappy.cc +0 -1770
  1393. data/ext/third_party/snappy/snappy.h +0 -209
  1394. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  1395. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  1396. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  1397. data/ext/third_party/spdlog/.clang-format +0 -108
  1398. data/ext/third_party/spdlog/.clang-tidy +0 -54
  1399. data/ext/third_party/spdlog/.gitattributes +0 -1
  1400. data/ext/third_party/spdlog/.gitignore +0 -83
  1401. data/ext/third_party/spdlog/.travis.yml +0 -112
  1402. data/ext/third_party/spdlog/CMakeLists.txt +0 -324
  1403. data/ext/third_party/spdlog/INSTALL +0 -24
  1404. data/ext/third_party/spdlog/LICENSE +0 -26
  1405. data/ext/third_party/spdlog/README.md +0 -423
  1406. data/ext/third_party/spdlog/appveyor.yml +0 -51
  1407. data/ext/third_party/spdlog/cmake/ide.cmake +0 -18
  1408. data/ext/third_party/spdlog/cmake/pch.h.in +0 -258
  1409. data/ext/third_party/spdlog/cmake/spdlog.pc.in +0 -13
  1410. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  1411. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  1412. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  1413. data/ext/third_party/spdlog/cmake/version.rc.in +0 -42
  1414. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  1415. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  1416. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  1417. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +0 -45
  1418. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +0 -36
  1419. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -103
  1420. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -28
  1421. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
  1422. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  1423. data/ext/third_party/spdlog/include/spdlog/common.h +0 -246
  1424. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  1425. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  1426. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +0 -141
  1427. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +0 -32
  1428. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  1429. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  1430. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -108
  1431. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  1432. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  1433. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  1434. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  1435. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  1436. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +0 -49
  1437. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  1438. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  1439. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  1440. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  1441. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -299
  1442. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -112
  1443. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  1444. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  1445. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -145
  1446. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  1447. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  1448. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  1449. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  1450. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +0 -27
  1451. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1119
  1452. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -568
  1453. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -595
  1454. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1789
  1455. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1403
  1456. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3648
  1457. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  1458. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -143
  1459. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  1460. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -721
  1461. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -387
  1462. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -25
  1463. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  1464. data/ext/third_party/spdlog/include/spdlog/formatter.h +0 -18
  1465. data/ext/third_party/spdlog/include/spdlog/fwd.h +0 -14
  1466. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -253
  1467. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -392
  1468. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1358
  1469. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  1470. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  1471. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  1472. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  1473. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  1474. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  1475. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  1476. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  1477. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  1478. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +0 -97
  1479. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  1480. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  1481. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +0 -44
  1482. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +0 -50
  1483. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -72
  1484. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  1485. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  1486. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  1487. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  1488. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  1489. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  1490. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -94
  1491. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -80
  1492. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +0 -109
  1493. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  1494. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  1495. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  1496. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -180
  1497. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  1498. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -115
  1499. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -340
  1500. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  1501. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  1502. data/ext/third_party/spdlog/src/async.cpp +0 -13
  1503. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  1504. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  1505. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  1506. data/ext/third_party/spdlog/src/fmt.cpp +0 -189
  1507. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  1508. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
  1509. data/lib/couchbase/libcouchbase.so +0 -0
  1510. data/rbi/couchbase.rbi +0 -79
@@ -1,4 +1,4 @@
1
- # Copyright 2020 Couchbase, Inc.
1
+ # Copyright 2020-2021 Couchbase, Inc.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -13,1480 +13,1610 @@
13
13
  # limitations under the License.
14
14
 
15
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)
16
+ class SearchRequest
17
+ # Creates a search request, used to perform operations against the Full Text Search (FTS) Couchbase service.
18
+ #
19
+ # @overload new(search_query)
20
+ # Will run an FTS +SearchQuery+
21
+ # @param [SearchQuery] search_query
22
+ #
23
+ # @overload new(vector_search)
24
+ # Will run a +VectorSearch+
25
+ # @param [VectorSearch] vector_search
26
+ #
27
+ # @!macro uncommitted
28
+ def initialize(search)
29
+ case search
30
+ when SearchQuery
31
+ @search_query = search
32
+ when VectorSearch
33
+ @vector_search = search
34
+ else
35
+ raise Error::InvalidArgument, "Search type must be either SearchQuery or VectorSearch, #{search.class} given"
26
36
  end
37
+ end
27
38
 
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
39
+ # Can be used to run a +SearchQuery+ together with an existing +VectorSearch+
40
+ # Note that a maximum of one +SearchQuery+ can be provided.
41
+ #
42
+ # @param [SearchQuery] query
43
+ #
44
+ # @return [SearchRequest] for chaining purposes
45
+ def search_query(query)
46
+ raise Error::InvalidArgument, "A SearchQuery has already been specified" unless @search_query.nil?
47
+
48
+ @search_query = query
49
+ self
50
+ end
32
51
 
33
- # @return [String]
34
- attr_accessor :field
52
+ # Can be used to run a +VectorSearch+ together with an existing +SearchQuery+
53
+ # Note that a maximum of one +VectorSearch+ can be provided.
54
+ #
55
+ # @param [VectorSearch] query
56
+ #
57
+ # @return [SearchRequest] for chaining purposes
58
+ #
59
+ # @!macro uncommitted
60
+ def vector_search(query)
61
+ raise Error::InvalidArgument, "A VectorSearch has already been specified" unless @vector_search.nil?
62
+
63
+ @vector_search = query
64
+ self
65
+ end
35
66
 
36
- # @return [String]
37
- attr_accessor :analyzer
67
+ # @api private
68
+ def to_backend
69
+ [
70
+ (@search_query || SearchQuery.match_none).to_json,
71
+ {
72
+ vector_search: @vector_search&.to_backend,
73
+ },
74
+ ]
75
+ end
76
+ end
38
77
 
39
- # @return [Integer]
40
- attr_accessor :prefix_length
78
+ class SearchQuery
79
+ # @return [Hash<Symbol, #to_json>]
80
+ def to_h
81
+ {}
82
+ end
41
83
 
42
- # @return [Integer]
43
- attr_accessor :fuzziness
84
+ # @return [String]
85
+ def to_json(*args)
86
+ to_h.to_json(*args)
87
+ end
44
88
 
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
89
+ # Prepare {MatchQuery} body
90
+ #
91
+ # @param [String] match
92
+ # @yieldparam [MatchQuery] query
93
+ #
94
+ # @return [MatchQuery]
95
+ def self.match(match, &block)
96
+ MatchQuery.new(match, &block)
97
+ end
52
98
 
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
99
+ # A match query analyzes the input text and uses that analyzed text to query the index.
100
+ class MatchQuery < SearchQuery
101
+ # @return [Float]
102
+ attr_accessor :boost
66
103
 
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
104
+ # @return [String]
105
+ attr_accessor :field
76
106
 
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
107
+ # @return [String]
108
+ attr_accessor :analyzer
81
109
 
82
- # @return [String]
83
- attr_accessor :field
110
+ # @return [Integer]
111
+ attr_accessor :prefix_length
84
112
 
85
- # @return [String]
86
- attr_accessor :analyzer
113
+ # @return [Integer]
114
+ attr_accessor :fuzziness
87
115
 
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
116
+ # @return [nil, :or, :and]
117
+ attr_accessor :operator
96
118
 
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
119
+ # @param [String] match
120
+ # @yieldparam [MatchQuery] self
121
+ def initialize(match)
122
+ super()
123
+ @match = match
124
+ yield self if block_given?
105
125
  end
106
126
 
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)
127
+ # @return [Hash<Symbol, #to_json>]
128
+ def to_h
129
+ data = {:match => @match}
130
+ data[:boost] = boost if boost
131
+ data[:field] = field if field
132
+ data[:analyzer] = analyzer if analyzer
133
+ data[:operator] = operator if operator
134
+ data[:fuzziness] = fuzziness if fuzziness
135
+ data[:prefix_length] = prefix_length if prefix_length
136
+ data
115
137
  end
138
+ end
116
139
 
117
- # Finds documents containing terms that match the specified regular expression.
118
- class RegexpQuery < SearchQuery
119
- # @return [Float]
120
- attr_accessor :boost
140
+ # Prepare {MatchPhraseQuery} body
141
+ #
142
+ # @param [String] match_phrase
143
+ # @yieldparam [MatchPhraseQuery] query
144
+ #
145
+ # @return [MatchPhraseQuery]
146
+ def self.match_phrase(match_phrase, &block)
147
+ MatchPhraseQuery.new(match_phrase, &block)
148
+ end
121
149
 
122
- # @return [String]
123
- attr_accessor :field
150
+ # The input text is analyzed and a phrase query is built with the terms resulting from the analysis.
151
+ class MatchPhraseQuery < SearchQuery
152
+ # @return [Float]
153
+ attr_accessor :boost
124
154
 
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
155
+ # @return [String]
156
+ attr_accessor :field
133
157
 
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
158
+ # @return [String]
159
+ attr_accessor :analyzer
142
160
 
143
- # Prepare {QueryStringQuery} body
144
- #
145
- # @param [String] query_string
146
- # @yieldparam [QueryStringQuery] query
161
+ # @param [String] match_phrase
147
162
  #
148
- # @return [QueryStringQuery]
149
- def self.query_string(query_string, &block)
150
- QueryStringQuery.new(query_string, &block)
163
+ # @yieldparam [MatchPhraseQuery] self
164
+ def initialize(match_phrase)
165
+ super()
166
+ @match_phrase = match_phrase
167
+ yield self if block_given?
151
168
  end
152
169
 
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
170
+ # @return [Hash<Symbol, #to_json>]
171
+ def to_h
172
+ data = {:match_phrase => @match_phrase}
173
+ data[:boost] = boost if boost
174
+ data[:field] = field if field
175
+ data[:analyzer] = analyzer if analyzer
176
+ data
177
+ end
178
+ end
157
179
 
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
180
+ # Prepare {RegexpQuery} body
181
+ #
182
+ # @param [String] regexp
183
+ # @yieldparam [RegexpQuery] query
184
+ #
185
+ # @return [RegexpQuery]
186
+ def self.regexp(regexp, &block)
187
+ RegexpQuery.new(regexp, &block)
188
+ end
166
189
 
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
190
+ # Finds documents containing terms that match the specified regular expression.
191
+ class RegexpQuery < SearchQuery
192
+ # @return [Float]
193
+ attr_accessor :boost
174
194
 
175
- # Prepare {WildcardQuery} body
176
- #
177
- # @param [String] wildcard
178
- # @yieldparam [WildcardQuery] query
195
+ # @return [String]
196
+ attr_accessor :field
197
+
198
+ # @param [String] regexp
179
199
  #
180
- # @return [WildcardQuery]
181
- def self.wildcard(wildcard, &block)
182
- WildcardQuery.new(wildcard, &block)
200
+ # @yieldparam [RegexpQuery] self
201
+ def initialize(regexp)
202
+ super()
203
+ @regexp = regexp
204
+ yield self if block_given?
183
205
  end
184
206
 
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
207
+ # @return [Hash<Symbol, #to_json>]
208
+ def to_h
209
+ data = {:regexp => @regexp}
210
+ data[:boost] = boost if boost
211
+ data[:field] = field if field
212
+ data
213
+ end
214
+ end
192
215
 
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
216
+ # Prepare {QueryStringQuery} body
217
+ #
218
+ # @param [String] query_string
219
+ # @yieldparam [QueryStringQuery] query
220
+ #
221
+ # @return [QueryStringQuery]
222
+ def self.query_string(query_string, &block)
223
+ QueryStringQuery.new(query_string, &block)
224
+ end
201
225
 
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
226
+ # The query string query allows humans to describe complex queries using a simple syntax.
227
+ class QueryStringQuery < SearchQuery
228
+ # @return [Float]
229
+ attr_accessor :boost
210
230
 
211
- # Prepare {DocIdQuery} body
212
- #
213
- # @param [String...] doc_ids
214
- # @yieldparam [DocIdQuery] query
231
+ # @param [String] query_string
215
232
  #
216
- # @return [DocIdQuery]
217
- def self.doc_id(*doc_ids)
218
- DocIdQuery.new(*doc_ids)
233
+ # @yieldparam [QueryStringQuery] self
234
+ def initialize(query_string)
235
+ super()
236
+ @query_string = query_string
237
+ yield self if block_given?
219
238
  end
220
239
 
221
- # Allows to restrict matches to a set of specific documents.
222
- class DocIdQuery < SearchQuery
223
- # @return [Float]
224
- attr_accessor :boost
240
+ # @return [Hash<Symbol, #to_json>]
241
+ def to_h
242
+ data = {:query => @query_string}
243
+ data[:boost] = boost if boost
244
+ data
245
+ end
246
+ end
225
247
 
226
- # @return [String]
227
- attr_accessor :field
248
+ # Prepare {WildcardQuery} body
249
+ #
250
+ # @param [String] wildcard
251
+ # @yieldparam [WildcardQuery] query
252
+ #
253
+ # @return [WildcardQuery]
254
+ def self.wildcard(wildcard, &block)
255
+ WildcardQuery.new(wildcard, &block)
256
+ end
228
257
 
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
258
+ # Interprets * and ? wildcards as found in a lot of applications, for an easy implementation of such a search feature.
259
+ class WildcardQuery < SearchQuery
260
+ # @return [Float]
261
+ attr_accessor :boost
237
262
 
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
263
+ # @return [String]
264
+ attr_accessor :field
246
265
 
247
- # Prepare {BooleanFieldQuery} body
248
- #
249
- # @param [Boolean] value
250
- # @yieldparam [BooleanFieldQuery] query
266
+ # @param [String] wildcard
251
267
  #
252
- # @return [BooleanFieldQuery]
253
- def self.boolean_field(value)
254
- BooleanFieldQuery.new(value)
268
+ # @yieldparam [WildcardQuery] self
269
+ def initialize(wildcard)
270
+ super()
271
+ @wildcard = wildcard
272
+ yield self if block_given?
255
273
  end
256
274
 
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
275
+ # @return [Hash<Symbol, #to_json>]
276
+ def to_h
277
+ data = {:wildcard => @wildcard}
278
+ data[:boost] = boost if boost
279
+ data[:field] = field if field
280
+ data
281
+ end
282
+ end
264
283
 
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
284
+ # Prepare {DocIdQuery} body
285
+ #
286
+ # @param [String...] doc_ids
287
+ # @yieldparam [DocIdQuery] query
288
+ #
289
+ # @return [DocIdQuery]
290
+ def self.doc_id(*doc_ids)
291
+ DocIdQuery.new(*doc_ids)
292
+ end
273
293
 
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
294
+ # Allows to restrict matches to a set of specific documents.
295
+ class DocIdQuery < SearchQuery
296
+ # @return [Float]
297
+ attr_accessor :boost
282
298
 
283
- # Prepare {DateRangeQuery} body
284
- #
285
- # @yieldparam [DateRangeQuery] query
299
+ # @param [String...] doc_ids
286
300
  #
287
- # @return [DateRangeQuery]
288
- def self.date_range(&block)
289
- DateRangeQuery.new(&block)
301
+ # @yieldparam [DocIdQuery] self
302
+ def initialize(*doc_ids)
303
+ super()
304
+ @doc_ids = doc_ids
305
+ yield self if block_given?
290
306
  end
291
307
 
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 default)
308
- # @param [Boolean] inclusive
309
- def start_time(time_point, inclusive = nil)
310
- @start_time = time_point
311
- @start_inclusive = inclusive
312
- end
308
+ # @return [Hash<Symbol, #to_json>]
309
+ def to_h
310
+ data = {:ids => @doc_ids.flatten.uniq}
311
+ data[:boost] = boost if boost
312
+ data
313
+ end
314
+ end
313
315
 
314
- # Sets the upper boundary of the range.
315
- #
316
- # @note The upper boundary is considered exclusive by default on the server side.
317
- #
318
- # @param [Time, String] time_point end time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server default)
319
- # @param [Boolean] inclusive
320
- def end_time(time_point, inclusive = nil)
321
- @end_time = time_point
322
- @end_inclusive = inclusive
323
- end
316
+ # Prepare {BooleanFieldQuery} body
317
+ #
318
+ # @param [Boolean] value
319
+ # @yieldparam [BooleanFieldQuery] query
320
+ #
321
+ # @return [BooleanFieldQuery]
322
+ def self.boolean_field(value)
323
+ BooleanFieldQuery.new(value)
324
+ end
324
325
 
325
- # @yieldparam [DateRangeQuery] self
326
- def initialize
327
- super
328
- @start_time = nil
329
- @start_inclusive = nil
330
- @end_time = nil
331
- @end_inclusive = nil
332
- yield self if block_given?
333
- end
326
+ # Allow to match `true`/`false` in a field mapped as boolean.
327
+ class BooleanFieldQuery < SearchQuery
328
+ # @return [Float]
329
+ attr_accessor :boost
334
330
 
335
- DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z"
331
+ # @return [String]
332
+ attr_accessor :field
336
333
 
337
- # @return [String]
338
- def to_json(*args)
339
- if @start_time.nil? && @end_time.nil?
340
- raise ArgumentError, "either start_time or end_time must be set for DateRangeQuery"
341
- end
342
-
343
- data = {}
344
- data["boost"] = boost if boost
345
- data["field"] = field if field
346
- data["datetime_parser"] = date_time_parser if date_time_parser
347
- if @start_time
348
- data["start"] = if @start_time.respond_to?(:strftime)
349
- @start_time.strftime(DATE_FORMAT_RFC3339)
350
- else
351
- @start_time
352
- end
353
- data["inclusive_start"] = @start_inclusive unless @start_inclusive.nil?
354
- end
355
- if @end_time
356
- data["end"] = if @end_time.respond_to?(:strftime)
357
- @end_time.strftime(DATE_FORMAT_RFC3339)
358
- else
359
- @end_time
360
- end
361
- data["inclusive_end"] = @end_inclusive unless @end_inclusive.nil?
362
- end
363
- data.to_json(*args)
364
- end
334
+ # @param [Boolean] value
335
+ #
336
+ # @yieldparam [BooleanFieldQuery] self
337
+ def initialize(value)
338
+ super()
339
+ @value = value
340
+ yield self if block_given?
365
341
  end
366
342
 
367
- # Prepare {NumericRangeQuery} body
368
- #
369
- # @yieldparam [NumericRangeQuery] query
370
- #
371
- # @return [NumericRangeQuery]
372
- def self.numeric_range(&block)
373
- NumericRangeQuery.new(&block)
343
+ # @return [Hash<Symbol, #to_json>]
344
+ def to_h
345
+ data = {:bool => @value}
346
+ data[:boost] = boost if boost
347
+ data[:field] = field if field
348
+ data
374
349
  end
350
+ end
375
351
 
376
- # The numeric range query finds documents containing a numeric value in the specified field within the specified range.
377
- class NumericRangeQuery < SearchQuery
378
- # @return [Float]
379
- attr_accessor :boost
352
+ # Prepare {DateRangeQuery} body
353
+ #
354
+ # @yieldparam [DateRangeQuery] query
355
+ #
356
+ # @return [DateRangeQuery]
357
+ def self.date_range(&block)
358
+ DateRangeQuery.new(&block)
359
+ end
380
360
 
381
- # @return [String]
382
- attr_accessor :field
383
-
384
- # Sets lower bound of the range.
385
- #
386
- # The lower boundary is considered inclusive by default on the server side.
387
- #
388
- # @param [Numeric] lower_bound
389
- # @param [Boolean] inclusive
390
- def min(lower_bound, inclusive = nil)
391
- @min = lower_bound
392
- @min_inclusive = inclusive
393
- end
361
+ # The date range query finds documents containing a date value in the specified field within the specified range.
362
+ class DateRangeQuery < SearchQuery
363
+ # @return [Float]
364
+ attr_accessor :boost
394
365
 
395
- # Sets upper bound of the range.
396
- #
397
- # The upper boundary is considered exclusive by default on the server side.
398
- #
399
- # @param [Numeric] upper_bound
400
- # @param [Boolean] inclusive
401
- def max(upper_bound, inclusive = nil)
402
- @max = upper_bound
403
- @max_inclusive = inclusive
404
- end
366
+ # @return [String]
367
+ attr_accessor :field
405
368
 
406
- # @yieldparam [NumericRangeQuery] self
407
- def initialize
408
- super
409
- @min = nil
410
- @min_inclusive = nil
411
- @max = nil
412
- @max_inclusive = nil
413
- yield self if block_given?
414
- end
369
+ # @return [String]
370
+ attr_accessor :date_time_parser
415
371
 
416
- # @return [String]
417
- def to_json(*args)
418
- if @min.nil? && @max.nil?
419
- raise ArgumentError, "either min or max must be set for NumericRangeQuery"
420
- end
421
-
422
- data = {}
423
- data["boost"] = boost if boost
424
- data["field"] = field if field
425
- if @min
426
- data["min"] = @min
427
- data["inclusive_min"] = @min_inclusive unless @min_inclusive.nil?
428
- end
429
- if @max
430
- data["max"] = @max
431
- data["inclusive_max"] = @max_inclusive unless @max_inclusive.nil?
432
- end
433
- data.to_json(*args)
434
- end
372
+ # Sets the lower boundary of the range.
373
+ #
374
+ # @note The lower boundary is considered inclusive by default on the server side.
375
+ #
376
+ # @param [Time, String] time_point start time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server
377
+ # default)
378
+ # @param [Boolean] inclusive
379
+ def start_time(time_point, inclusive = nil)
380
+ @start_time = time_point
381
+ @start_inclusive = inclusive
435
382
  end
436
383
 
437
- # Prepare {TermRangeQuery} body
384
+ # Sets the upper boundary of the range.
438
385
  #
439
- # @yieldparam [TermRangeQuery] query
386
+ # @note The upper boundary is considered exclusive by default on the server side.
440
387
  #
441
- # @return [TermRangeQuery]
442
- def self.term_range(&block)
443
- TermRangeQuery.new(&block)
388
+ # @param [Time, String] time_point end time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server default)
389
+ # @param [Boolean] inclusive
390
+ def end_time(time_point, inclusive = nil)
391
+ @end_time = time_point
392
+ @end_inclusive = inclusive
444
393
  end
445
394
 
446
- # The term range query finds documents containing a string value in the specified field within the specified range.
447
- class TermRangeQuery < SearchQuery
448
- # @return [Float]
449
- attr_accessor :boost
395
+ # @yieldparam [DateRangeQuery] self
396
+ def initialize
397
+ super
398
+ @start_time = nil
399
+ @start_inclusive = nil
400
+ @end_time = nil
401
+ @end_inclusive = nil
402
+ yield self if block_given?
403
+ end
450
404
 
451
- # @return [String]
452
- attr_accessor :field
453
-
454
- # Sets lower bound of the range.
455
- #
456
- # The lower boundary is considered inclusive by default on the server side.
457
- #
458
- # @param [String] lower_bound
459
- # @param [Boolean] inclusive
460
- def min(lower_bound, inclusive = nil)
461
- @min = lower_bound
462
- @min_inclusive = inclusive
463
- end
405
+ DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z".freeze
464
406
 
465
- # Sets upper bound of the range.
466
- #
467
- # The upper boundary is considered exclusive by default on the server side.
468
- #
469
- # @param [String] upper_bound
470
- # @param [Boolean] inclusive
471
- def max(upper_bound, inclusive = nil)
472
- @max = upper_bound
473
- @max_inclusive = inclusive
474
- end
407
+ # @return [Hash<Symbol, #to_json>]
408
+ def to_h
409
+ raise ArgumentError, "either start_time or end_time must be set for DateRangeQuery" if @start_time.nil? && @end_time.nil?
475
410
 
476
- # @yieldparam [TermRangeQuery] self
477
- def initialize
478
- super
479
- @min = nil
480
- @min_inclusive = nil
481
- @max = nil
482
- @max_inclusive = nil
483
- yield self if block_given?
411
+ data = {}
412
+ data[:boost] = boost if boost
413
+ data[:field] = field if field
414
+ data[:datetime_parser] = date_time_parser if date_time_parser
415
+ if @start_time
416
+ data[:start] = if @start_time.respond_to?(:strftime)
417
+ @start_time.strftime(DATE_FORMAT_RFC3339)
418
+ else
419
+ @start_time
420
+ end
421
+ data[:inclusive_start] = @start_inclusive unless @start_inclusive.nil?
484
422
  end
485
-
486
- # @return [String]
487
- def to_json(*args)
488
- if @min.nil? && @max.nil?
489
- raise ArgumentError, "either min or max must be set for TermRangeQuery"
490
- end
491
-
492
- data = {}
493
- data["boost"] = boost if boost
494
- data["field"] = field if field
495
- if @min
496
- data["min"] = @min
497
- data["inclusive_min"] = @min_inclusive unless @min_inclusive.nil?
498
- end
499
- if @max
500
- data["max"] = @max
501
- data["inclusive_max"] = @max_inclusive unless @max_inclusive.nil?
502
- end
503
- data.to_json(*args)
423
+ if @end_time
424
+ data[:end] = if @end_time.respond_to?(:strftime)
425
+ @end_time.strftime(DATE_FORMAT_RFC3339)
426
+ else
427
+ @end_time
428
+ end
429
+ data[:inclusive_end] = @end_inclusive unless @end_inclusive.nil?
504
430
  end
431
+ data
505
432
  end
433
+ end
506
434
 
507
- # Prepare {GeoDistanceQuery} body
508
- #
509
- # @yieldparam [GeoDistanceQuery] query
510
- #
511
- # @param [Float] latitude location latitude
512
- # @param [Float] longitude location longitude
513
- # @param [String] distance how big is area (number with units)
514
- #
515
- # @return [GeoDistanceQuery]
516
- def self.geo_distance(longitude, latitude, distance, &block)
517
- GeoDistanceQuery.new(longitude, latitude, distance, &block)
518
- end
519
-
520
- # Finds `geopoint` indexed matches around a point with the given distance.
521
- class GeoDistanceQuery < SearchQuery
522
- # @return [Float]
523
- attr_accessor :boost
435
+ # Prepare {NumericRangeQuery} body
436
+ #
437
+ # @yieldparam [NumericRangeQuery] query
438
+ #
439
+ # @return [NumericRangeQuery]
440
+ def self.numeric_range(&block)
441
+ NumericRangeQuery.new(&block)
442
+ end
524
443
 
525
- # @return [String]
526
- attr_accessor :field
444
+ # The numeric range query finds documents containing a numeric value in the specified field within the specified range.
445
+ class NumericRangeQuery < SearchQuery
446
+ # @return [Float]
447
+ attr_accessor :boost
527
448
 
528
- # @yieldparam [GeoDistanceQuery] self
529
- # @param [Float] longitude
530
- # @param [Float] latitude
531
- # @param [Float] distance
532
- def initialize(longitude, latitude, distance)
533
- super()
534
- @longitude = longitude
535
- @latitude = latitude
536
- @distance = distance
537
- yield self if block_given?
538
- end
449
+ # @return [String]
450
+ attr_accessor :field
539
451
 
540
- # @return [String]
541
- def to_json(*args)
542
- data = {
543
- "location" => [@longitude, @latitude],
544
- "distance" => @distance
545
- }
546
- data["boost"] = boost if boost
547
- data["field"] = field if field
548
- data.to_json(*args)
549
- end
452
+ # Sets lower bound of the range.
453
+ #
454
+ # The lower boundary is considered inclusive by default on the server side.
455
+ #
456
+ # @param [Numeric] lower_bound
457
+ # @param [Boolean] inclusive
458
+ def min(lower_bound, inclusive = nil)
459
+ @min = lower_bound
460
+ @min_inclusive = inclusive
550
461
  end
551
462
 
552
- # Prepare {GeoBoundingBoxQuery} body
553
- #
554
- # @yieldparam [GeoDistanceQuery] query
463
+ # Sets upper bound of the range.
555
464
  #
556
- # @param [Float] top_left_longitude
557
- # @param [Float] top_left_latitude
558
- # @param [Float] bottom_right_longitude
559
- # @param [Float] bottom_right_latitude
465
+ # The upper boundary is considered exclusive by default on the server side.
560
466
  #
561
- # @return [GeoBoundingBoxQuery]
562
- def self.geo_bounding_box(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
563
- GeoBoundingBoxQuery.new(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
467
+ # @param [Numeric] upper_bound
468
+ # @param [Boolean] inclusive
469
+ def max(upper_bound, inclusive = nil)
470
+ @max = upper_bound
471
+ @max_inclusive = inclusive
564
472
  end
565
473
 
566
- # Finds `geopoint` indexed matches in a given bounding box.
567
- class GeoBoundingBoxQuery < SearchQuery
568
- # @return [Float]
569
- attr_accessor :boost
474
+ # @yieldparam [NumericRangeQuery] self
475
+ def initialize
476
+ super
477
+ @min = nil
478
+ @min_inclusive = nil
479
+ @max = nil
480
+ @max_inclusive = nil
481
+ yield self if block_given?
482
+ end
570
483
 
571
- # @return [String]
572
- attr_accessor :field
573
-
574
- # @yieldparam [GeoBoundingBoxQuery] self
575
- #
576
- # @param [Float] top_left_longitude
577
- # @param [Float] top_left_latitude
578
- # @param [Float] bottom_right_longitude
579
- # @param [Float] bottom_right_latitude
580
- def initialize(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude)
581
- super()
582
- @top_left_longitude = top_left_longitude
583
- @top_left_latitude = top_left_latitude
584
- @bottom_right_longitude = bottom_right_longitude
585
- @bottom_right_latitude = bottom_right_latitude
586
- yield self if block_given?
587
- end
484
+ # @return [Hash<Symbol, #to_json>]
485
+ def to_h
486
+ raise ArgumentError, "either min or max must be set for NumericRangeQuery" if @min.nil? && @max.nil?
588
487
 
589
- # @return [String]
590
- def to_json(*args)
591
- data = {
592
- "top_left" => [@top_left_longitude, @top_left_latitude],
593
- "bottom_right" => [@bottom_right_longitude, @bottom_right_latitude]
594
- }
595
- data["boost"] = boost if boost
596
- data["field"] = field if field
597
- data.to_json(*args)
488
+ data = {}
489
+ data[:boost] = boost if boost
490
+ data[:field] = field if field
491
+ if @min
492
+ data[:min] = @min
493
+ data[:inclusive_min] = @min_inclusive unless @min_inclusive.nil?
598
494
  end
495
+ if @max
496
+ data[:max] = @max
497
+ data[:inclusive_max] = @max_inclusive unless @max_inclusive.nil?
498
+ end
499
+ data
599
500
  end
501
+ end
600
502
 
601
- # Prepare {ConjunctionQuery} body
602
- #
603
- # @yieldparam [ConjunctionQuery] query
604
- #
605
- # @return [ConjunctionQuery]
606
- def self.conjuncts(*queries, &block)
607
- ConjunctionQuery.new(*queries, &block)
608
- end
609
-
610
- # Result documents must satisfy all of the child queries.
611
- class ConjunctionQuery < SearchQuery
612
- # @return [Float]
613
- attr_accessor :boost
614
-
615
- # @yieldparam [ConjunctionQuery] self
616
- #
617
- # @param [*SearchQuery] queries
618
- def initialize(*queries)
619
- super()
620
- @queries = queries.flatten
621
- yield self if block_given?
622
- end
503
+ # Prepare {TermRangeQuery} body
504
+ #
505
+ # @yieldparam [TermRangeQuery] query
506
+ #
507
+ # @return [TermRangeQuery]
508
+ def self.term_range(&block)
509
+ TermRangeQuery.new(&block)
510
+ end
623
511
 
624
- # @param [*SearchQuery] queries
625
- def and_also(*queries)
626
- @queries |= queries.flatten
627
- end
512
+ # The term range query finds documents containing a string value in the specified field within the specified range.
513
+ class TermRangeQuery < SearchQuery
514
+ # @return [Float]
515
+ attr_accessor :boost
628
516
 
629
- def empty?
630
- @queries.empty?
631
- end
517
+ # @return [String]
518
+ attr_accessor :field
632
519
 
633
- # @return [String]
634
- def to_json(*args)
635
- raise ArgumentError, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty?
636
- data = {"conjuncts" => @queries.uniq}
637
- data["boost"] = boost if boost
638
- data.to_json(*args)
639
- end
520
+ # Sets lower bound of the range.
521
+ #
522
+ # The lower boundary is considered inclusive by default on the server side.
523
+ #
524
+ # @param [String] lower_bound
525
+ # @param [Boolean] inclusive
526
+ def min(lower_bound, inclusive = nil)
527
+ @min = lower_bound
528
+ @min_inclusive = inclusive
640
529
  end
641
530
 
642
- # Prepare {ConjunctionQuery} body
531
+ # Sets upper bound of the range.
643
532
  #
644
- # @yieldparam [ConjunctionQuery] query
533
+ # The upper boundary is considered exclusive by default on the server side.
645
534
  #
646
- # @return [ConjunctionQuery]
647
- def self.disjuncts(*queries, &block)
648
- DisjunctionQuery.new(*queries, &block)
535
+ # @param [String] upper_bound
536
+ # @param [Boolean] inclusive
537
+ def max(upper_bound, inclusive = nil)
538
+ @max = upper_bound
539
+ @max_inclusive = inclusive
649
540
  end
650
541
 
651
- # Result documents must satisfy a configurable min number of child queries.
652
- class DisjunctionQuery < SearchQuery
653
- # @return [Float]
654
- attr_accessor :boost
655
-
656
- # @return [Integer]
657
- attr_accessor :min
658
-
659
- # @yieldparam [DisjunctionQuery] self
660
- #
661
- # @param [*SearchQuery] queries
662
- def initialize(*queries)
663
- super()
664
- @queries = queries.flatten
665
- yield self if block_given?
666
- end
542
+ # @yieldparam [TermRangeQuery] self
543
+ def initialize
544
+ super
545
+ @min = nil
546
+ @min_inclusive = nil
547
+ @max = nil
548
+ @max_inclusive = nil
549
+ yield self if block_given?
550
+ end
667
551
 
668
- # @param [*SearchQuery] queries
669
- def or_else(*queries)
670
- @queries |= queries.flatten
671
- end
552
+ # @return [Hash<Symbol, #to_json>]
553
+ def to_h
554
+ raise ArgumentError, "either min or max must be set for TermRangeQuery" if @min.nil? && @max.nil?
672
555
 
673
- def empty?
674
- @queries.empty?
556
+ data = {}
557
+ data[:boost] = boost if boost
558
+ data[:field] = field if field
559
+ if @min
560
+ data[:min] = @min
561
+ data[:inclusive_min] = @min_inclusive unless @min_inclusive.nil?
675
562
  end
676
-
677
- # @return [String]
678
- def to_json(*args)
679
- raise ArgumentError, "compound disjunction query must have sub-queries" if @queries.nil? || @queries.empty?
680
- data = {"disjuncts" => @queries.uniq}
681
- if min
682
- raise ArgumentError, "disjunction query has fewer sub-queries than configured minimum" if @queries.size < min
683
- data["min"] = min
684
- end
685
- data["boost"] = boost if boost
686
- data.to_json(*args)
563
+ if @max
564
+ data[:max] = @max
565
+ data[:inclusive_max] = @max_inclusive unless @max_inclusive.nil?
687
566
  end
567
+ data
688
568
  end
569
+ end
689
570
 
690
- # Prepare {BooleanQuery} body
691
- #
692
- # @yieldparam [BooleanQuery] query
693
- #
694
- # @return [BooleanQuery]
695
- def self.booleans(&block)
696
- BooleanQuery.new(&block)
697
- end
571
+ # Prepare {GeoDistanceQuery} body
572
+ #
573
+ # @yieldparam [GeoDistanceQuery] query
574
+ #
575
+ # @param [Float] latitude location latitude
576
+ # @param [Float] longitude location longitude
577
+ # @param [String] distance how big is area (number with units)
578
+ #
579
+ # @return [GeoDistanceQuery]
580
+ def self.geo_distance(longitude, latitude, distance, &block)
581
+ GeoDistanceQuery.new(longitude, latitude, distance, &block)
582
+ end
698
583
 
699
- # The boolean query is a useful combination of conjunction and disjunction queries.
700
- class BooleanQuery < SearchQuery
701
- # @return [Float]
702
- attr_accessor :boost
584
+ # Finds `geopoint` indexed matches around a point with the given distance.
585
+ class GeoDistanceQuery < SearchQuery
586
+ # @return [Float]
587
+ attr_accessor :boost
703
588
 
704
- # @yieldparam [BooleanQuery] self
705
- def initialize
706
- super()
707
- @must = ConjunctionQuery.new
708
- @must_not = DisjunctionQuery.new
709
- @should = DisjunctionQuery.new
710
- yield self if block_given?
711
- end
589
+ # @return [String]
590
+ attr_accessor :field
712
591
 
713
- # @param [Integer] min minimal value for "should" disjunction query
714
- def should_min(min)
715
- @should.min = min
716
- self
717
- end
592
+ # @yieldparam [GeoDistanceQuery] self
593
+ # @param [Float] longitude
594
+ # @param [Float] latitude
595
+ # @param [Float] distance
596
+ def initialize(longitude, latitude, distance)
597
+ super()
598
+ @longitude = longitude
599
+ @latitude = latitude
600
+ @distance = distance
601
+ yield self if block_given?
602
+ end
718
603
 
719
- # @param [*SearchQuery] queries
720
- def must(*queries)
721
- @must.and_also(*queries)
722
- self
723
- end
604
+ # @return [Hash<Symbol, #to_json>]
605
+ def to_h
606
+ data = {
607
+ :location => [@longitude, @latitude],
608
+ :distance => @distance,
609
+ }
610
+ data[:boost] = boost if boost
611
+ data[:field] = field if field
612
+ data
613
+ end
614
+ end
724
615
 
725
- # @param [*SearchQuery] queries
726
- def must_not(*queries)
727
- @must_not.or_else(*queries)
728
- self
729
- end
616
+ # Prepare {GeoBoundingBoxQuery} body
617
+ #
618
+ # @yieldparam [GeoBoundingBoxQuery] query
619
+ #
620
+ # @param [Float] top_left_longitude
621
+ # @param [Float] top_left_latitude
622
+ # @param [Float] bottom_right_longitude
623
+ # @param [Float] bottom_right_latitude
624
+ #
625
+ # @return [GeoBoundingBoxQuery]
626
+ def self.geo_bounding_box(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
627
+ GeoBoundingBoxQuery.new(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude, &block)
628
+ end
730
629
 
731
- # @param [*SearchQuery] queries
732
- def should(*queries)
733
- @should.or_else(*queries)
734
- self
735
- end
630
+ # Finds `geopoint` indexed matches in a given bounding box.
631
+ class GeoBoundingBoxQuery < SearchQuery
632
+ # @return [Float]
633
+ attr_accessor :boost
736
634
 
737
- # @return [String]
738
- def to_json(*args)
739
- if @must.empty? && @must_not.empty? && @should.empty?
740
- raise ArgumentError, "BooleanQuery must have at least one non-empty sub-query"
741
- end
742
- data = {}
743
- data["must"] = @must unless @must.empty?
744
- data["must_not"] = @must_not unless @must_not.empty?
745
- data["should"] = @should unless @should.empty?
746
- data["boost"] = boost if boost
747
- data.to_json(*args)
748
- end
749
- end
635
+ # @return [String]
636
+ attr_accessor :field
750
637
 
751
- # Prepare {TermQuery} body
638
+ # @yieldparam [GeoBoundingBoxQuery] self
752
639
  #
753
- # @yieldparam [TermQuery] query
754
- # @param [String] term
755
- #
756
- # @return [TermQuery]
757
- def self.term(term, &block)
758
- TermQuery.new(term, &block)
640
+ # @param [Float] top_left_longitude
641
+ # @param [Float] top_left_latitude
642
+ # @param [Float] bottom_right_longitude
643
+ # @param [Float] bottom_right_latitude
644
+ def initialize(top_left_longitude, top_left_latitude, bottom_right_longitude, bottom_right_latitude)
645
+ super()
646
+ @top_left_longitude = top_left_longitude
647
+ @top_left_latitude = top_left_latitude
648
+ @bottom_right_longitude = bottom_right_longitude
649
+ @bottom_right_latitude = bottom_right_latitude
650
+ yield self if block_given?
759
651
  end
760
652
 
761
- # A query that looks for **exact** matches of the term in the index (no analyzer, no stemming). Useful to check what the actual 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
653
+ # @return [Hash<Symbol, #to_json>]
654
+ def to_h
655
+ data = {
656
+ :top_left => [@top_left_longitude, @top_left_latitude],
657
+ :bottom_right => [@bottom_right_longitude, @bottom_right_latitude],
658
+ }
659
+ data[:boost] = boost if boost
660
+ data[:field] = field if field
661
+ data
662
+ end
663
+ end
765
664
 
766
- # @return [String]
767
- attr_accessor :field
665
+ # A coordinate is a tuple of a latitude and a longitude.
666
+ #
667
+ # @see GeoPolygonQuery
668
+ # @see SearchQuery.geo_polygon
669
+ class Coordinate
670
+ # @return [Float]
671
+ attr_accessor :longitude
768
672
 
769
- # @return [Integer]
770
- attr_accessor :fuzziness
673
+ # @return [Float]
674
+ attr_accessor :latitude
771
675
 
772
- # @return [Integer]
773
- attr_accessor :prefix_length
676
+ def initialize(longitude, latitude)
677
+ @longitude = longitude
678
+ @latitude = latitude
679
+ end
680
+ end
774
681
 
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
682
+ # Prepare {GeoPolygonQuery} body
683
+ #
684
+ # @yieldparam [GeoPolygonQuery] query
685
+ #
686
+ # @param [Array<Coordinate>] coordinates list of coordinates that forms polygon
687
+ #
688
+ # @return [GeoPolygonQuery]
689
+ #
690
+ # @!macro uncommitted
691
+ def self.geo_polygon(coordinates, &block)
692
+ GeoPolygonQuery.new(coordinates, &block)
693
+ end
783
694
 
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
695
+ # A search query which allows to match inside a geo polygon.
696
+ class GeoPolygonQuery < SearchQuery
697
+ # @return [Float]
698
+ attr_accessor :boost
796
699
 
797
- # Prepare {PrefixQuery} body
798
- #
799
- # @yieldparam [PrefixQuery] query
800
- # @param [String] prefix
700
+ # @return [String]
701
+ attr_accessor :field
702
+
703
+ # @yieldparam [GeoPolygonQuery] self
801
704
  #
802
- # @return [PrefixQuery]
803
- def self.prefix(prefix, &block)
804
- PrefixQuery.new(prefix, &block)
705
+ # @param [Array<Coordinate>] coordinates list of coordinates that forms polygon
706
+ def initialize(coordinates)
707
+ super()
708
+ @coordinates = coordinates
709
+ yield self if block_given?
805
710
  end
806
711
 
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
712
+ # @return [Hash<Symbol, #to_json>]
713
+ def to_h
714
+ data = {
715
+ :polygon_points => @coordinates.map { |coord| [coord.longitude, coord.latitude] },
716
+ }
717
+ data[:boost] = boost if boost
718
+ data[:field] = field if field
719
+ data
720
+ end
721
+ end
811
722
 
812
- # @return [String]
813
- attr_accessor :field
723
+ # Prepare {ConjunctionQuery} body
724
+ #
725
+ # @yieldparam [ConjunctionQuery] query
726
+ #
727
+ # @return [ConjunctionQuery]
728
+ def self.conjuncts(...)
729
+ ConjunctionQuery.new(...)
730
+ end
814
731
 
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
732
+ # Result documents must satisfy all of the child queries.
733
+ class ConjunctionQuery < SearchQuery
734
+ # @return [Float]
735
+ attr_accessor :boost
823
736
 
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
737
+ # @yieldparam [ConjunctionQuery] self
738
+ #
739
+ # @param [*SearchQuery] queries
740
+ def initialize(*queries)
741
+ super()
742
+ @queries = queries.flatten
743
+ yield self if block_given?
831
744
  end
832
745
 
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)
746
+ # @param [*SearchQuery] queries
747
+ def and_also(*queries)
748
+ @queries |= queries.flatten
841
749
  end
842
750
 
843
- # A query that looks for **exact** match of several terms (in the exact order) in the index. Usual better alternative is {MatchPhraseQuery}.
844
- class PhraseQuery < SearchQuery
845
- # @return [Float]
846
- attr_accessor :boost
751
+ def empty?
752
+ @queries.empty?
753
+ end
847
754
 
848
- # @return [String]
849
- attr_accessor :field
755
+ # @return [Hash<Symbol, #to_json>]
756
+ def to_h
757
+ raise ArgumentError, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty?
850
758
 
851
- # @yieldparam [PhraseQuery] self
852
- #
853
- # @param [*String] terms
854
- def initialize(*terms)
855
- super()
856
- @terms = terms.flatten
857
- yield self if block_given?
858
- end
859
-
860
- # @return [String]
861
- def to_json(*args)
862
- data = {"terms" => @terms.flatten.uniq}
863
- data["boost"] = boost if boost
864
- data["field"] = field if field
865
- data.to_json(*args)
866
- end
759
+ data = {:conjuncts => @queries.uniq.map(&:to_h)}
760
+ data[:boost] = boost if boost
761
+ data
867
762
  end
763
+ end
868
764
 
869
- # Prepare {MatchAllQuery} body
870
- #
871
- # @yieldparam [MatchAllQuery] query
872
- #
873
- # @return [MatchAllQuery]
874
- def self.match_all(&block)
875
- MatchAllQuery.new(&block)
876
- end
765
+ # Prepare {ConjunctionQuery} body
766
+ #
767
+ # @yieldparam [DisjunctionQuery] query
768
+ #
769
+ # @return [DisjunctionQuery]
770
+ def self.disjuncts(...)
771
+ DisjunctionQuery.new(...)
772
+ end
877
773
 
878
- # A query that matches all indexed documents.
879
- class MatchAllQuery < SearchQuery
880
- # @return [Float]
881
- attr_accessor :boost
774
+ # Result documents must satisfy a configurable min number of child queries.
775
+ class DisjunctionQuery < SearchQuery
776
+ # @return [Float]
777
+ attr_accessor :boost
882
778
 
883
- # @yieldparam [MatchAllQuery] self
884
- def initialize
885
- super()
886
- yield self if block_given?
887
- end
779
+ # @return [Integer]
780
+ attr_accessor :min
888
781
 
889
- # @return [String]
890
- def to_json(*args)
891
- data = {"match_all" => nil}
892
- data["boost"] = boost if boost
893
- data.to_json(*args)
894
- end
782
+ # @yieldparam [DisjunctionQuery] self
783
+ #
784
+ # @param [*SearchQuery] queries
785
+ def initialize(*queries)
786
+ super()
787
+ @queries = queries.flatten
788
+ yield self if block_given?
789
+ end
790
+
791
+ # @param [*SearchQuery] queries
792
+ def or_else(*queries)
793
+ @queries |= queries.flatten
895
794
  end
896
795
 
897
- # Prepare {MatchNoneQuery} body
898
- #
899
- # @yieldparam [MatchNoneQuery] query
900
- #
901
- # @return [MatchNoneQuery]
902
- def self.match_none(&block)
903
- MatchNoneQuery.new(&block)
796
+ def empty?
797
+ @queries.empty?
904
798
  end
905
799
 
906
- # A query that matches nothing.
907
- class MatchNoneQuery < SearchQuery
908
- # @return [Float]
909
- attr_accessor :boost
800
+ # @return [Hash<Symbol, #to_json>]
801
+ def to_h
802
+ raise ArgumentError, "compound disjunction query must have sub-queries" if @queries.nil? || @queries.empty?
910
803
 
911
- # @yieldparam [MatchNoneQuery] self
912
- def initialize
913
- super()
914
- yield self if block_given?
915
- end
804
+ data = {:disjuncts => @queries.uniq.map(&:to_h)}
805
+ if min
806
+ raise ArgumentError, "disjunction query has fewer sub-queries than configured minimum" if @queries.size < min
916
807
 
917
- # @return [String]
918
- def to_json(*args)
919
- data = {"match_none" => nil}
920
- data["boost"] = boost if boost
921
- data.to_json(*args)
808
+ data[:min] = min
922
809
  end
810
+ data[:boost] = boost if boost
811
+ data
923
812
  end
924
813
  end
925
814
 
926
- class SearchSort
927
- # @yieldparam [SearchSortScore]
928
- # @return [SearchSortScore]
929
- def self.score(&block)
930
- SearchSortScore.new(&block)
931
- end
815
+ # Prepare {BooleanQuery} body
816
+ #
817
+ # @yieldparam [BooleanQuery] query
818
+ #
819
+ # @return [BooleanQuery]
820
+ def self.booleans(&block)
821
+ BooleanQuery.new(&block)
822
+ end
932
823
 
933
- # @yieldparam [SearchSortId]
934
- # @return [SearchSortScore]
935
- def self.id(&block)
936
- SearchSortId.new(&block)
937
- end
824
+ # The boolean query is a useful combination of conjunction and disjunction queries.
825
+ class BooleanQuery < SearchQuery
826
+ # @return [Float]
827
+ attr_accessor :boost
938
828
 
939
- # @param [String] name field name
940
- # @yieldparam [SearchSortField]
941
- # @return [SearchSortField]
942
- def self.field(name, &block)
943
- SearchSortField.new(name, &block)
829
+ # @yieldparam [BooleanQuery] self
830
+ def initialize
831
+ super()
832
+ @must = ConjunctionQuery.new
833
+ @must_not = DisjunctionQuery.new
834
+ @should = DisjunctionQuery.new
835
+ yield self if block_given?
944
836
  end
945
837
 
946
- # @param [String] name field name
947
- # @param [Float] longitude
948
- # @param [Float] latitude
949
- # @yieldparam [SearchSortField]
950
- # @return [SearchSortGeoDistance]
951
- def self.geo_distance(name, longitude, latitude, &block)
952
- SearchSortGeoDistance.new(name, longitude, latitude, &block)
838
+ # @param [Integer] min minimal value for "should" disjunction query
839
+ def should_min(min)
840
+ @should.min = min
841
+ self
953
842
  end
954
843
 
955
- class SearchSortScore < SearchSort
956
- # @return [Boolean] if descending order should be applied
957
- attr_accessor :desc
958
-
959
- # @yieldparam [SearchSortScore]
960
- def initialize
961
- yield self if block_given?
962
- end
844
+ # @param [*SearchQuery] queries
845
+ def must(*queries)
846
+ @must.and_also(*queries)
847
+ self
848
+ end
963
849
 
964
- # @api private
965
- def to_json(*args)
966
- {by: :score, desc: desc}.to_json(*args)
967
- end
850
+ # @param [*SearchQuery] queries
851
+ def must_not(*queries)
852
+ @must_not.or_else(*queries)
853
+ self
968
854
  end
969
855
 
970
- class SearchSortId < SearchSort
971
- # @return [Boolean] if descending order should be applied
972
- attr_accessor :desc
856
+ # @param [*SearchQuery] queries
857
+ def should(*queries)
858
+ @should.or_else(*queries)
859
+ self
860
+ end
973
861
 
974
- # @yieldparam [SearchSortId]
975
- def initialize
976
- yield self if block_given?
977
- end
862
+ # @return [Hash<Symbol, #to_json>]
863
+ def to_h
864
+ raise ArgumentError, "BooleanQuery must have at least one non-empty sub-query" if @must.empty? && @must_not.empty? && @should.empty?
978
865
 
979
- # @api private
980
- def to_json(*args)
981
- {by: :id, desc: desc}.to_json(*args)
982
- end
866
+ data = {}
867
+ data[:must] = @must.to_h unless @must.empty?
868
+ data[:must_not] = @must_not.to_h unless @must_not.empty?
869
+ data[:should] = @should.to_h unless @should.empty?
870
+ data[:boost] = boost if boost
871
+ data
983
872
  end
873
+ end
984
874
 
985
- class SearchSortField < SearchSort
986
- # @return [String] name of the field to sort by
987
- attr_reader :field
875
+ # Prepare {TermQuery} body
876
+ #
877
+ # @yieldparam [TermQuery] query
878
+ # @param [String] term
879
+ #
880
+ # @return [TermQuery]
881
+ def self.term(term, &block)
882
+ TermQuery.new(term, &block)
883
+ end
988
884
 
989
- # @return [Boolean] if descending order should be applied
990
- attr_accessor :desc
885
+ # A query that looks for **exact** matches of the term in the index (no analyzer, no stemming). Useful to check what the actual
886
+ # content of the index is. It can also apply fuzziness on the term. Usual better alternative is `MatchQuery`.
887
+ class TermQuery < SearchQuery
888
+ # @return [Float]
889
+ attr_accessor :boost
991
890
 
992
- # @return [:auto, :string, :number, :date]
993
- attr_accessor :type
891
+ # @return [String]
892
+ attr_accessor :field
994
893
 
995
- # @return [:first, :last] where the documents with missing field should be placed
996
- attr_accessor :missing
894
+ # @return [Integer]
895
+ attr_accessor :fuzziness
997
896
 
998
- # @return [:default, :min, :max]
999
- attr_accessor :mode
897
+ # @return [Integer]
898
+ attr_accessor :prefix_length
1000
899
 
1001
- # @param [String] field the name of the filed for ordering
1002
- # @yieldparam [SearchSortField]
1003
- def initialize(field)
1004
- @field = field
1005
- yield self if block_given?
1006
- end
900
+ # @yieldparam [TermQuery] self
901
+ #
902
+ # @param [String] term
903
+ def initialize(term)
904
+ super()
905
+ @term = term
906
+ yield self if block_given?
907
+ end
1007
908
 
1008
- # @api private
1009
- def to_json(*args)
1010
- {by: :field, field: field, desc: desc, type: type, missing: missing, mode: mode}.to_json(*args)
909
+ # @return [Hash<Symbol, #to_json>]
910
+ def to_h
911
+ data = {:term => @term}
912
+ data[:boost] = boost if boost
913
+ data[:field] = field if field
914
+ if fuzziness
915
+ data[:fuzziness] = fuzziness
916
+ data[:prefix_length] = prefix_length if prefix_length
1011
917
  end
918
+ data
1012
919
  end
920
+ end
1013
921
 
1014
- class SearchSortGeoDistance < SearchSort
1015
- # @return [String] name of the field to sort by
1016
- attr_reader :field
1017
-
1018
- # @return [Boolean] if descending order should be applied
1019
- attr_accessor :desc
922
+ # Prepare {PrefixQuery} body
923
+ #
924
+ # @yieldparam [PrefixQuery] query
925
+ # @param [String] prefix
926
+ #
927
+ # @return [PrefixQuery]
928
+ def self.prefix(prefix, &block)
929
+ PrefixQuery.new(prefix, &block)
930
+ end
1020
931
 
1021
- # @return [Float]
1022
- attr_reader :longitude
932
+ # The prefix query finds documents containing terms that start with the provided prefix. Usual better alternative is `MatchQuery`.
933
+ class PrefixQuery < SearchQuery
934
+ # @return [Float]
935
+ attr_accessor :boost
1023
936
 
1024
- # @return [Float]
1025
- attr_reader :latitude
937
+ # @return [nil, :or, :and]
938
+ attr_accessor :operator
1026
939
 
1027
- # @return [:meters, :miles, :centimeters, :millimeters, :kilometers, :nauticalmiles, :feet, :yards, :inch]
1028
- attr_accessor :unit
940
+ # @return [String]
941
+ attr_accessor :field
1029
942
 
1030
- # @param [String] field field name
1031
- # @param [Float] longitude
1032
- # @param [Float] latitude
1033
- # @yieldparam [SearchSortGeoDistance]
1034
- def initialize(field, longitude, latitude)
1035
- @field = field
1036
- @longitude = longitude
1037
- @latitude = latitude
1038
- yield self if block_given?
1039
- end
943
+ # @yieldparam [PrefixQuery] self
944
+ #
945
+ # @param [String] prefix
946
+ def initialize(prefix)
947
+ super()
948
+ @prefix = prefix
949
+ yield self if block_given?
950
+ end
1040
951
 
1041
- # @api private
1042
- def to_json(*args)
1043
- {by: :geo_distance, field: field, desc: desc, location: [longitude, latitude], unit: unit}.to_json(*args)
1044
- end
952
+ # @return [Hash<Symbol, #to_json>]
953
+ def to_h
954
+ data = {:prefix => @prefix}
955
+ data[:boost] = boost if boost
956
+ data[:field] = field if field
957
+ data
1045
958
  end
1046
959
  end
1047
960
 
1048
- class SearchFacet
1049
- # @param [String] field_name
1050
- # @return [SearchFacetTerm]
1051
- def self.term(field_name, &block)
1052
- SearchFacetTerm.new(field_name, &block)
1053
- end
961
+ # Prepare {PhraseQuery} body
962
+ #
963
+ # Creates a new instances {PhraseQuery} passing all parameters into {PhraseQuery#initialize}.
964
+ #
965
+ # @return [PhraseQuery]
966
+ def self.phrase(...)
967
+ PhraseQuery.new(...)
968
+ end
969
+
970
+ # A query that looks for **exact** match of several terms (in the exact order) in the index. Usual better alternative is
971
+ # {MatchPhraseQuery}.
972
+ class PhraseQuery < SearchQuery
973
+ # @return [Float]
974
+ attr_accessor :boost
1054
975
 
1055
- # @param [String] field_name
1056
- # @return [SearchFacetNumericRange]
1057
- def self.numeric_range(field_name, &block)
1058
- SearchFacetNumericRange.new(field_name, &block)
976
+ # @return [String]
977
+ attr_accessor :field
978
+
979
+ # @yieldparam [PhraseQuery] self
980
+ #
981
+ # @param [*String] terms
982
+ def initialize(*terms)
983
+ super()
984
+ @terms = terms.flatten
985
+ yield self if block_given?
1059
986
  end
1060
987
 
1061
- # @param [String] field_name
1062
- # @return [SearchFacetDateRange]
1063
- def self.date_range(field_name, &block)
1064
- SearchFacetDateRange.new(field_name, &block)
988
+ # @return [Hash<Symbol, #to_json>]
989
+ def to_h
990
+ data = {:terms => @terms.flatten.uniq}
991
+ data[:boost] = boost if boost
992
+ data[:field] = field if field
993
+ data
1065
994
  end
995
+ end
1066
996
 
1067
- class SearchFacetTerm
1068
- # @return [String]
1069
- attr_reader :field
997
+ # Prepare {MatchAllQuery} body
998
+ #
999
+ # @yieldparam [MatchAllQuery] query
1000
+ #
1001
+ # @return [MatchAllQuery]
1002
+ def self.match_all(&block)
1003
+ MatchAllQuery.new(&block)
1004
+ end
1070
1005
 
1071
- # @return [Integer]
1072
- attr_accessor :size
1006
+ # A query that matches all indexed documents.
1007
+ class MatchAllQuery < SearchQuery
1008
+ # @yieldparam [MatchAllQuery] self
1009
+ def initialize
1010
+ super()
1011
+ yield self if block_given?
1012
+ end
1073
1013
 
1074
- # @param [String] field name of the field
1075
- def initialize(field)
1076
- @field = field
1077
- yield self if block_given?
1078
- end
1014
+ # @return [Hash<Symbol, #to_json>]
1015
+ def to_h
1016
+ {:match_all => nil}
1017
+ end
1018
+ end
1079
1019
 
1080
- # @api private
1081
- def to_json(*args)
1082
- {field: field, size: size}.to_json(*args)
1083
- end
1020
+ # Prepare {MatchNoneQuery} body
1021
+ #
1022
+ # @yieldparam [MatchNoneQuery] query
1023
+ #
1024
+ # @return [MatchNoneQuery]
1025
+ def self.match_none(&block)
1026
+ MatchNoneQuery.new(&block)
1027
+ end
1028
+
1029
+ # A query that matches nothing.
1030
+ class MatchNoneQuery < SearchQuery
1031
+ # @yieldparam [MatchNoneQuery] self
1032
+ def initialize
1033
+ super()
1034
+ yield self if block_given?
1084
1035
  end
1085
1036
 
1086
- class SearchFacetNumericRange
1087
- # @return [String]
1088
- attr_reader :field
1037
+ # @return [Hash<Symbol, #to_json>]
1038
+ def to_h
1039
+ {:match_none => nil}
1040
+ end
1041
+ end
1042
+ end
1089
1043
 
1090
- # @return [Integer]
1091
- attr_accessor :size
1044
+ # @!macro uncommitted
1045
+ class VectorSearch
1046
+ # Constructs a +VectorSearch+ instance, which allows one or more individual vector queries to be executed.
1047
+ #
1048
+ # @param [VectorQuery, Array<VectorQuery>] vector_queries vector queries/query to execute
1049
+ # @param [Options::VectorSearch] options
1050
+ def initialize(vector_queries, options = Options::VectorSearch::DEFAULT)
1051
+ @vector_queries = vector_queries.respond_to?(:each) ? vector_queries : [vector_queries]
1052
+ @options = options
1053
+ end
1092
1054
 
1093
- # @param [String] field name of the field
1094
- def initialize(field)
1095
- @field = field
1096
- @ranges = []
1097
- yield self if block_given?
1098
- end
1055
+ # @api private
1056
+ def to_backend
1057
+ {vector_queries: @vector_queries.map(&:to_h).to_json}.merge(@options.to_backend)
1058
+ end
1059
+ end
1099
1060
 
1100
- # @param [String] name the name of the range
1101
- # @param [Integer, Float, nil] min lower bound of the range (pass +nil+ if there is no lower bound)
1102
- # @param [Integer, Float, nil] max upper bound of the range (pass +nil+ if there is no upper bound)
1103
- def add(name, min, max)
1104
- @ranges.append({name: name, min: min, max: max})
1105
- end
1061
+ # @!macro uncommitted
1062
+ class VectorQuery
1063
+ # @return [Integer, nil]
1064
+ attr_accessor :num_candidates
1065
+
1066
+ # @return [Float, nil]
1067
+ attr_accessor :boost
1068
+
1069
+ # Constructs a +VectorQuery+ instance
1070
+ #
1071
+ # @param [String] vector_field_name the document field that contains the vector.
1072
+ # @param [Array<Float>] vector_query the vector query to run.
1073
+ #
1074
+ # @yieldparam [MatchPhraseQuery] self
1075
+ def initialize(vector_field_name, vector_query)
1076
+ @vector_field_name = vector_field_name
1077
+ @vector_query = vector_query
1078
+
1079
+ yield self if block_given?
1080
+ end
1106
1081
 
1107
- # @api private
1108
- def to_json(*args)
1109
- {field: field, size: size, numeric_ranges: @ranges}.to_json(*args)
1110
- end
1082
+ # @api private
1083
+ def to_h
1084
+ if !num_candidates.nil? && num_candidates < 1
1085
+ raise Error::InvalidArgument,
1086
+ "Number of candidates must be at least 1, #{num_candidates} given"
1111
1087
  end
1112
1088
 
1113
- class SearchFacetDateRange
1114
- # @return [String]
1115
- attr_reader :field
1089
+ {
1090
+ field: @vector_field_name,
1091
+ vector: @vector_query,
1092
+ k: num_candidates || 3,
1093
+ boost: boost,
1094
+ }.compact
1095
+ end
1116
1096
 
1117
- # @return [Integer]
1118
- attr_accessor :size
1097
+ # @api private
1098
+ def to_json(*args)
1099
+ to_h.to_json(*args)
1100
+ end
1101
+ end
1119
1102
 
1120
- # @param [String] field name of the field
1121
- def initialize(field)
1122
- @field = field
1123
- @ranges = []
1124
- yield self if block_given?
1125
- end
1103
+ class SearchSort
1104
+ # @yieldparam [SearchSortScore]
1105
+ # @return [SearchSortScore]
1106
+ def self.score(&block)
1107
+ SearchSortScore.new(&block)
1108
+ end
1126
1109
 
1127
- DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z"
1110
+ # @yieldparam [SearchSortId]
1111
+ # @return [SearchSortScore]
1112
+ def self.id(&block)
1113
+ SearchSortId.new(&block)
1114
+ end
1128
1115
 
1129
- # @param [String] name the name of the range
1130
- # @param [Time, String, nil] start_time lower bound of the range (pass +nil+ if there is no lower bound)
1131
- # @param [Time, String, nil] end_time lower bound of the range (pass +nil+ if there is no lower bound)
1132
- def add(name, start_time, end_time)
1133
- start_time = start_time.strftime(DATE_FORMAT_RFC3339) if start_time && start_time.respond_to?(:strftime)
1134
- end_time = end_time.strftime(DATE_FORMAT_RFC3339) if end_time && end_time.respond_to?(:strftime)
1135
- @ranges.append({name: name, start: start_time, end: end_time})
1136
- end
1116
+ # @param [String] name field name
1117
+ # @yieldparam [SearchSortField]
1118
+ # @return [SearchSortField]
1119
+ def self.field(name, &block)
1120
+ SearchSortField.new(name, &block)
1121
+ end
1137
1122
 
1138
- # @api private
1139
- def to_json(*args)
1140
- {field: field, size: size, date_ranges: @ranges}.to_json(*args)
1141
- end
1123
+ # @param [String] name field name
1124
+ # @param [Float] longitude
1125
+ # @param [Float] latitude
1126
+ # @yieldparam [SearchSortField]
1127
+ # @return [SearchSortGeoDistance]
1128
+ def self.geo_distance(name, longitude, latitude, &block)
1129
+ SearchSortGeoDistance.new(name, longitude, latitude, &block)
1130
+ end
1131
+
1132
+ class SearchSortScore < SearchSort
1133
+ # @return [Boolean] if descending order should be applied
1134
+ attr_accessor :desc
1135
+
1136
+ # @yieldparam [SearchSortScore]
1137
+ def initialize
1138
+ super
1139
+ yield self if block_given?
1140
+ end
1141
+
1142
+ # @api private
1143
+ def to_json(*args)
1144
+ {by: :score, desc: desc}.to_json(*args)
1142
1145
  end
1143
1146
  end
1144
1147
 
1145
- class SearchOptions
1146
- # @return [Integer] Timeout in milliseconds
1147
- attr_accessor :timeout
1148
+ class SearchSortId < SearchSort
1149
+ # @return [Boolean] if descending order should be applied
1150
+ attr_accessor :desc
1148
1151
 
1149
- # @return [Integer] limits the number of matches returned from the complete result set.
1150
- attr_accessor :limit
1152
+ # @yieldparam [SearchSortId]
1153
+ def initialize
1154
+ super
1155
+ yield self if block_given?
1156
+ end
1151
1157
 
1152
- # @return [Integer] indicates how many matches are skipped on the result set before starting to return the matches
1153
- attr_accessor :skip
1158
+ # @api private
1159
+ def to_json(*args)
1160
+ {by: :id, desc: desc}.to_json(*args)
1161
+ end
1162
+ end
1154
1163
 
1155
- # @return [Boolean] triggers inclusion of additional search result score explanations. (Default: +false+)
1156
- attr_accessor :explain
1164
+ class SearchSortField < SearchSort
1165
+ # @return [String] name of the field to sort by
1166
+ attr_reader :field
1157
1167
 
1158
- # @return [:html, :ansi] the style of highlighting in the result excerpts (if not specified, the server default will be used)
1159
- attr_accessor :highlight_style
1168
+ # @return [Boolean] if descending order should be applied
1169
+ attr_accessor :desc
1160
1170
 
1161
- # @return [Array<String>] list of the fields to highlight
1162
- attr_accessor :highlight_fields
1171
+ # @return [:auto, :string, :number, :date]
1172
+ attr_accessor :type
1163
1173
 
1164
- # @return [Array<String>] list of field values which should be retrieved for result documents, provided they were stored while indexing
1165
- attr_accessor :fields
1174
+ # @return [:first, :last] where the documents with missing field should be placed
1175
+ attr_accessor :missing
1166
1176
 
1167
- # Customizes the consistency guarantees for this query
1168
- #
1169
- # @note overrides consistency level set by {#consistent_with}
1170
- #
1171
- # [+:not_bounded+] The engine will return whatever state it has at the time of query
1172
- #
1173
- # @param [:not_bounded] level the scan consistency to be used for this query
1174
- #
1175
- # @return [void]
1176
- def scan_consistency=(level)
1177
- @mutation_state = nil if @mutation_state
1178
- @scan_consistency = level
1177
+ # @return [:default, :min, :max]
1178
+ attr_accessor :mode
1179
+
1180
+ # @param [String] field the name of the filed for ordering
1181
+ # @yieldparam [SearchSortField]
1182
+ def initialize(field)
1183
+ super()
1184
+ @field = field
1185
+ yield self if block_given?
1179
1186
  end
1180
1187
 
1181
- # Sets the mutation tokens this query should be consistent with
1182
- #
1183
- # @note overrides consistency level set by {#scan_consistency=}
1184
- #
1185
- # @param [MutationState] mutation_state the mutation state containing the mutation tokens
1186
- #
1187
- # @return [void]
1188
- def consistent_with(mutation_state)
1189
- @scan_consistency = nil if @scan_consistency
1190
- @mutation_state = mutation_state
1188
+ # @api private
1189
+ def to_json(*args)
1190
+ {by: :field, field: field, desc: desc, type: type, missing: missing, mode: mode}.to_json(*args)
1191
1191
  end
1192
+ end
1192
1193
 
1193
- # Ordering rules to apply to the results
1194
- #
1195
- # The list might contain either strings or special objects, that derive from {SearchSort}.
1196
- #
1197
- # In case of String, the value represents the name of the field with optional +-+ in front of the name, which will turn on descending mode for this field. One field is special is +"_score"+ which will sort results by their score.
1198
- #
1199
- # When nothing specified, the Server will order results by their score descending, which is equivalent of +"-_score"+.
1200
- #
1201
- # @return [Array<String, SearchSort>] list of ordering object
1202
- attr_accessor :sort
1194
+ class SearchSortGeoDistance < SearchSort
1195
+ # @return [String] name of the field to sort by
1196
+ attr_reader :field
1203
1197
 
1204
- # Facets allow to aggregate information collected on a particular result set
1205
- #
1206
- # @return [Hash<String => SearchFacet>]
1207
- attr_accessor :facets
1198
+ # @return [Boolean] if descending order should be applied
1199
+ attr_accessor :desc
1200
+
1201
+ # @return [Float]
1202
+ attr_reader :longitude
1203
+
1204
+ # @return [Float]
1205
+ attr_reader :latitude
1208
1206
 
1209
- # @return [JsonTranscoder] transcoder to use for the results
1210
- attr_accessor :transcoder
1207
+ # @return [:meters, :miles, :centimeters, :millimeters, :kilometers, :nauticalmiles, :feet, :yards, :inch]
1208
+ attr_accessor :unit
1211
1209
 
1212
- # @yieldparam [SearchOptions] self
1213
- def initialize
1214
- @explain = false
1215
- @transcoder = JsonTranscoder.new
1216
- @scan_consistency = nil
1217
- @mutation_state = nil
1210
+ # @param [String] field field name
1211
+ # @param [Float] longitude
1212
+ # @param [Float] latitude
1213
+ # @yieldparam [SearchSortGeoDistance]
1214
+ def initialize(field, longitude, latitude)
1215
+ super()
1216
+ @field = field
1217
+ @longitude = longitude
1218
+ @latitude = latitude
1218
1219
  yield self if block_given?
1219
1220
  end
1221
+
1222
+ # @api private
1223
+ def to_json(*args)
1224
+ {by: :geo_distance, field: field, desc: desc, location: [longitude, latitude], unit: unit}.to_json(*args)
1225
+ end
1220
1226
  end
1227
+ end
1221
1228
 
1222
- class SearchRowLocation
1223
- # @return [String]
1224
- attr_accessor :field
1229
+ class SearchFacet
1230
+ # @param [String] field_name
1231
+ # @return [SearchFacetTerm]
1232
+ def self.term(field_name, &block)
1233
+ SearchFacetTerm.new(field_name, &block)
1234
+ end
1225
1235
 
1226
- # @return [String]
1227
- attr_accessor :term
1236
+ # @param [String] field_name
1237
+ # @return [SearchFacetNumericRange]
1238
+ def self.numeric_range(field_name, &block)
1239
+ SearchFacetNumericRange.new(field_name, &block)
1240
+ end
1241
+
1242
+ # @param [String] field_name
1243
+ # @return [SearchFacetDateRange]
1244
+ def self.date_range(field_name, &block)
1245
+ SearchFacetDateRange.new(field_name, &block)
1246
+ end
1228
1247
 
1229
- # @return [Integer] the position of the term within the field, starting at 1
1230
- attr_accessor :position
1248
+ class SearchFacetTerm
1249
+ # @return [String]
1250
+ attr_reader :field
1231
1251
 
1232
- # @return [Integer] start byte offset of the term in the field
1233
- attr_accessor :start_offset
1252
+ # @return [Integer]
1253
+ attr_accessor :size
1234
1254
 
1235
- # @return [Integer] end byte offset of the term in the field
1236
- attr_accessor :end_offset
1255
+ # @param [String] field name of the field
1256
+ def initialize(field)
1257
+ @field = field
1258
+ yield self if block_given?
1259
+ end
1237
1260
 
1238
- # @return [Array<Integer>] the positions of the term within any elements.
1239
- attr_accessor :array_positions
1261
+ # @api private
1262
+ def to_json(*args)
1263
+ {field: field, size: size}.to_json(*args)
1264
+ end
1240
1265
  end
1241
1266
 
1242
- class SearchRowLocations
1243
- # Lists all locations (any field, any term)
1244
- #
1245
- # @return [Array<SearchRowLocation>]
1246
- def get_all
1247
- @locations
1248
- end
1267
+ class SearchFacetNumericRange
1268
+ # @return [String]
1269
+ attr_reader :field
1249
1270
 
1250
- # Lists all locations for a given field (any term)
1251
- #
1252
- # @return [Array<SearchRowLocation>]
1253
- def get_for_field(name)
1254
- @locations.select { |location| location.field == name }
1271
+ # @return [Integer]
1272
+ attr_accessor :size
1273
+
1274
+ # @param [String] field name of the field
1275
+ def initialize(field)
1276
+ @field = field
1277
+ @ranges = []
1278
+ yield self if block_given?
1255
1279
  end
1256
1280
 
1257
- # Lists all locations for a given field and term
1258
- #
1259
- # @return [Array<SearchRowLocation>]
1260
- def get_for_field_and_term(name, term)
1261
- @locations.select { |location| location.field == name && location.term == term }
1281
+ # @param [String] name the name of the range
1282
+ # @param [Integer, Float, nil] min lower bound of the range (pass +nil+ if there is no lower bound)
1283
+ # @param [Integer, Float, nil] max upper bound of the range (pass +nil+ if there is no upper bound)
1284
+ def add(name, min, max)
1285
+ @ranges.append({name: name, min: min, max: max})
1262
1286
  end
1263
1287
 
1264
- # Lists the fields in this location
1265
- #
1266
- # @return [Array<String>]
1267
- def fields
1268
- @locations.map { |location| location.field }.uniq
1288
+ # @api private
1289
+ def to_json(*args)
1290
+ {field: field, size: size, numeric_ranges: @ranges}.to_json(*args)
1269
1291
  end
1292
+ end
1270
1293
 
1271
- # Lists all terms in this locations, considering all fields
1272
- #
1273
- # @return [Array<String>]
1274
- def terms
1275
- @locations.map { |location| location.term }.uniq
1294
+ class SearchFacetDateRange
1295
+ # @return [String]
1296
+ attr_reader :field
1297
+
1298
+ # @return [Integer]
1299
+ attr_accessor :size
1300
+
1301
+ # @param [String] field name of the field
1302
+ def initialize(field)
1303
+ super()
1304
+ @field = field
1305
+ @ranges = []
1306
+ yield self if block_given?
1276
1307
  end
1277
1308
 
1278
- # Lists the terms for a given field
1279
- #
1280
- # @return [Array<String>]
1281
- def terms_for_field(name)
1282
- get_for_field(name).map { |location| location.term }.uniq
1309
+ DATE_FORMAT_RFC3339 = "%Y-%m-%dT%H:%M:%S%:z".freeze
1310
+
1311
+ # @param [String] name the name of the range
1312
+ # @param [Time, String, nil] start_time lower bound of the range (pass +nil+ if there is no lower bound)
1313
+ # @param [Time, String, nil] end_time lower bound of the range (pass +nil+ if there is no lower bound)
1314
+ def add(name, start_time, end_time)
1315
+ start_time = start_time.strftime(DATE_FORMAT_RFC3339) if start_time.respond_to?(:strftime)
1316
+ end_time = end_time.strftime(DATE_FORMAT_RFC3339) if end_time.respond_to?(:strftime)
1317
+ @ranges.append({name: name, start: start_time, end: end_time})
1283
1318
  end
1284
1319
 
1285
- # @param [Array<SearchRowLocation>] locations
1286
- def initialize(locations)
1287
- @locations = locations
1320
+ # @api private
1321
+ def to_json(*args)
1322
+ {field: field, size: size, date_ranges: @ranges}.to_json(*args)
1288
1323
  end
1289
1324
  end
1325
+ end
1290
1326
 
1291
- # An individual facet result has both metadata and details, as each facet can define ranges into which results are
1292
- # categorized
1293
- class SearchFacetResult
1294
- # @return [String]
1295
- attr_accessor :name
1327
+ class SearchRowLocation
1328
+ # @return [String]
1329
+ attr_accessor :field
1296
1330
 
1297
- # @return [String]
1298
- attr_accessor :field
1331
+ # @return [String]
1332
+ attr_accessor :term
1299
1333
 
1300
- # @return [Integer]
1301
- attr_accessor :total
1334
+ # @return [Integer] the position of the term within the field, starting at 1
1335
+ attr_accessor :position
1302
1336
 
1303
- # @return [Integer]
1304
- attr_accessor :missing
1337
+ # @return [Integer] start byte offset of the term in the field
1338
+ attr_accessor :start_offset
1305
1339
 
1306
- # @return [Integer]
1307
- attr_accessor :other
1340
+ # @return [Integer] end byte offset of the term in the field
1341
+ attr_accessor :end_offset
1308
1342
 
1309
- class TermFacetResult < SearchFacetResult
1310
- # @return [Array<TermFacet>]
1311
- attr_accessor :terms
1343
+ # @return [Array<Integer>] the positions of the term within any elements.
1344
+ attr_accessor :array_positions
1312
1345
 
1313
- def type
1314
- :term_facet
1315
- end
1346
+ # @yieldparam [SearchRowLocation] self
1347
+ def initialize
1348
+ yield self if block_given?
1349
+ end
1350
+ end
1316
1351
 
1317
- # @yieldparam [TermFacetResult] self
1318
- def initialize
1319
- yield self if block_given?
1320
- end
1352
+ class SearchRowLocations
1353
+ # Lists all locations (any field, any term)
1354
+ #
1355
+ # @return [Array<SearchRowLocation>]
1356
+ def get_all
1357
+ @locations
1358
+ end
1321
1359
 
1322
- class TermFacet
1323
- # @return [String]
1324
- attr_reader :term
1360
+ # Lists all locations for a given field (any term)
1361
+ #
1362
+ # @return [Array<SearchRowLocation>]
1363
+ def get_for_field(name)
1364
+ @locations.select { |location| location.field == name }
1365
+ end
1325
1366
 
1326
- # @return [Integer]
1327
- attr_reader :count
1367
+ # Lists all locations for a given field and term
1368
+ #
1369
+ # @return [Array<SearchRowLocation>]
1370
+ def get_for_field_and_term(name, term)
1371
+ @locations.select { |location| location.field == name && location.term == term }
1372
+ end
1328
1373
 
1329
- def initialize(term, count)
1330
- @term = term
1331
- @count = count
1332
- end
1333
- end
1374
+ # Lists the fields in this location
1375
+ #
1376
+ # @return [Array<String>]
1377
+ def fields
1378
+ @locations.map(&:field).uniq
1379
+ end
1380
+
1381
+ # Lists all terms in this locations, considering all fields
1382
+ #
1383
+ # @return [Array<String>]
1384
+ def terms
1385
+ @locations.map(&:term).uniq
1386
+ end
1387
+
1388
+ # Lists the terms for a given field
1389
+ #
1390
+ # @return [Array<String>]
1391
+ def terms_for_field(name)
1392
+ get_for_field(name).map(&:term).uniq
1393
+ end
1394
+
1395
+ # @param [Array<SearchRowLocation>] locations
1396
+ def initialize(locations)
1397
+ super()
1398
+ @locations = locations
1399
+ end
1400
+ end
1401
+
1402
+ # An individual facet result has both metadata and details, as each facet can define ranges into which results are categorized
1403
+ class SearchFacetResult
1404
+ # @return [String]
1405
+ attr_accessor :name
1406
+
1407
+ # @return [String]
1408
+ attr_accessor :field
1409
+
1410
+ # @return [Integer]
1411
+ attr_accessor :total
1412
+
1413
+ # @return [Integer]
1414
+ attr_accessor :missing
1415
+
1416
+ # @return [Integer]
1417
+ attr_accessor :other
1418
+
1419
+ class TermFacetResult < SearchFacetResult
1420
+ # @return [Array<TermFacet>]
1421
+ attr_accessor :terms
1422
+
1423
+ def type
1424
+ :term_facet
1425
+ end
1426
+
1427
+ # @yieldparam [TermFacetResult] self
1428
+ def initialize
1429
+ super
1430
+ yield self if block_given?
1334
1431
  end
1335
1432
 
1336
- class DateRangeFacetResult < SearchFacetResult
1337
- # @return [Array<DateRangeFacet>]
1338
- attr_accessor :date_ranges
1433
+ class TermFacet
1434
+ # @return [String]
1435
+ attr_reader :term
1339
1436
 
1340
- def type
1341
- :date_range_facet
1342
- end
1437
+ # @return [Integer]
1438
+ attr_reader :count
1343
1439
 
1344
- # @yieldparam [DateRangeFacetResult] self
1345
- def initialize
1346
- yield self if block_given?
1440
+ def initialize(term, count)
1441
+ super()
1442
+ @term = term
1443
+ @count = count
1347
1444
  end
1445
+ end
1446
+ end
1447
+
1448
+ class DateRangeFacetResult < SearchFacetResult
1449
+ # @return [Array<DateRangeFacet>]
1450
+ attr_accessor :date_ranges
1451
+
1452
+ def type
1453
+ :date_range_facet
1454
+ end
1455
+
1456
+ # @yieldparam [DateRangeFacetResult] self
1457
+ def initialize
1458
+ super
1459
+ yield self if block_given?
1460
+ end
1348
1461
 
1349
- class DateRangeFacet
1350
- # @return [String]
1351
- attr_reader :name
1462
+ class DateRangeFacet
1463
+ # @return [String]
1464
+ attr_reader :name
1352
1465
 
1353
- # @return [Integer]
1354
- attr_reader :count
1466
+ # @return [Integer]
1467
+ attr_reader :count
1355
1468
 
1356
- # @return [String]
1357
- attr_reader :start_time
1469
+ # @return [String]
1470
+ attr_reader :start_time
1358
1471
 
1359
- # @return [String]
1360
- attr_reader :end_time
1472
+ # @return [String]
1473
+ attr_reader :end_time
1361
1474
 
1362
- def initialize(name, count, start_time, end_time)
1363
- @name = name
1364
- @count = count
1365
- @start_time = start_time
1366
- @end_time = end_time
1367
- end
1475
+ def initialize(name, count, start_time, end_time)
1476
+ @name = name
1477
+ @count = count
1478
+ @start_time = start_time
1479
+ @end_time = end_time
1368
1480
  end
1369
1481
  end
1482
+ end
1370
1483
 
1371
- class NumericRangeFacetResult < SearchFacetResult
1372
- # @return [Array<NumericRangeFacet>]
1373
- attr_accessor :numeric_ranges
1484
+ class NumericRangeFacetResult < SearchFacetResult
1485
+ # @return [Array<NumericRangeFacet>]
1486
+ attr_accessor :numeric_ranges
1374
1487
 
1375
- def type
1376
- :numeric_range_facet
1377
- end
1488
+ def type
1489
+ :numeric_range_facet
1490
+ end
1378
1491
 
1379
- # @yieldparam [NumericRangeFacetResult] self
1380
- def initialize
1381
- yield self if block_given?
1382
- end
1492
+ # @yieldparam [NumericRangeFacetResult] self
1493
+ def initialize
1494
+ super
1495
+ yield self if block_given?
1496
+ end
1383
1497
 
1384
- class NumericRangeFacet
1385
- # @return [String]
1386
- attr_reader :name
1498
+ class NumericRangeFacet
1499
+ # @return [String]
1500
+ attr_reader :name
1387
1501
 
1388
- # @return [Integer]
1389
- attr_reader :count
1502
+ # @return [Integer]
1503
+ attr_reader :count
1390
1504
 
1391
- # @return [Integer, Float, nil]
1392
- attr_reader :min
1505
+ # @return [Integer, Float, nil]
1506
+ attr_reader :min
1393
1507
 
1394
- # @return [Integer, Float, nil]
1395
- attr_reader :max
1508
+ # @return [Integer, Float, nil]
1509
+ attr_reader :max
1396
1510
 
1397
- def initialize(name, count, min, max)
1398
- @name = name
1399
- @count = count
1400
- @min = min
1401
- @max = max
1402
- end
1511
+ def initialize(name, count, min, max)
1512
+ @name = name
1513
+ @count = count
1514
+ @min = min
1515
+ @max = max
1403
1516
  end
1404
1517
  end
1405
1518
  end
1519
+ end
1406
1520
 
1407
- class SearchRow
1408
- # @return [String] name of the index
1409
- attr_accessor :index
1521
+ class SearchRow
1522
+ # @return [String] name of the index
1523
+ attr_accessor :index
1410
1524
 
1411
- # @return [String] document identifier
1412
- attr_accessor :id
1525
+ # @return [String] document identifier
1526
+ attr_accessor :id
1413
1527
 
1414
- # @return [Float]
1415
- attr_accessor :score
1528
+ # @return [Float]
1529
+ attr_accessor :score
1416
1530
 
1417
- # @return [SearchRowLocations]
1418
- attr_accessor :locations
1531
+ # @return [SearchRowLocations]
1532
+ attr_accessor :locations
1419
1533
 
1420
- # @return [Hash]
1421
- attr_accessor :explanation
1534
+ # @return [Hash]
1535
+ attr_accessor :explanation
1422
1536
 
1423
- # @return [Hash<String => Array<String>>]
1424
- attr_accessor :fragments
1537
+ # @return [Hash<String => Array<String>>]
1538
+ attr_accessor :fragments
1425
1539
 
1426
- # @return [JsonTranscoder] transcoder to use for the fields
1427
- attr_accessor :transcoder
1540
+ # @return [JsonTranscoder] transcoder to use for the fields
1541
+ attr_accessor :transcoder
1428
1542
 
1429
- def fields
1430
- @transcoder.decode(@fields, :json) if @fields && @transcoder
1431
- end
1543
+ def fields
1544
+ @transcoder.decode(@fields, :json) if @fields && @transcoder
1545
+ end
1432
1546
 
1433
- # @yieldparam [SearchRow] self
1434
- def initialize
1435
- @fields = nil
1436
- yield self if block_given?
1437
- end
1547
+ # @yieldparam [SearchRow] self
1548
+ def initialize
1549
+ @fields = nil
1550
+ yield self if block_given?
1438
1551
  end
1552
+ end
1439
1553
 
1440
- class SearchMetrics
1441
- # @return [Integer] time spent executing the query (in milliseconds)
1442
- attr_accessor :took
1554
+ class SearchMetrics
1555
+ # @return [Integer] time spent executing the query (in milliseconds)
1556
+ attr_accessor :took
1443
1557
 
1444
- # @return [Integer]
1445
- attr_accessor :total_rows
1558
+ # @return [Integer]
1559
+ attr_accessor :total_rows
1446
1560
 
1447
- # @return [Float]
1448
- attr_accessor :max_score
1561
+ # @return [Float]
1562
+ attr_accessor :max_score
1449
1563
 
1450
- # @return [Integer]
1451
- attr_accessor :success_partition_count
1564
+ # @return [Integer]
1565
+ attr_accessor :success_partition_count
1452
1566
 
1453
- # @return [Integer]
1454
- attr_accessor :error_partition_count
1567
+ # @return [Integer]
1568
+ attr_accessor :error_partition_count
1455
1569
 
1456
- # @return [Integer]
1457
- def total_partition_count
1458
- success_partition_count + error_partition_count
1459
- end
1570
+ # @return [Integer]
1571
+ def total_partition_count
1572
+ success_partition_count + error_partition_count
1460
1573
  end
1574
+ end
1461
1575
 
1462
- class SearchMetaData
1463
- # @return [SearchMetrics]
1464
- attr_accessor :metrics
1576
+ class SearchMetaData
1577
+ # @return [SearchMetrics]
1578
+ attr_accessor :metrics
1465
1579
 
1466
- # @return [Hash<String => String>]
1467
- attr_accessor :errors
1580
+ # @return [Hash<String => String>]
1581
+ attr_accessor :errors
1468
1582
 
1469
- # @yieldparam [SearchMetaData] self
1470
- def initialize
1471
- @metrics = SearchMetrics.new
1472
- yield self if block_given?
1473
- end
1583
+ # @yieldparam [SearchMetaData] self
1584
+ def initialize
1585
+ @metrics = SearchMetrics.new
1586
+ yield self if block_given?
1474
1587
  end
1588
+ end
1475
1589
 
1476
- class SearchResult
1477
- # @return [Array<SearchRow>]
1478
- attr_accessor :rows
1590
+ class SearchResult
1591
+ # @return [Array<SearchRow>]
1592
+ attr_accessor :rows
1479
1593
 
1480
- # @return [Hash<String => SearchFacetResult>]
1481
- attr_accessor :facets
1594
+ # @return [Hash<String => SearchFacetResult>]
1595
+ attr_accessor :facets
1482
1596
 
1483
- # @return [SearchMetaData]
1484
- attr_accessor :meta_data
1597
+ # @return [SearchMetaData]
1598
+ attr_accessor :meta_data
1485
1599
 
1486
- # @yieldparam [SearchResult] self
1487
- def initialize
1488
- yield self if block_given?
1489
- end
1600
+ def success?
1601
+ meta_data.errors.nil? || meta_data.errors.empty?
1602
+ end
1603
+
1604
+ # @yieldparam [SearchResult] self
1605
+ def initialize
1606
+ yield self if block_given?
1490
1607
  end
1491
1608
  end
1609
+
1610
+ class Cluster
1611
+ SearchQuery = Couchbase::SearchQuery
1612
+ SearchSort = Couchbase::SearchSort
1613
+ SearchFacet = Couchbase::SearchFacet
1614
+ SearchRowLocation = Couchbase::SearchRowLocation
1615
+ SearchRowLocations = Couchbase::SearchRowLocations
1616
+ SearchFacetResult = Couchbase::SearchFacetResult
1617
+ SearchRow = Couchbase::SearchRow
1618
+ SearchResult = Couchbase::SearchResult
1619
+ SearchMetaData = Couchbase::SearchMetaData
1620
+ SearchMetrics = Couchbase::SearchMetrics
1621
+ end
1492
1622
  end