diff --git a/Rakefile b/Rakefile index 1b97d30546b..e313627e319 100755 --- a/Rakefile +++ b/Rakefile @@ -34,11 +34,11 @@ Rake::ExtensionTask.new('grpc_c', spec) do |ext| 'universal-darwin' ] ext.cross_compiling do |spec| - spec.files = %w( etc/roots.pem grpc_c.32.ruby grpc_c.64.ruby ) - spec.files += Dir.glob('src/ruby/bin/**/*') - spec.files += Dir.glob('src/ruby/ext/**/*') - spec.files += Dir.glob('src/ruby/lib/**/*') - spec.files += Dir.glob('src/ruby/pb/**/*') + spec.files = spec.files.select { + |file| file.start_with?( + "src/ruby/bin/", "src/ruby/ext/", "src/ruby/lib/", "src/ruby/pb/") + } + spec.files += %w( etc/roots.pem grpc_c.32.ruby grpc_c.64.ruby ) end end diff --git a/grpc.gemspec b/grpc.gemspec index 99a3fcd8c77..652b1f75440 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -19,15 +19,13 @@ Gem::Specification.new do |s| s.files += %w( etc/roots.pem ) s.files += Dir.glob('src/ruby/bin/**/*') s.files += Dir.glob('src/ruby/ext/**/*') - s.files += Dir.glob('src/ruby/lib/**/*').reject do |f| - # Binaries are included by rake-compiler and would lead to circular dependencies here - File.fnmatch("**/?.?/grpc_c.so", f) - end + s.files += Dir.glob('src/ruby/lib/**/*') s.files += Dir.glob('src/ruby/pb/**/*').reject do |f| f.match(%r{^src/ruby/pb/test}) end s.files += Dir.glob('include/grpc/**/*') s.test_files = Dir.glob('src/ruby/spec/**/*') + s.test_files += Dir.glob('src/ruby/pb/test/**/*') s.bindir = 'src/ruby/bin' s.require_paths = %w( src/ruby/lib src/ruby/bin src/ruby/pb ) s.platform = Gem::Platform::RUBY diff --git a/src/ruby/lib/grpc/grpc.rb b/src/ruby/lib/grpc/grpc.rb index f52efe36764..89944aea7fa 100644 --- a/src/ruby/lib/grpc/grpc.rb +++ b/src/ruby/lib/grpc/grpc.rb @@ -16,7 +16,7 @@ begin ruby_version_dirname = /(\d+\.\d+)/.match(RUBY_VERSION).to_s distrib_lib_dir = File.expand_path(ruby_version_dirname, File.dirname(__FILE__)) - if File.directory?(distrib_lib_dir) + if !Dir.glob("#{distrib_lib_dir}/grpc_c*").empty? require "#{distrib_lib_dir}/grpc_c" else require 'grpc/grpc_c' diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template index faf88f170ab..b43727c71c7 100644 --- a/templates/grpc.gemspec.template +++ b/templates/grpc.gemspec.template @@ -21,15 +21,13 @@ s.files += %w( etc/roots.pem ) s.files += Dir.glob('src/ruby/bin/**/*') s.files += Dir.glob('src/ruby/ext/**/*') - s.files += Dir.glob('src/ruby/lib/**/*').reject do |f| - # Binaries are included by rake-compiler and would lead to circular dependencies here - File.fnmatch("**/?.?/grpc_c.so", f) - end + s.files += Dir.glob('src/ruby/lib/**/*') s.files += Dir.glob('src/ruby/pb/**/*').reject do |f| f.match(%r{^src/ruby/pb/test}) end s.files += Dir.glob('include/grpc/**/*') s.test_files = Dir.glob('src/ruby/spec/**/*') + s.test_files += Dir.glob('src/ruby/pb/test/**/*') s.bindir = 'src/ruby/bin' s.require_paths = %w( src/ruby/lib src/ruby/bin src/ruby/pb ) s.platform = Gem::Platform::RUBY