gapic-generator 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3aaec7f146400572f3b4ad346c8a69849ff3903073eadabd7eec6f6e882d6bb9
4
- data.tar.gz: 39987ab08fe97c6e4acdcfe3357e398df99db73f2ab95960c8c1015456f79224
3
+ metadata.gz: 19f79c05f4e657a010e8f9663f1eefeadabd18ef4b456c137a8278bf8bb13a9e
4
+ data.tar.gz: ebe4c8c756ebd1e18424eccffc986f92bcda6f694a50842ed394c7d62d91f252
5
5
  SHA512:
6
- metadata.gz: 87bfd8d75d938d8e82ff4fc5b17aab92260dedb745faf47c5abda914920145d85a0415c43ddc57126bd7942fe1b76801ed53d4a2d0b14f851adb3539ce34d0c6
7
- data.tar.gz: 89e9820c8f7ba98c77165e3ff0fb38ae2b84b333873bf458ca7c87dca1e0a38c7a09f5940027fe081a2589ef429488ebd7bad94284bc343b918faf414486296b
6
+ metadata.gz: 4a6689a12fcd02390d416ab8ada828f79e182e87a3230361fe32e3a8eea42d7555039b61c699903d25a5fb244c9db1857bbad1d816ea04e4de329d67c4359c74
7
+ data.tar.gz: fac5801f38bb3fd92b871c2c5ab9b2d7ee7138d0947ffb0c9695bd21ea0561762fee5dc462de884b5182cbf4627c5c9148783474584b6cb4c9dc7727313f7f1c
@@ -1,5 +1,12 @@
1
1
  # Release History for gapic-generator
2
2
 
3
+ ### 0.6.0 / 2020-06-02
4
+
5
+ * Support for clients with generic endpoint and credentials.
6
+ * Support for adding extra dependencies.
7
+ * Fixed a Ruby warning when looking up RPC-scoped configs with no parent.
8
+ * Internal: Presenters reference their parent rather than creating new objects.
9
+
3
10
  ### 0.5.1 / 2020-05-21
4
11
 
5
12
  * Support a configuration for overriding service module names.
@@ -16,6 +16,6 @@
16
16
 
17
17
  module Gapic
18
18
  module Generator
19
- VERSION = "0.5.1"
19
+ VERSION = "0.6.0"
20
20
  end
21
21
  end
@@ -41,10 +41,10 @@ module Gapic
41
41
  # @return [Array<
42
42
  # Google::Protobuf::Compiler::CodeGeneratorResponse::File>]
43
43
  # The files that were generated for the API.
44
- def generate
44
+ def generate gem_presenter: nil
45
45
  files = []
46
46
 
47
- gem = Gapic::Presenters.gem_presenter @api
47
+ gem = gem_presenter || Gapic::Presenters.gem_presenter(@api)
48
48
 
49
49
  gem.packages.each do |package|
50
50
  # Package level files
@@ -54,7 +54,7 @@ module Gapic
54
54
  # Service level files
55
55
  files << g("service.erb", "lib/#{service.service_file_path}", service: service)
56
56
  files << g("service/client.erb", "lib/#{service.client_file_path}", service: service)
57
- files << g("service/credentials.erb", "lib/#{service.credentials_file_path}", service: service)
57
+ files << g("service/credentials.erb", "lib/#{service.credentials_file_path}", service: service) unless gem.generic_endpoint?
58
58
  files << g("service/paths.erb", "lib/#{service.paths_file_path}", service: service) if service.paths?
59
59
  files << g("service/operations.erb", "lib/#{service.operations_file_path}", service: service) if service.lro?
60
60
  files << g("service/test/client.erb", "test/#{service.test_client_file_path}", service: service)
@@ -33,7 +33,7 @@ module Gapic
33
33
  def packages
34
34
  @packages ||= begin
35
35
  packages = @api.generate_files.map(&:package).uniq.sort
36
- packages.map { |p| PackagePresenter.new @api, p }.delete_if(&:empty?)
36
+ packages.map { |p| PackagePresenter.new self, @api, p }.delete_if(&:empty?)
37
37
  end
38
38
  end
39
39
 
@@ -44,7 +44,7 @@ module Gapic
44
44
  def services
45
45
  @services ||= begin
46
46
  files = @api.generate_files
