couchbase 3.5.7-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +202 -0
  3. data/README.md +154 -0
  4. data/ext/extconf.rb +0 -0
  5. data/lib/active_support/cache/couchbase_store.rb +342 -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/3.4/libcouchbase.so +0 -0
  10. data/lib/couchbase/analytics_options.rb +109 -0
  11. data/lib/couchbase/authenticator.rb +66 -0
  12. data/lib/couchbase/binary_collection.rb +130 -0
  13. data/lib/couchbase/binary_collection_options.rb +26 -0
  14. data/lib/couchbase/bucket.rb +138 -0
  15. data/lib/couchbase/cluster.rb +451 -0
  16. data/lib/couchbase/cluster_registry.rb +49 -0
  17. data/lib/couchbase/collection.rb +664 -0
  18. data/lib/couchbase/collection_options.rb +401 -0
  19. data/lib/couchbase/config_profiles.rb +57 -0
  20. data/lib/couchbase/configuration.rb +58 -0
  21. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  22. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  23. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  24. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  25. data/lib/couchbase/datastructures.rb +26 -0
  26. data/lib/couchbase/deprecations.rb +61 -0
  27. data/lib/couchbase/diagnostics.rb +183 -0
  28. data/lib/couchbase/errors.rb +414 -0
  29. data/lib/couchbase/fork_hooks.rb +32 -0
  30. data/lib/couchbase/json_transcoder.rb +41 -0
  31. data/lib/couchbase/key_value_scan.rb +119 -0
  32. data/lib/couchbase/libcouchbase.rb +6 -0
  33. data/lib/couchbase/logger.rb +87 -0
  34. data/lib/couchbase/management/analytics_index_manager.rb +1129 -0
  35. data/lib/couchbase/management/bucket_manager.rb +445 -0
  36. data/lib/couchbase/management/collection_manager.rb +472 -0
  37. data/lib/couchbase/management/collection_query_index_manager.rb +224 -0
  38. data/lib/couchbase/management/query_index_manager.rb +619 -0
  39. data/lib/couchbase/management/scope_search_index_manager.rb +200 -0
  40. data/lib/couchbase/management/search_index_manager.rb +426 -0
  41. data/lib/couchbase/management/user_manager.rb +470 -0
  42. data/lib/couchbase/management/view_index_manager.rb +239 -0
  43. data/lib/couchbase/management.rb +31 -0
  44. data/lib/couchbase/mutation_state.rb +65 -0
  45. data/lib/couchbase/options.rb +2894 -0
  46. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  47. data/lib/couchbase/protostellar/bucket.rb +55 -0
  48. data/lib/couchbase/protostellar/client.rb +99 -0
  49. data/lib/couchbase/protostellar/cluster.rb +171 -0
  50. data/lib/couchbase/protostellar/collection.rb +152 -0
  51. data/lib/couchbase/protostellar/connect_options.rb +63 -0
  52. data/lib/couchbase/protostellar/error_handling.rb +203 -0
  53. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +61 -0
  54. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +35 -0
  55. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +57 -0
  56. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +36 -0
  57. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +61 -0
  58. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +37 -0
  59. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +72 -0
  60. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +44 -0
  61. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +52 -0
  62. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +30 -0
  63. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +70 -0
  64. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +36 -0
  65. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +97 -0
  66. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +46 -0
  67. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +57 -0
  68. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +30 -0
  69. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +52 -0
  70. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +30 -0
  71. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +99 -0
  72. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +30 -0
  73. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +57 -0
  74. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +36 -0
  75. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +51 -0
  76. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +30 -0
  77. data/lib/couchbase/protostellar/generated.rb +9 -0
  78. data/lib/couchbase/protostellar/management/bucket_manager.rb +67 -0
  79. data/lib/couchbase/protostellar/management/collection_manager.rb +94 -0
  80. data/lib/couchbase/protostellar/management/collection_query_index_manager.rb +124 -0
  81. data/lib/couchbase/protostellar/management/query_index_manager.rb +112 -0
  82. data/lib/couchbase/protostellar/management.rb +24 -0
  83. data/lib/couchbase/protostellar/request.rb +78 -0
  84. data/lib/couchbase/protostellar/request_behaviour.rb +42 -0
  85. data/lib/couchbase/protostellar/request_generator/admin/bucket.rb +124 -0
  86. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +94 -0
  87. data/lib/couchbase/protostellar/request_generator/admin/query.rb +130 -0
  88. data/lib/couchbase/protostellar/request_generator/admin.rb +24 -0
  89. data/lib/couchbase/protostellar/request_generator/kv.rb +474 -0
  90. data/lib/couchbase/protostellar/request_generator/query.rb +133 -0
  91. data/lib/couchbase/protostellar/request_generator/search.rb +387 -0
  92. data/lib/couchbase/protostellar/request_generator.rb +26 -0
  93. data/lib/couchbase/protostellar/response_converter/admin/bucket.rb +55 -0
  94. data/lib/couchbase/protostellar/response_converter/admin/collection.rb +42 -0
  95. data/lib/couchbase/protostellar/response_converter/admin/query.rb +59 -0
  96. data/lib/couchbase/protostellar/response_converter/admin.rb +24 -0
  97. data/lib/couchbase/protostellar/response_converter/kv.rb +151 -0
  98. data/lib/couchbase/protostellar/response_converter/query.rb +84 -0
  99. data/lib/couchbase/protostellar/response_converter/search.rb +136 -0
  100. data/lib/couchbase/protostellar/response_converter.rb +26 -0
  101. data/lib/couchbase/protostellar/retry/action.rb +38 -0
  102. data/lib/couchbase/protostellar/retry/orchestrator.rb +60 -0
  103. data/lib/couchbase/protostellar/retry/reason.rb +67 -0
  104. data/lib/couchbase/protostellar/retry/strategies/best_effort.rb +49 -0
  105. data/lib/couchbase/protostellar/retry/strategies.rb +26 -0
  106. data/lib/couchbase/protostellar/retry.rb +28 -0
  107. data/lib/couchbase/protostellar/scope.rb +57 -0
  108. data/lib/couchbase/protostellar/timeout_defaults.rb +30 -0
  109. data/lib/couchbase/protostellar/timeouts.rb +83 -0
  110. data/lib/couchbase/protostellar.rb +29 -0
  111. data/lib/couchbase/query_options.rb +122 -0
  112. data/lib/couchbase/railtie.rb +47 -0
  113. data/lib/couchbase/raw_binary_transcoder.rb +39 -0
  114. data/lib/couchbase/raw_json_transcoder.rb +40 -0
  115. data/lib/couchbase/raw_string_transcoder.rb +42 -0
  116. data/lib/couchbase/scope.rb +258 -0
  117. data/lib/couchbase/search_options.rb +1650 -0
  118. data/lib/couchbase/subdoc.rb +293 -0
  119. data/lib/couchbase/transcoder_flags.rb +64 -0
  120. data/lib/couchbase/utils/generic_logger_adapter.rb +40 -0
  121. data/lib/couchbase/utils/stdlib_logger_adapter.rb +67 -0
  122. data/lib/couchbase/utils/time.rb +71 -0
  123. data/lib/couchbase/utils.rb +23 -0
  124. data/lib/couchbase/version.rb +25 -0
  125. data/lib/couchbase/view_options.rb +67 -0
  126. data/lib/couchbase.rb +32 -0
  127. data/lib/rails/generators/couchbase/config/config_generator.rb +29 -0
  128. metadata +190 -0
