1%YAML 1.2 2--- | 3 # -*- ruby -*- 4 # encoding: utf-8 5 $LOAD_PATH.push File.expand_path('../src/ruby/lib', __FILE__) 6 require 'grpc/version' 7 8 Gem::Specification.new do |s| 9 s.name = 'grpc' 10 s.version = GRPC::VERSION 11 s.authors = ['gRPC Authors'] 12 s.email = 'grpc-io@googlegroups.com' 13 s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby' 14 s.summary = 'GRPC system in Ruby' 15 s.description = 'Send RPCs from Ruby using GRPC' 16 s.license = 'Apache-2.0' 17 18 s.required_ruby_version = '>= 2.4.0' 19 20 s.files = %w( Makefile .yardopts ) 21 s.files += %w( etc/roots.pem ) 22 s.files += Dir.glob('src/ruby/bin/**/*') 23 s.files += Dir.glob('src/ruby/ext/**/*') 24 s.files += Dir.glob('src/ruby/lib/**/*').reject do |f| 25 # Binaries are included by rake-compiler and would lead to circular dependencies here 26 File.fnmatch("**/?.?/grpc_c.so", f) 27 end 28 s.files += Dir.glob('src/ruby/pb/**/*').reject do |f| 29 f.match(%r{^src/ruby/pb/test}) 30 end 31 s.files += Dir.glob('include/grpc/**/*') 32 s.test_files = Dir.glob('src/ruby/spec/**/*') 33 s.bindir = 'src/ruby/bin' 34 s.require_paths = %w( src/ruby/lib src/ruby/bin src/ruby/pb ) 35 s.platform = Gem::Platform::RUBY 36 37 s.add_dependency 'google-protobuf', '~> ${settings.protobuf_major_minor_version}' 38 s.add_dependency 'googleapis-common-protos-types', '~> 1.0' 39 40 s.add_development_dependency 'bundler', '>= 1.9' 41 s.add_development_dependency 'facter', '~> 2.4' 42 s.add_development_dependency 'logging', '~> 2.0' 43 s.add_development_dependency 'simplecov', '~> 0.14.1' 44 s.add_development_dependency 'rake', '~> 13.0' 45 s.add_development_dependency 'rake-compiler', '~> 1.1' 46 s.add_development_dependency 'rake-compiler-dock', '~> 1.0' 47 s.add_development_dependency 'rspec', '~> 3.6' 48 s.add_development_dependency 'rubocop', '~> 0.49.1' 49 s.add_development_dependency 'signet', '~> 0.7' 50 s.add_development_dependency 'googleauth', '>= 0.5.1', '< 0.10' 51 52 s.extensions = %w(src/ruby/ext/grpc/extconf.rb) 53 <% 54 files = [] 55 ruby_deps = ruby_gem.get('deps', []) 56 lib_maps = {lib.name: lib for lib in libs} 57 for dep in ruby_deps[:]: 58 ruby_deps.extend(lib_maps[dep].transitive_deps) 59 for dep in ruby_deps: 60 lib = lib_maps[dep] 61 files.extend(lib.get('public_headers', []) + lib.headers + lib.src) 62 files = sorted(set(files)) 63 %> 64 % for file in files: 65 s.files += %w( ${file} ) 66 % endfor 67 end 68