47
- files.map(&:services).flatten.map { |s| ServicePresenter.new @api, s }
47
+ files.map(&:services).flatten.map { |s| ServicePresenter.new self, @api, s }
48
48
  end
49
49
  end
50
50
 
@@ -147,10 +147,36 @@ module Gapic
147
147
  gem_config(:yard_strict) != "false"
148
148
  end
149
149
 
150
+ def generic_endpoint?
151
+ gem_config(:generic_endpoint) == "true"
152
+ end
153
+
150
154
  def entrypoint_require
151
155
  packages.first.package_require
152
156
  end
153
157
 
158
+ def license_name
159
+ "MIT"
160
+ end
161
+
162
+ def extra_files
163
+ ["README.md", "LICENSE.md", ".yardopts"]
164
+ end
165
+
166
+ def dependencies
167
+ deps = { "gapic-common" => "~> 0.2" }
168
+ deps["grpc-google-iam-v1"] = [">= 0.6.10", "< 2.0"] if iam_dependency?
169
+ extra_deps = gem_config :extra_dependencies
170
+ deps.merge! extra_deps if extra_deps
171
+ deps
172
+ end
173
+
174
+ def dependency_list
175
+ dependencies.to_a
176
+ .map { |name, requirements| [name, Array(requirements)] }
177
+ .sort_by { |name, _requirements| name }
178
+ end
179
+
154
180
  private
155
181
 
156
182
  def gem_config key
@@ -27,13 +27,14 @@ module Gapic
27
27
  class MethodPresenter
28
28
  include Gapic::Helpers::NamespaceHelper
29
29
 
30
- def initialize api, method
30
+ def initialize service_presenter, api, method
31
+ @service_presenter = service_presenter
31
32
  @api = api
32
33
  @method = method
33
34
  end
34
35
 
35
36
  def service
36
- ServicePresenter.new @api, @method.parent
37
+ @service_presenter
37
38
  end
38
39
 
39
40
  def name
@@ -27,13 +27,14 @@ module Gapic
27
27
  include Gapic::Helpers::FilepathHelper
28
28
  include Gapic::Helpers::NamespaceHelper
29
29
 
30
- def initialize api, package
30
+ def initialize gem_presenter, api, package
31
+ @gem_presenter = gem_presenter
31
32
  @api = api
32
33
  @package = package
33
34
  end
34
35
 
35
36
  def gem
36
- GemPresenter.new @api
37
+ @gem_presenter
37
38
  end
38
39
 
39
40
  def name
@@ -63,7 +64,7 @@ module Gapic
63
64
  normal_services = services.select { |s| @api.delegate_service_for(s).nil? }
64
65
  # But include common services that delegate to normal services in this package.
65
66
  common_services = normal_services.flat_map { |s| @api.common_services_for s }
66
- (normal_services + common_services).map { |s| ServicePresenter.new @api, s }
67
+ (normal_services + common_services).map { |s| ServicePresenter.new @gem_presenter, @api, s }
67
68
  end
68
69
  end
69
70
 
@@ -27,14 +27,15 @@ module Gapic
27
27
  include Gapic::Helpers::FilepathHelper
28
28
  include Gapic::Helpers::NamespaceHelper
29
29
 
30
- def initialize api, service, parent_service: nil
30
+ def initialize gem_presenter, api, service, parent_service: nil
31
+ @gem_presenter = gem_presenter
31
32
  @api = api
32
33
  @service = service
33
34
  @parent_service = parent_service
34
35
  end
35
36
 
36
37
  def gem
37
- GemPresenter.new @api
38
+ @gem_presenter
38
39
  end
39
40
 
40
41
  def file
@@ -42,12 +43,12 @@ module Gapic
42
43
  end
43
44
 
44
45
  def package
45
- PackagePresenter.new @api, @service.parent.package
46
+ PackagePresenter.new @gem_presenter, @api, @service.parent.package
46
47
  end
47
48
 
48
49
  def methods
49
50
  @methods ||= begin
50
- @service.methods.map { |m| MethodPresenter.new @api, m }
51
+ @service.methods.map { |m| MethodPresenter.new self, @api, m }
51
52
  end
52
53
  end
53
54
 
@@ -60,7 +61,7 @@ module Gapic
60
61
  def common_service_delegate
61
62
  unless defined? @common_service_delegate
62
63
  delegate = @api.delegate_service_for @service
