gapic-generator 0.4.0 → 0.6.1
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 +31 -0
- data/lib/gapic/file_formatter.rb +0 -1
- data/lib/gapic/formatting_utils.rb +6 -6
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +16 -14
- data/lib/gapic/helpers/filepath_helper.rb +1 -0
- data/lib/gapic/helpers/namespace_helper.rb +8 -1
- data/lib/gapic/{path_template.rb → path_pattern.rb} +9 -8
- data/lib/gapic/path_pattern/parser.rb +146 -0
- data/lib/gapic/path_pattern/pattern.rb +80 -0
- data/lib/gapic/path_pattern/segment.rb +276 -0
- data/lib/gapic/presenters/field_presenter.rb +9 -9
- data/lib/gapic/presenters/file_presenter.rb +1 -1
- data/lib/gapic/presenters/gem_presenter.rb +39 -3
- data/lib/gapic/presenters/method_presenter.rb +19 -19
- data/lib/gapic/presenters/package_presenter.rb +4 -3
- data/lib/gapic/presenters/resource_presenter.rb +48 -36
- data/lib/gapic/presenters/service_presenter.rb +20 -14
- data/lib/gapic/schema/api.rb +7 -0
- data/lib/gapic/schema/wrappers.rb +13 -19
- data/lib/gapic/uri_template.rb +36 -0
- data/lib/gapic/uri_template/parser.rb +50 -0
- data/templates/default/gem/gemfile.erb +3 -0
- data/templates/default/gem/gemspec.erb +7 -6
- data/templates/default/gem/rakefile.erb +1 -0
- data/templates/default/gem/test_helper.erb +8 -0
- data/templates/default/layouts/_ruby.erb +5 -4
- data/templates/default/lib/_service.erb +2 -0
- data/templates/default/proto_docs/_message.erb +2 -2
- data/templates/default/service/client/_client.erb +7 -4
- data/templates/default/service/client/_config.erb +33 -29
- data/templates/default/service/client/_credentials.erb +1 -1
- data/templates/default/service/client/_operations.erb +3 -1
- data/templates/default/service/client/method/def/_options_defaults.erb +2 -2
- data/templates/default/service/client/method/def/_request_normal.erb +2 -2
- data/templates/default/service/client/method/def/_request_streaming.erb +3 -3
- data/templates/default/service/client/method/def/_response_normal.erb +1 -1
- data/templates/default/service/client/method/def/_response_paged.erb +2 -2
- data/templates/default/service/client/method/docs/_error.erb +1 -1
- data/templates/default/service/client/method/docs/_request_normal.erb +2 -2
- data/templates/default/service/client/method/docs/_request_streaming.erb +2 -2
- data/templates/default/service/client/method/docs/_response.erb +1 -1
- data/templates/default/service/client/resource/_def.erb +1 -1
- data/templates/default/service/client/resource/_doc.erb +1 -1
- data/templates/default/service/client/resource/_multi.erb +4 -7
- data/templates/default/service/client/resource/_single.erb +2 -3
- data/templates/default/service/test/_resource.erb +16 -0
- data/templates/default/service/test/client.erb +2 -5
- data/templates/default/service/test/client_operations.erb +2 -5
- data/templates/default/service/test/client_paths.erb +15 -0
- metadata +12 -6
- data/lib/gapic/path_template/parser.rb +0 -83
- data/lib/gapic/path_template/segment.rb +0 -67
@@ -95,21 +95,21 @@ module Gapic
|
|
95
95
|
base_type =
|
96
96
|
if field.message?
|
97
97
|
type = message_ruby_type field.message
|
98
|
-
output ? type : "#{type}, Hash"
|
98
|
+
output ? type : "#{type}, ::Hash"
|
99
99
|
elsif field.enum?
|
100
100
|
# TODO: handle when arg message is nil and enum is the type
|
101
101
|
message_ruby_type field.enum
|
102
102
|
else
|
103
103
|
case field.type
|
104
|
-
when 1, 2 then "Float"
|
105
|
-
when 3, 4, 5, 6, 7, 13, 15, 16, 17, 18 then "Integer"
|
106
|
-
when 9, 12 then "String"
|
107
|
-
when 8 then "Boolean"
|
104
|
+
when 1, 2 then "::Float"
|
105
|
+
when 3, 4, 5, 6, 7, 13, 15, 16, 17, 18 then "::Integer"
|
106
|
+
when 9, 12 then "::String"
|
107
|
+
when 8 then "::Boolean"
|
108
108
|
else
|
109
|
-
"Object"
|
109
|
+
"::Object"
|
110
110
|
end
|
111
111
|
end
|
112
|
-
field.repeated? ? "Array<#{base_type}>" : base_type
|
112
|
+
field.repeated? ? "::Array<#{base_type}>" : base_type
|
113
113
|
end
|
114
114
|
|
115
115
|
def field_map_type entry_message, output
|
@@ -118,7 +118,7 @@ module Gapic
|
|
118
118
|
key_field = field if field.name == "key"
|
119
119
|
value_field = field if field.name == "value"
|
120
120
|
end
|
121
|
-
class_name = output ? "Google::Protobuf::Map" : "Hash"
|
121
|
+
class_name = output ? "::Google::Protobuf::Map" : "::Hash"
|
122
122
|
if key_field && value_field
|
123
123
|
key_type = field_doc_types key_field, output
|
124
124
|
value_type = field_doc_types value_field, output
|
@@ -141,7 +141,7 @@ module Gapic
|
|
141
141
|
when 9, 12 then "\"hello world\""
|
142
142
|
when 8 then "true"
|
143
143
|
else
|
144
|
-
"Object"
|
144
|
+
"::Object"
|
145
145
|
end
|
146
146
|
end
|
147
147
|
end
|
@@ -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
|
|
@@ -134,7 +134,17 @@ module Gapic
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def api_id
|
137
|
-
gem_config :api_id
|
137
|
+
raw_id = gem_config :api_id
|
138
|
+
return nil unless raw_id
|
139
|
+
raw_id.include?(".") ? raw_id : "#{raw_id}.googleapis.com"
|
140
|
+
end
|
141
|
+
|
142
|
+
def api_shortname
|
143
|
+
gem_config :api_shortname
|
144
|
+
end
|
145
|
+
|
146
|
+
def issue_tracker_url
|
147
|
+
gem_config :issue_tracker_url
|
138
148
|
end
|
139
149
|
|
140
150
|
def free_tier?
|
@@ -147,10 +157,36 @@ module Gapic
|
|
147
157
|
gem_config(:yard_strict) != "false"
|
148
158
|
end
|
149
159
|
|
160
|
+
def generic_endpoint?
|
161
|
+
gem_config(:generic_endpoint) == "true"
|
162
|
+
end
|
163
|
+
|
150
164
|
def entrypoint_require
|
151
165
|
packages.first.package_require
|
152
166
|
end
|
153
167
|
|
168
|
+
def license_name
|
169
|
+
"MIT"
|
170
|
+
end
|
171
|
+
|
172
|
+
def extra_files
|
173
|
+
["README.md", "LICENSE.md", ".yardopts"]
|
174
|
+
end
|
175
|
+
|
176
|
+
def dependencies
|
177
|
+
deps = { "gapic-common" => "~> 0.2" }
|
178
|
+
deps["grpc-google-iam-v1"] = [">= 0.6.10", "< 2.0"] if iam_dependency?
|
179
|
+
extra_deps = gem_config :extra_dependencies
|
180
|
+
deps.merge! extra_deps if extra_deps
|
181
|
+
deps
|
182
|
+
end
|
183
|
+
|
184
|
+
def dependency_list
|
185
|
+
dependencies.to_a
|
186
|
+
.map { |name, requirements| [name, Array(requirements)] }
|
187
|
+
.sort_by { |name, _requirements| name }
|
188
|
+
end
|
189
|
+
|
154
190
|
private
|
155
191
|
|
156
192
|
def gem_config key
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
17
|
require "active_support/inflector"
|
18
|
-
require "gapic/
|
18
|
+
require "gapic/uri_template"
|
19
19
|
require "gapic/ruby_info"
|
20
20
|
require "gapic/helpers/namespace_helper"
|
21
21
|
|
@@ -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
|
@@ -64,13 +65,13 @@ module Gapic
|
|
64
65
|
|
65
66
|
def doc_response_type
|
66
67
|
ret = return_type
|
67
|
-
ret = "Gapic::Operation" if lro?
|
68
|
+
ret = "::Gapic::Operation" if lro?
|
68
69
|
if server_streaming?
|
69
|
-
ret = "Enumerable<#{ret}>"
|
70
|
+
ret = "::Enumerable<#{ret}>"
|
70
71
|
elsif paged?
|
71
72
|
paged_type = paged_response_type
|
72
|
-
paged_type = "Gapic::Operation" if paged_type == "Google::Longrunning::Operation"
|
73
|
-
ret = "Gapic::PagedEnumerable<#{paged_type}>"
|
73
|
+
paged_type = "::Gapic::Operation" if paged_type == "::Google::Longrunning::Operation"
|
74
|
+
ret = "::Gapic::PagedEnumerable<#{paged_type}>"
|
74
75
|
end
|
75
76
|
ret
|
76
77
|
end
|
@@ -123,7 +124,7 @@ module Gapic
|
|
123
124
|
return [
|
124
125
|
OpenStruct.new(
|
125
126
|
name: "operation",
|
126
|
-
doc_types: "Gapic::Operation"
|
127
|
+
doc_types: "::Gapic::Operation"
|
127
128
|
)
|
128
129
|
]
|
129
130
|
end
|
@@ -134,7 +135,7 @@ module Gapic
|
|
134
135
|
),
|
135
136
|
OpenStruct.new(
|
136
137
|
name: "operation",
|
137
|
-
doc_types: "GRPC::ActiveCall::Operation"
|
138
|
+
doc_types: "::GRPC::ActiveCall::Operation"
|
138
139
|
)
|
139
140
|
]
|
140
141
|
end
|
@@ -150,9 +151,9 @@ module Gapic
|
|
150
151
|
end
|
151
152
|
|
152
153
|
def lro?
|
153
|
-
return paged_response_type == "Google::Longrunning::Operation" if paged?
|
154
|
+
return paged_response_type == "::Google::Longrunning::Operation" if paged?
|
154
155
|
|
155
|
-
message_ruby_type(@method.output) == "Google::Longrunning::Operation"
|
156
|
+
message_ruby_type(@method.output) == "::Google::Longrunning::Operation"
|
156
157
|
end
|
157
158
|
|
158
159
|
def client_streaming?
|
@@ -193,8 +194,7 @@ module Gapic
|
|
193
194
|
# @return [Array<String>] The segment key names.
|
194
195
|
#
|
195
196
|
def routing_params
|
196
|
-
|
197
|
-
segments.select { |s| s.is_a? Gapic::PathTemplate::Segment }.map(&:name)
|
197
|
+
Gapic::UriTemplate.parse_arguments method_path
|
198
198
|
end
|
199
199
|
|
200
200
|
def routing_params?
|
@@ -226,12 +226,12 @@ module Gapic
|
|
226
226
|
message_ruby_type arg.enum
|
227
227
|
else
|
228
228
|
case arg.type
|
229
|
-
when 1, 2 then "Float"
|
230
|
-
when 3, 4, 5, 6, 7, 13, 15, 16, 17, 18 then "Integer"
|
231
|
-
when 9, 12 then "String"
|
232
|
-
when 8 then "Boolean"
|
229
|
+
when 1, 2 then "::Float"
|
230
|
+
when 3, 4, 5, 6, 7, 13, 15, 16, 17, 18 then "::Integer"
|
231
|
+
when 9, 12 then "::String"
|
232
|
+
when 8 then "::Boolean"
|
233
233
|
else
|
234
|
-
"Object"
|
234
|
+
"::Object"
|
235
235
|
end
|
236
236
|
end
|
237
237
|
end
|
@@ -256,7 +256,7 @@ module Gapic
|
|
256
256
|
when 9, 12 then "\"hello world\""
|
257
257
|
when 8 then "true"
|
258
258
|
else
|
259
|
-
"Object"
|
259
|
+
"::Object"
|
260
260
|
end
|
261
261
|
end
|
262
262
|
end
|
@@ -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
|
|
@@ -14,8 +14,7 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "gapic/
|
18
|
-
require "ostruct"
|
17
|
+
require "gapic/path_pattern"
|
19
18
|
require "active_support/inflector"
|
20
19
|
|
21
20
|
module Gapic
|
@@ -28,20 +27,10 @@ module Gapic
|
|
28
27
|
def initialize resource
|
29
28
|
@resource = resource
|
30
29
|
|
31
|
-
@patterns = resource.pattern.map
|
32
|
-
segments = Gapic::PathTemplate.parse template
|
33
|
-
OpenStruct.new(
|
34
|
-
template: template,
|
35
|
-
segments: segments,
|
36
|
-
arguments: arguments_for(segments),
|
37
|
-
path_string: path_string_for(segments)
|
38
|
-
)
|
39
|
-
end
|
30
|
+
@patterns = resource.pattern.map { |pattern| PatternPresenter.new pattern }
|
40
31
|
|
41
32
|
# Keep only patterns that can be used to create path helpers
|
42
|
-
@patterns.
|
43
|
-
named_arg_patterns?(pattern.segments) || positional_args?(pattern.segments)
|
44
|
-
end
|
33
|
+
@patterns.filter!(&:useful_for_helpers?)
|
45
34
|
end
|
46
35
|
|
47
36
|
def name
|
@@ -60,33 +49,56 @@ module Gapic
|
|
60
49
|
"#{ActiveSupport::Inflector.underscore name}_path"
|
61
50
|
end
|
62
51
|
|
63
|
-
|
52
|
+
##
|
53
|
+
# A presenter for a particular pattern
|
54
|
+
#
|
55
|
+
class PatternPresenter
|
56
|
+
def initialize pattern_string
|
57
|
+
@pattern = pattern_string
|
58
|
+
@parsed_pattern = Gapic::PathPattern.parse pattern_string
|
59
|
+
@path_string = build_path_string
|
60
|
+
end
|
64
61
|
|
65
|
-
|
66
|
-
arg_segments(segments).map(&:name)
|
67
|
-
end
|
62
|
+
attr_reader :pattern, :path_string
|
68
63
|
|
69
|
-
|
70
|
-
|
71
|
-
|
64
|
+
def useful_for_helpers?
|
65
|
+
!@parsed_pattern.positional_segments? && !@parsed_pattern.nontrivial_pattern_segments?
|
66
|
+
end
|
72
67
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
"\#{#{segment.name}}"
|
77
|
-
else
|
78
|
-
# Should be a String
|
79
|
-
segment
|
80
|
-
end
|
81
|
-
end.join
|
82
|
-
end
|
68
|
+
def arguments
|
69
|
+
@parsed_pattern.arguments
|
70
|
+
end
|
83
71
|
|
84
|
-
|
85
|
-
|
86
|
-
|
72
|
+
def formal_arguments
|
73
|
+
@parsed_pattern.arguments.map { |name| "#{name}:" }.join ", "
|
74
|
+
end
|
75
|
+
|
76
|
+
def arguments_key
|
77
|
+
@parsed_pattern.arguments.sort.join ":"
|
78
|
+
end
|
79
|
+
|
80
|
+
def arguments_with_dummy_values
|
81
|
+
@parsed_pattern.arguments.each_with_index.map { |name, index| "#{name}: \"value#{index}\"" }.join ", "
|
82
|
+
end
|
87
83
|
|
88
|
-
|
89
|
-
|
84
|
+
def expected_path_for_dummy_values
|
85
|
+
index = 0
|
86
|
+
@parsed_pattern.segments.map do |segment|
|
87
|
+
if segment.provides_arguments?
|
88
|
+
segment_dummy_path = segment.expected_path_for_dummy_values index
|
89
|
+
index += segment.arguments.length
|
90
|
+
segment_dummy_path
|
91
|
+
else
|
92
|
+
segment.pattern
|
93
|
+
end
|
94
|
+
end.join "/"
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
def build_path_string
|
100
|
+
@parsed_pattern.segments.map(&:path_string).join "/"
|
101
|
+
end
|
90
102
|
end
|
91
103
|
end
|
92
104
|
end
|
@@ -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
|
@@ -74,7 +75,7 @@ module Gapic
|
|
74
75
|
# into the KMS namespace.
|
75
76
|
return common_service_delegate.namespace if common_service_delegate
|
76
77
|
|
77
|
-
return @service.ruby_package if @service.ruby_package.present?
|
78
|
+
return ensure_absolute_namespace @service.ruby_package if @service.ruby_package.present?
|
78
79
|
|
79
80
|
namespace = ruby_namespace_for_address @service.address[0...-1]
|
80
81
|
fix_namespace @api, namespace
|
@@ -89,20 +90,20 @@ module Gapic
|
|
89
90
|
end
|
90
91
|
|
91
92
|
def name
|
92
|
-
@service.name
|
93
|
+
@api.fix_service_name @service.name
|
93
94
|
end
|
94
95
|
|
95
96
|
# The namespace of the protos. This may be different from the client
|
96
97
|
# namespace for a common service.
|
97
98
|
def proto_namespace
|
98
|
-
return @service.ruby_package if @service.ruby_package.present?
|
99
|
+
return ensure_absolute_namespace @service.ruby_package if @service.ruby_package.present?
|
99
100
|
|
100
101
|
namespace = ruby_namespace_for_address @service.address[0...-1]
|
101
102
|
@api.override_proto_namespaces? ? fix_namespace(@api, namespace) : namespace
|
102
103
|
end
|
103
104
|
|
104
105
|
def proto_service_name_full
|
105
|
-
name_full = "#{proto_namespace}::#{name}"
|
106
|
+
name_full = "#{proto_namespace}::#{@service.name}"
|
106
107
|
@api.override_proto_namespaces? ? fix_namespace(@api, name_full) : name_full
|
107
108
|
end
|
108
109
|
|
@@ -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,16 +196,16 @@ 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 ||
|
200
206
|
default_config(:oauth_scopes)
|
201
207
|
end
|
202
208
|
|
203
|
-
def client_proto_name
|
204
|
-
@service.address.join "."
|
205
|
-
end
|
206
|
-
|
207
209
|
def credentials_name
|
208
210
|
"Credentials"
|
209
211
|
end
|
@@ -272,6 +274,10 @@ module Gapic
|
|
272
274
|
service_file_path.sub ".rb", "_test.rb"
|
273
275
|
end
|
274
276
|
|
277
|
+
def test_paths_file_path
|
278
|
+
service_file_path.sub ".rb", "_paths_test.rb"
|
279
|
+
end
|
280
|
+
|
275
281
|
def test_client_operations_file_path
|
276
282
|
service_file_path.sub ".rb", "_operations_test.rb"
|
277
283
|
end
|
@@ -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
|