diff --git a/lib/couchbase/collection.rb b/lib/couchbase/collection.rb index b3f5e770..2be7fb71 100644 --- a/lib/couchbase/collection.rb +++ b/lib/couchbase/collection.rb @@ -136,7 +136,7 @@ def get_multi(ids, options = Options::GetMulti::DEFAULT) # @return [GetResult] def get_and_lock(id, lock_time, options = Options::GetAndLock::DEFAULT) resp = @backend.document_get_and_lock(bucket_name, @scope_name, @name, id, - lock_time.respond_to?(:in_seconds) ? lock_time.public_send(:in_seconds) : lock_time, + lock_time.respond_to?(:in_seconds) ? lock_time.in_seconds : lock_time, options.to_backend) GetResult.new do |res| res.transcoder = options.transcoder diff --git a/lib/couchbase/protostellar/request_generator/kv.rb b/lib/couchbase/protostellar/request_generator/kv.rb index a6206ce0..440b3618 100644 --- a/lib/couchbase/protostellar/request_generator/kv.rb +++ b/lib/couchbase/protostellar/request_generator/kv.rb @@ -110,7 +110,7 @@ def get_and_lock_request(id, lock_time, options) proto_req = Generated::KV::V1::GetAndLockRequest.new( **location, key: id, - lock_time: lock_time.respond_to?(:in_seconds) ? lock_time.public_send(:in_seconds) : lock_time + lock_time: lock_time.respond_to?(:in_seconds) ? lock_time.in_seconds : lock_time ) create_kv_request(proto_req, :get_and_lock, options) diff --git a/lib/couchbase/search_options.rb b/lib/couchbase/search_options.rb index cdfa5f63..ea114783 100644 --- a/lib/couchbase/search_options.rb +++ b/lib/couchbase/search_options.rb @@ -406,7 +406,7 @@ def initialize # @return [Hash] def to_h - raise ArgumentError, "either start_time or end_time must be set for DateRangeQuery" if @start_time.nil? && @end_time.nil? + raise Error::InvalidArgument, "either start_time or end_time must be set for DateRangeQuery" if @start_time.nil? && @end_time.nil? data = {} data[:boost] = boost if boost @@ -483,7 +483,7 @@ def initialize # @return [Hash] def to_h - raise ArgumentError, "either min or max must be set for NumericRangeQuery" if @min.nil? && @max.nil? + raise Error::InvalidArgument, "either min or max must be set for NumericRangeQuery" if @min.nil? && @max.nil? data = {} data[:boost] = boost if boost @@ -551,7 +551,7 @@ def initialize # @return [Hash] def to_h - raise ArgumentError, "either min or max must be set for TermRangeQuery" if @min.nil? && @max.nil? + raise Error::InvalidArgument, "either min or max must be set for TermRangeQuery" if @min.nil? && @max.nil? data = {} data[:boost] = boost if boost @@ -754,7 +754,7 @@ def empty? # @return [Hash] def to_h - raise ArgumentError, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty? + raise Error::InvalidArgument, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty? data = {:conjuncts => @queries.uniq.map(&:to_h)} data[:boost] = boost if boost @@ -799,11 +799,11 @@ def empty? # @return [Hash] def to_h - raise ArgumentError, "compound disjunction query must have sub-queries" if @queries.nil? || @queries.empty? + raise Error::InvalidArgument, "compound disjunction query must have sub-queries" if @queries.nil? || @queries.empty? data = {:disjuncts => @queries.uniq.map(&:to_h)} if min - raise ArgumentError, "disjunction query has fewer sub-queries than configured minimum" if @queries.size < min + raise Error::InvalidArgument, "disjunction query has fewer sub-queries than configured minimum" if @queries.size < min data[:min] = min end @@ -828,7 +828,7 @@ class BooleanQuery < SearchQuery # @yieldparam [BooleanQuery] self def initialize - super() + super @must = ConjunctionQuery.new @must_not = DisjunctionQuery.new @should = DisjunctionQuery.new @@ -861,7 +861,10 @@ def should(*queries) # @return [Hash] def to_h - raise ArgumentError, "BooleanQuery must have at least one non-empty sub-query" if @must.empty? && @must_not.empty? && @should.empty? + if @must.empty? && @must_not.empty? && @should.empty? + raise Error::InvalidArgument, + "BooleanQuery must have at least one non-empty sub-query" + end data = {} data[:must] = @must.to_h unless @must.empty? @@ -1007,7 +1010,7 @@ def self.match_all(&block) class MatchAllQuery < SearchQuery # @yieldparam [MatchAllQuery] self def initialize - super() + super yield self if block_given? end @@ -1030,7 +1033,7 @@ def self.match_none(&block) class MatchNoneQuery < SearchQuery # @yieldparam [MatchNoneQuery] self def initialize - super() + super yield self if block_given? end diff --git a/lib/couchbase/utils/time.rb b/lib/couchbase/utils/time.rb index e5341bbb..57c2a321 100644 --- a/lib/couchbase/utils/time.rb +++ b/lib/couchbase/utils/time.rb @@ -59,7 +59,7 @@ def extract_duration(number_or_duration) return number_or_duration if number_or_duration.class == Integer # rubocop:disable Style/ClassEqualityComparison avoid overrides of #is_a?, #kind_of? if number_or_duration.respond_to?(:in_milliseconds) - number_or_duration.public_send(:in_milliseconds) + number_or_duration.in_milliseconds else number_or_duration end.to_i diff --git a/test/ds_list_test.rb b/test/ds_list_test.rb index ce13e7c0..ffc68e36 100644 --- a/test/ds_list_test.rb +++ b/test/ds_list_test.rb @@ -42,9 +42,8 @@ def test_new_list_empty def test_new_list_yields_no_elements doc_id = uniq_id(:foo) list = CouchbaseList.new(doc_id, @collection) - actual = [] - list.each do |element| - actual << element + actual = list.map do |element| + element end assert_empty actual diff --git a/test/ds_map_test.rb b/test/ds_map_test.rb index 0d7d1d76..9b0b0513 100644 --- a/test/ds_map_test.rb +++ b/test/ds_map_test.rb @@ -42,9 +42,8 @@ def test_new_map_empty def test_new_map_yields_no_elements doc_id = uniq_id(:foo) map = CouchbaseMap.new(doc_id, @collection) - actual = [] - map.each do |key, value| - actual << [key, value] + actual = map.map do |key, value| + [key, value] end assert_empty actual @@ -128,9 +127,8 @@ def test_changes_the_value_by_key refute_empty map map["baz"] = "bar" - pairs = [] - map.each do |*pair| - pairs << pair + pairs = map.map do |*pair| + pair end assert_equal [%w[baz bar], ["foo", 100]], pairs.sort diff --git a/test/ds_queue_test.rb b/test/ds_queue_test.rb index 3da94042..a0b48ec2 100644 --- a/test/ds_queue_test.rb +++ b/test/ds_queue_test.rb @@ -42,9 +42,8 @@ def test_new_queue_empty def test_new_queue_yields_no_elements doc_id = uniq_id(:foo) queue = CouchbaseQueue.new(doc_id, @collection) - actual = [] - queue.each do |element| - actual << element + actual = queue.map do |element| + element end assert_empty actual diff --git a/test/ds_set_test.rb b/test/ds_set_test.rb index f012d09c..2250bf60 100644 --- a/test/ds_set_test.rb +++ b/test/ds_set_test.rb @@ -42,9 +42,8 @@ def test_new_set_empty def test_new_set_yields_no_elements doc_id = uniq_id(:foo) set = CouchbaseSet.new(doc_id, @collection) - actual = [] - set.each do |element| - actual << element + actual = set.map do |element| + element end assert_empty actual @@ -57,9 +56,8 @@ def test_add_does_not_create_duplicates set.add("foo") set.add("foo") - actual = [] - set.each do |element| - actual << element + actual = set.map do |element| + element end assert_equal %w[foo], actual