@@ -0,0 +1,119 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023. Couchbase, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ module Couchbase
18
+ # A scan term used to specify the bounds of a range scan
19
+ class ScanTerm
20
+ attr_accessor :term # @return [ScanTerm]
21
+ attr_accessor :exclusive # @return [Boolean]
22
+
23
+ # Creates an instance of a ScanTerm
24
+ #
25
+ # @param [String] term the key pattern of this term
26
+ # @param [Boolean] exclusive specifies if this term is excluded while scanning, the bounds are included by default
27
+ def initialize(term, exclusive: false)
28
+ @term = term
29
+ @exclusive = exclusive
30
+ end
31
+
32
+ # @api private
33
+ def to_backend
34
+ {
35
+ term: @term,
36
+ exclusive: @exclusive,
37
+ }
38
+ end
39
+ end
40
+
41
+ # A range scan performs a scan on a range of keys
42
+ class RangeScan
43
+ attr_accessor :from # @return [ScanTerm, nil]
44
+ attr_accessor :to # @return [ScanTerm, nil]
45
+
46
+ # Creates an instance of a RangeScan scan type
47
+ #
48
+ # @param [ScanTerm, String, nil] from the lower bound of the range, if set
49
+ # @param [ScanTerm, String, nil] to the upper bound of the range, if set
50
+ def initialize(from: nil, to: nil)
51
+ @from =
52
+ if from.nil? || from.instance_of?(ScanTerm)
53
+ from
54
+ else
55
+ ScanTerm(from)
56
+ end
57
+ @to =
58
+ if to.nil? || to.instance_of?(ScanTerm)
59
+ to
60
+ else
61
+ ScanTerm(to)
62
+ end
63
+ end
64
+
65
+ # @api private
66
+ def to_backend
67
+ {
68
+ scan_type: :range,
69
+ from: @from&.to_backend,
70
+ to: @to&.to_backend,
71
+ }
72
+ end
73
+ end
74
+
75
+ # A prefix scan performs a scan that includes all documents whose keys start with the given prefix
76
+ class PrefixScan
77
+ attr_accessor :prefix # @return [String]
78
+
79
+ # Creates an instance of a PrefixScan scan type
80
+ #
81
+ # @param [String, nil] prefix the prefix all document keys should start with
82
+ def initialize(prefix)
83
+ @prefix = prefix
84
+ end
85
+
86
+ # @api private
87
+ def to_backend
88
+ {
89
+ scan_type: :prefix,
90
+ prefix: @prefix,
91
+ }
92
+ end
93
+ end
94
+
95
+ # A sampling scan performs a scan that randomly selects documents up to a configured limit
96
+ class SamplingScan
97
+ attr_accessor :limit # @return [Integer]
98
+ attr_accessor :seed # @return [Integer, nil]
99
+
100
+ # Creates an instance of a SamplingScan scan type
101
+ #
102
+ # @param [Integer] limit the maximum number of documents the sampling scan can return
103
+ # @param [Integer, nil] seed the seed used for the random number generator that selects the documents. If not set,
104
+ # a seed is generated at random
105
+ def initialize(limit, seed = nil)
106
+ @limit = limit
107
+ @seed = seed
108
+ end
109
+
110
+ # @api private
111
+ def to_backend
112
+ {
113
+ scan_type: :sampling,
114
+ limit: @limit,
115
+ seed: @seed,
116
+ }
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,6 @@
1
+ begin
2
+ require_relative "#{RUBY_VERSION[/(\d+\.\d+)/]}/libcouchbase"
3
+ rescue LoadError
4
+ raise LoadError, "unable to load couchbase extension for Ruby #{RUBY_VERSION}. Only available for 3.1, 3.2, 3.3, 3.4. " \
5
+ "Try to install couchbase from sources with 'gem install --platform ruby couchbase'"
6
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020-Present Couchbase, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require "logger"
18
+
19
+ module Couchbase
20
+ # Set log level
21
+ #
22
+ # @note The level might be also be set with environment variable +COUCHBASE_BACKEND_LOG_LEVEL+
23
+ #
24
+ # @param [Symbol] level new log level.
25
+ #
26
+ # Allowed levels (in order of decreasing verbosity):
27
+ # * +:trace+
28
+ # * +:debug+
29
+ # * +:info+ (default)
30
+ # * +:warn+
31
+ # * +:error+
32
+ # * +:critical+
33
+ # * +:off+
34
+ #
35
+ # @return [void]
36
+ def self.log_level=(level)
37
+ Backend.set_log_level(level)
38
+ end
39
+
40
+ # Get current log level
41
+ #
42
+ # @return [Symbol] current log level
43
+ def self.log_level
44
+ Backend.get_log_level
45
+ end
46
+
47
+ # Return logger associated with the library
48
+ def self.logger
49
+ @logger # rubocop:disable ThreadSafety/ClassInstanceVariable
50
+ end
51
+
52
+ # Associate logger with the library
53
+ #
54
+ # The log messages, that are generated by extension might come with out of order timestamps, in order to reduce number
55
+ # of switches between Ruby and Native code.
56
+ #
57
+ # @param [Logger] logger an object implementing logging interface, e.g. stdlib Logger, or something that responds to
58
+ # "level"-methods like +#debug+, +#error+, etc.
59
+ # @param [Class] adapter_class custom implementation of the logger adapter interface between extension and ruby code.
60
+ # See {Utils::StdlibLoggerAdapter} and {Utils::GenericLoggerAdapter}
61
+ # @param [Boolean] verbose if true, the message will also include source code location, where the message was
62
+ # generated (if available)
63
+ # @param [Symbol] level log level, see {::log_level=} for allowed values
64
+ #
65
+ # @example Specify custom logger and limit core messages to debug level
66
+ # Couchbase.set_logger(Logger.new(STDERR), level: :debug)
67
+ #
68
+ # @since 3.4.0
69
+ def self.set_logger(logger, adapter_class: nil, verbose: false, level: :info)
70
+ @logger = logger # rubocop:disable ThreadSafety/ClassInstanceVariable
71
+ if @logger.nil? # rubocop:disable ThreadSafety/ClassInstanceVariable
72
+ Backend.install_logger_shim(nil)
73
+ return
74
+ end
75
+ shim =
76
+ if adapter_class
77
+ adapter_class
78
+ elsif logger.is_a?(::Logger)
79
+ require "couchbase/utils/stdlib_logger_adapter"
80
+ Utils::StdlibLoggerAdapter
81
+ else
82
+ require "couchbase/utils/generic_logger_adapter"
83
+ Utils::GenericLoggerAdapter
84
+ end
85
+ Backend.install_logger_shim(shim.new(logger, verbose: verbose), level)
86
+ end
87
+ end