gapic-generator 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +3 -3
- data/lib/gapic/presenters/gem_presenter.rb +28 -2
- data/lib/gapic/presenters/method_presenter.rb +3 -2
- data/lib/gapic/presenters/package_presenter.rb +4 -3
- data/lib/gapic/presenters/service_presenter.rb +12 -6
- data/templates/default/gem/gemspec.erb +4 -5
- data/templates/default/lib/_service.erb +2 -0
- data/templates/default/service/client/_client.erb +2 -0
- data/templates/default/service/client/_config.erb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19f79c05f4e657a010e8f9663f1eefeadabd18ef4b456c137a8278bf8bb13a9e
|
4
|
+
data.tar.gz: ebe4c8c756ebd1e18424eccffc986f92bcda6f694a50842ed394c7d62d91f252
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a6689a12fcd02390d416ab8ada828f79e182e87a3230361fe32e3a8eea42d7555039b61c699903d25a5fb244c9db1857bbad1d816ea04e4de329d67c4359c74
|
7
|
+
data.tar.gz: fac5801f38bb3fd92b871c2c5ab9b2d7ee7138d0947ffb0c9695bd21ea0561762fee5dc462de884b5182cbf4627c5c9148783474584b6cb4c9dc7727313f7f1c
|
data/CHANGELOG.md
CHANGED
@@ -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.
|
@@ -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
|
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
|
-
|
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
|
-
|
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
|
-
|
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 =
|
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
|
-
|
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.
|
27
|
-
|
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?
|
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.
|
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-
|
13
|
+
date: 2020-06-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|