• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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