63
- @common_service_delegate = delegate ? ServicePresenter.new(@api, delegate) : nil
64
+ @common_service_delegate = delegate ? ServicePresenter.new(@gem_presenter, @api, delegate) : nil
64
65
  end
65
66
  @common_service_delegate
66
67
  end
@@ -187,6 +188,7 @@ module Gapic
187
188
  end
188
189
 
189
190
  def client_endpoint
191
+ return nil if generic_endpoint?
190
192
  @parent_service&.client_endpoint ||
191
193
  common_service_delegate&.client_endpoint ||
192
194
  @service.host ||
@@ -194,6 +196,10 @@ module Gapic
194
196
  "localhost"
195
197
  end
196
198
 
199
+ def generic_endpoint?
200
+ gem.generic_endpoint?
201
+ end
202
+
197
203
  def client_scopes
198
204
  common_service_delegate&.client_scopes ||
199
205
  @service.scopes ||
@@ -314,7 +320,7 @@ module Gapic
314
320
 
315
321
  def lro_service
316
322
  lro = @service.parent.parent.files.find { |file| file.name == "google/longrunning/operations.proto" }
317
- return ServicePresenter.new @api, lro.services.first, parent_service: self unless lro.nil?
323
+ return ServicePresenter.new @gem_presenter, @api, lro.services.first, parent_service: self unless lro.nil?
318
324
  end
319
325
 
320
326
  def config_channel_args
@@ -12,20 +12,19 @@ Gem::Specification.new do |gem|
12
12
  gem.description = <%= gem.description.inspect %>
13
13
  gem.summary = <%= gem.summary.inspect %>
14
14
  gem.homepage = <%= gem.homepage.inspect %>
15
- gem.license = "MIT"
15
+ gem.license = <%= gem.license_name.inspect %>
16
16
 
17
17
  gem.platform = Gem::Platform::RUBY
18
18
 
19
19
  gem.files = `git ls-files -- lib/*`.split("\n") +
20
20
  `git ls-files -- proto_docs/*`.split("\n") +
21
- ["README.md", "LICENSE.md", ".yardopts"]
21
+ <%= gem.extra_files.inspect %>
22
22
  gem.require_paths = ["lib"]
23
23
 
24
24
  gem.required_ruby_version = ">= 2.4"
25
25
 
26
- gem.add_dependency "gapic-common", "~> 0.2"
27
- <%- if gem.iam_dependency? -%>
28
- gem.add_dependency "grpc-google-iam-v1", ">= 0.6.10", "< 2.0"
26
+ <%- gem.dependency_list.each do |name, requirements| -%>
27
+ gem.add_dependency <%= name.inspect %>, <%= requirements.map { |v| v.inspect }.join ", " %>
29
28
  <%- end -%>
30
29
 
31
30
  gem.add_development_dependency "google-style", "~> 1.24.0"
@@ -6,7 +6,9 @@ require "gapic/config/method"
6
6
 
7
7
  require "<%= service.gem.version_require %>"
8
8
 
9
+ <%- unless service.generic_endpoint? -%>
9
10
  require "<%= service.credentials_require %>"
11
+ <%- end -%>
10
12
  <%- if service.paths? -%>
11
13
  require "<%= service.paths_require %>"
12
14
  <%- end -%>
@@ -96,10 +96,12 @@ class <%= service.client_name %>
96
96
 
97
97
  # Create credentials
98
98
  credentials = @config.credentials
99
+ <%- unless service.generic_endpoint? -%>
99
100
  credentials ||= Credentials.default scope: @config.scope
100
101
  if credentials.is_a?(String) || credentials.is_a?(Hash)
101
102
  credentials = Credentials.new credentials, scope: @config.scope
102
103
  end
104
+ <%- end -%>
103
105
  @quota_project_id = @config.quota_project
104
106
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
105
107
 
@@ -115,7 +115,7 @@ class Configuration
115
115
  def rpcs
116
116
  @rpcs ||= begin
117
117
  parent_rpcs = nil
118
- parent_rpcs = @parent_config.rpcs if @parent_config&.respond_to? :rpcs
118
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
119
119
  Rpcs.new parent_rpcs
120
120
  end
121
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gapic-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernest Landrito
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-05-25 00:00:00.000000000 Z
13
+ date: 2020-06-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack