diff --git a/Rakefile b/Rakefile index bda52d9e..efc248d9 100644 --- a/Rakefile +++ b/Rakefile @@ -27,7 +27,7 @@ end desc "Compile binary extension" task :compile do require 'tempfile' - Dir.chdir(Dir.tmpdir) do + Dir.chdir(Dir.tmpdir) do # rubocop:disable ThreadSafety/DirChdir sh "ruby '#{File.join(__dir__, 'ext', 'extconf.rb')}'" end end @@ -52,9 +52,9 @@ end desc "Encode git revision into 'ext/extconf.rb' template (dependency of 'build' task)" task :render_git_revision do - library_revision = Dir.chdir(__dir__) { `git rev-parse HEAD`.strip } - core_revision = Dir.chdir(File.join(__dir__, 'ext', 'couchbase')) { `git rev-parse HEAD`.strip } - core_describe = Dir.chdir(File.join(__dir__, 'ext', 'couchbase')) do + library_revision = Dir.chdir(__dir__) { `git rev-parse HEAD`.strip } # rubocop:disable ThreadSafety/DirChdir + core_revision = Dir.chdir(File.join(__dir__, 'ext', 'couchbase')) { `git rev-parse HEAD`.strip } # rubocop:disable ThreadSafety/DirChdir + core_describe = Dir.chdir(File.join(__dir__, 'ext', 'couchbase')) do # rubocop:disable ThreadSafety/DirChdir `git fetch --tags >/dev/null 2>&1` `git describe --long --always HEAD`.strip end diff --git a/bin/jenkins/repackage-extension.rb b/bin/jenkins/repackage-extension.rb index 30ed3b83..95ab5ac9 100755 --- a/bin/jenkins/repackage-extension.rb +++ b/bin/jenkins/repackage-extension.rb @@ -51,7 +51,7 @@ def bundle(target_dir) end if first_gemspec - Dir.chdir(first_gemspec.full_gem_path) do + Dir.chdir(first_gemspec.full_gem_path) do # rubocop:disable ThreadSafety/DirChdir File.write("lib/couchbase/libcouchbase.rb", <<-RUBY) begin require_relative "\#{RUBY_VERSION[/(\\d+\\.\\d+)/]}/libcouchbase" @@ -101,7 +101,7 @@ def repackage(gemspec) # build new gem output_gem = nil - Dir.chdir gemspec.full_gem_path do + Dir.chdir gemspec.full_gem_path do # rubocop:disable ThreadSafety/DirChdir output_gem = Gem::Package.build(gemspec, true) end diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt index efb35db2..8d9186c8 100644 --- a/ext/CMakeLists.txt +++ b/ext/CMakeLists.txt @@ -61,11 +61,14 @@ add_library( rcb_version.cxx rcb_views.cxx) target_include_directories(couchbase PRIVATE ${PROJECT_BINARY_DIR}/generated) -target_include_directories(couchbase PRIVATE SYSTEM ${RUBY_INCLUDE_DIR} - ${PROJECT_SOURCE_DIR}/couchbase - ${PROJECT_BINARY_DIR}/couchbase/generated - ${PROJECT_SOURCE_DIR}/couchbase/third_party/cxx_function - ${PROJECT_SOURCE_DIR}/couchbase/third_party/expected/include) +target_include_directories( + couchbase + PRIVATE SYSTEM + ${RUBY_INCLUDE_DIR} + ${PROJECT_SOURCE_DIR}/couchbase + ${PROJECT_BINARY_DIR}/couchbase/generated + ${PROJECT_SOURCE_DIR}/couchbase/third_party/cxx_function + ${PROJECT_SOURCE_DIR}/couchbase/third_party/expected/include) target_link_libraries( couchbase PRIVATE project_options diff --git a/ext/couchbase b/ext/couchbase index b7086c05..c24912fc 160000 --- a/ext/couchbase +++ b/ext/couchbase @@ -1 +1 @@ -Subproject commit b7086c059659d3f1e03a8d9bff266fad0c6c9b89 +Subproject commit c24912fcbbec5c5ebe3c2b54bb3013300ae69ed7 diff --git a/ext/extconf.rb b/ext/extconf.rb index 4459e906..701fb2b0 100644 --- a/ext/extconf.rb +++ b/ext/extconf.rb @@ -104,6 +104,7 @@ def sys(*cmd) elsif ENV["CB_STATIC_OPENSSL"] cmake_flags << "-DCOUCHBASE_CXX_CLIENT_STATIC_OPENSSL=ON" end +cmake_flags << "-DCOUCHBASE_CXX_CLIENT_WRAPPER_UNIFIED_ID=ruby/#{Couchbase::VERSION[:sdk]}" unless cmake_flags.grep(/BORINGSSL/) case RbConfig::CONFIG["target_os"] diff --git a/ext/rcb_analytics.cxx b/ext/rcb_analytics.cxx index 26c6215a..6279d136 100644 --- a/ext/rcb_analytics.cxx +++ b/ext/rcb_analytics.cxx @@ -911,17 +911,17 @@ cb_Backend_analytics_link_get_all(VALUE self, VALUE options) cb_throw_error( resp.ctx, fmt::format(R"(unable to retrieve links type={}, dataverse="{}", name="{}")", - req.link_type, - req.link_name, - req.dataverse_name)); + req.link_type.value_or("-"), + req.link_name.value_or("-"), + req.dataverse_name.value_or("-"))); } else { const auto& first_error = resp.errors.front(); cb_throw_error( resp.ctx, fmt::format(R"(unable to retrieve links type={}, dataverse="{}", name="{}" ({}: {}))", - req.link_type, - req.link_name, - req.dataverse_name, + req.link_type.value_or("-"), + req.link_name.value_or("-"), + req.dataverse_name.value_or("-"), first_error.code, first_error.message)); } diff --git a/lib/couchbase/logger.rb b/lib/couchbase/logger.rb index 9a3d6c16..a5b1ca05 100644 --- a/lib/couchbase/logger.rb +++ b/lib/couchbase/logger.rb @@ -46,7 +46,7 @@ def self.log_level # Return logger associated with the library def self.logger - @logger # rubocop:disable ThreadSafety/InstanceVariableInClassMethod + @logger # rubocop:disable ThreadSafety/ClassInstanceVariable end # Associate logger with the library @@ -67,8 +67,8 @@ def self.logger # # @since 3.4.0 def self.set_logger(logger, adapter_class: nil, verbose: false, level: :info) - @logger = logger # rubocop:disable ThreadSafety/InstanceVariableInClassMethod - if @logger.nil? # rubocop:disable ThreadSafety/InstanceVariableInClassMethod + @logger = logger # rubocop:disable ThreadSafety/ClassInstanceVariable + if @logger.nil? # rubocop:disable ThreadSafety/ClassInstanceVariable Backend.install_logger_shim(nil) return end