Class: Gapic::Presenters::ServicePresenter
Overview
A presenter for proto services.
Instance Method Summary
collapse
#fix_namespace, #ruby_namespace, #ruby_namespace_for_address
#fix_file_path, #ruby_file_path, #ruby_file_path_for_namespace
Constructor Details
#initialize(api, service, parent_service: nil) ⇒ ServicePresenter
Returns a new instance of ServicePresenter.
30
31
32
33
34
|
# File 'lib/gapic/presenters/service_presenter.rb', line 30
def initialize api, service, parent_service: nil
@api = api
@service = service
@parent_service = parent_service
end
|
Instance Method Details
#address ⇒ Object
54
55
56
|
# File 'lib/gapic/presenters/service_presenter.rb', line 54
def address
@service.address
end
|
#client_endpoint ⇒ Object
149
150
151
152
|
# File 'lib/gapic/presenters/service_presenter.rb', line 149
def client_endpoint
return @parent_service.client_endpoint if @parent_service
@service.host || default_config(:default_host) || "localhost"
end
|
#client_file_name ⇒ Object
145
146
147
|
# File 'lib/gapic/presenters/service_presenter.rb', line 145
def client_file_name
client_file_path.split("/").last
end
|
#client_file_path ⇒ Object
141
142
143
|
# File 'lib/gapic/presenters/service_presenter.rb', line 141
def client_file_path
client_require + ".rb"
end
|
#client_name ⇒ Object
121
122
123
|
# File 'lib/gapic/presenters/service_presenter.rb', line 121
def client_name
"Client"
end
|
#client_name_full ⇒ Object
125
126
127
|
# File 'lib/gapic/presenters/service_presenter.rb', line 125
def client_name_full
fix_namespace @api, "#{proto_service_name_full}::#{client_name}"
end
|
#client_proto_name ⇒ Object
158
159
160
|
# File 'lib/gapic/presenters/service_presenter.rb', line 158
def client_proto_name
@service.address.join "."
end
|
#client_require ⇒ Object
137
138
139
|
# File 'lib/gapic/presenters/service_presenter.rb', line 137
def client_require
ruby_file_path @api, client_name_full
end
|
#client_scopes ⇒ Object
154
155
156
|
# File 'lib/gapic/presenters/service_presenter.rb', line 154
def client_scopes
@service.scopes || default_config(:oauth_scopes)
end
|
#config_channel_args ⇒ Object
275
276
277
|
# File 'lib/gapic/presenters/service_presenter.rb', line 275
def config_channel_args
{ "grpc.service_config_disable_resolution" => 1 }
end
|
133
134
135
|
# File 'lib/gapic/presenters/service_presenter.rb', line 133
def configure_client_call
"#{client_name_full}.configure"
end
|
#create_client_call ⇒ Object
129
130
131
|
# File 'lib/gapic/presenters/service_presenter.rb', line 129
def create_client_call
"#{client_name_full}.new"
end
|
#credentials_class_xref ⇒ Object
170
171
172
|
# File 'lib/gapic/presenters/service_presenter.rb', line 170
def credentials_class_xref
"{#{credentials_name_full}}"
end
|
#credentials_file_name ⇒ Object
178
179
180
|
# File 'lib/gapic/presenters/service_presenter.rb', line 178
def credentials_file_name
credentials_file_path.split("/").last
end
|
#credentials_file_path ⇒ Object
174
175
176
|
# File 'lib/gapic/presenters/service_presenter.rb', line 174
def credentials_file_path
credentials_require + ".rb"
end
|
#credentials_name ⇒ Object
162
163
164
|
# File 'lib/gapic/presenters/service_presenter.rb', line 162
def credentials_name
"Credentials"
end
|
#credentials_name_full ⇒ Object
166
167
168
|
# File 'lib/gapic/presenters/service_presenter.rb', line 166
def credentials_name_full
fix_namespace @api, "#{proto_service_name_full}::#{credentials_name}"
end
|
#credentials_require ⇒ Object
182
183
184
|
# File 'lib/gapic/presenters/service_presenter.rb', line 182
def credentials_require
ruby_file_path @api, credentials_name_full
end
|
#doc_description(disable_xrefs: false) ⇒ Object
69
70
71
|
# File 'lib/gapic/presenters/service_presenter.rb', line 69
def doc_description disable_xrefs: false
@service. disable_xrefs: disable_xrefs
end
|
#file ⇒ Object
40
41
42
|
# File 'lib/gapic/presenters/service_presenter.rb', line 40
def file
FilePresenter.new @api, @service.parent
end
|
#gem ⇒ Object
36
37
38
|
# File 'lib/gapic/presenters/service_presenter.rb', line 36
def gem
GemPresenter.new @api
end
|
#grpc_full_name ⇒ Object
284
285
286
|
# File 'lib/gapic/presenters/service_presenter.rb', line 284
def grpc_full_name
@service.address.join "."
end
|
#grpc_service_config ⇒ Object
279
280
281
282
|
# File 'lib/gapic/presenters/service_presenter.rb', line 279
def grpc_service_config
return unless @api.grpc_service_config&.service_level_configs&.key? grpc_full_name
@api.grpc_service_config.service_level_configs[grpc_full_name]
end
|
#helpers_file_name ⇒ Object
190
191
192
|
# File 'lib/gapic/presenters/service_presenter.rb', line 190
def helpers_file_name
"helpers.rb"
end
|
#helpers_file_path ⇒ Object
186
187
188
|
# File 'lib/gapic/presenters/service_presenter.rb', line 186
def helpers_file_path
helpers_require + ".rb"
end
|
#helpers_require ⇒ Object
194
195
196
|
# File 'lib/gapic/presenters/service_presenter.rb', line 194
def helpers_require
ruby_file_path @api, "#{proto_service_name_full}::Helpers"
end
|
#lro? ⇒ Boolean
238
239
240
|
# File 'lib/gapic/presenters/service_presenter.rb', line 238
def lro?
methods.find(&:lro?)
end
|
#lro_client_ivar ⇒ Object
246
247
248
|
# File 'lib/gapic/presenters/service_presenter.rb', line 246
def lro_client_ivar
"@#{lro_client_var}"
end
|
#lro_client_var ⇒ Object
242
243
244
|
# File 'lib/gapic/presenters/service_presenter.rb', line 242
def lro_client_var
"operations_client"
end
|
#lro_service ⇒ Object
270
271
272
273
|
# File 'lib/gapic/presenters/service_presenter.rb', line 270
def lro_service
lro = @service.parent.parent.files.find { |file| file.name == "google/longrunning/operations.proto" }
return ServicePresenter.new @api, lro.services.first, parent_service: self unless lro.nil?
end
|
#methods ⇒ Object
48
49
50
51
52
|
# File 'lib/gapic/presenters/service_presenter.rb', line 48
def methods
@methods ||= begin
@service.methods.map { |m| MethodPresenter.new @api, m }
end
end
|
#name ⇒ Object
73
74
75
|
# File 'lib/gapic/presenters/service_presenter.rb', line 73
def name
@service.name
end
|
#namespace ⇒ Object
58
59
60
61
62
63
|
# File 'lib/gapic/presenters/service_presenter.rb', line 58
def namespace
return @service.ruby_package if @service.ruby_package.present?
namespace = ruby_namespace_for_address @service.address[0...-1]
fix_namespace @api, namespace
end
|
#operations_file_name ⇒ Object
262
263
264
|
# File 'lib/gapic/presenters/service_presenter.rb', line 262
def operations_file_name
operations_file_path.split("/").last
end
|
#operations_file_path ⇒ Object
258
259
260
|
# File 'lib/gapic/presenters/service_presenter.rb', line 258
def operations_file_path
operations_require + ".rb"
end
|
#operations_name ⇒ Object
250
251
252
|
# File 'lib/gapic/presenters/service_presenter.rb', line 250
def operations_name
"Operations"
end
|
#operations_name_full ⇒ Object
254
255
256
|
# File 'lib/gapic/presenters/service_presenter.rb', line 254
def operations_name_full
fix_namespace @api, "#{proto_service_name_full}::#{operations_name}"
end
|
#operations_require ⇒ Object
266
267
268
|
# File 'lib/gapic/presenters/service_presenter.rb', line 266
def operations_require
ruby_file_path @api, "#{proto_service_name_full}::#{operations_name}"
end
|
#package ⇒ Object
44
45
46
|
# File 'lib/gapic/presenters/service_presenter.rb', line 44
def package
PackagePresenter.new @api, @service.parent.package
end
|
#paths? ⇒ Boolean
202
203
204
|
# File 'lib/gapic/presenters/service_presenter.rb', line 202
def paths?
references.any?
end
|
#paths_file_name ⇒ Object
218
219
220
|
# File 'lib/gapic/presenters/service_presenter.rb', line 218
def paths_file_name
paths_file_path.split("/").last
end
|
#paths_file_path ⇒ Object
214
215
216
|
# File 'lib/gapic/presenters/service_presenter.rb', line 214
def paths_file_path
paths_require + ".rb"
end
|
#paths_name ⇒ Object
206
207
208
|
# File 'lib/gapic/presenters/service_presenter.rb', line 206
def paths_name
"Paths"
end
|
#paths_name_full ⇒ Object
210
211
212
|
# File 'lib/gapic/presenters/service_presenter.rb', line 210
def paths_name_full
fix_namespace @api, "#{proto_service_name_full}::#{paths_name}"
end
|
#paths_require ⇒ Object
222
223
224
|
# File 'lib/gapic/presenters/service_presenter.rb', line 222
def paths_require
ruby_file_path @api, "#{proto_service_name_full}::#{paths_name}"
end
|
#proto_service_file_name ⇒ Object
85
86
87
|
# File 'lib/gapic/presenters/service_presenter.rb', line 85
def proto_service_file_name
proto_service_file_path.split("/").last
end
|
#proto_service_file_path ⇒ Object
81
82
83
|
# File 'lib/gapic/presenters/service_presenter.rb', line 81
def proto_service_file_path
@service.parent.name.sub ".proto", "_pb.rb"
end
|
#proto_service_name_full ⇒ Object
77
78
79
|
# File 'lib/gapic/presenters/service_presenter.rb', line 77
def proto_service_name_full
fix_namespace @api, "#{namespace}::#{name}"
end
|
#proto_service_require ⇒ Object
89
90
91
|
# File 'lib/gapic/presenters/service_presenter.rb', line 89
def proto_service_require
proto_service_file_path.sub ".rb", ""
end
|
#proto_service_stub_name_full ⇒ Object
105
106
107
|
# File 'lib/gapic/presenters/service_presenter.rb', line 105
def proto_service_stub_name_full
"#{proto_service_name_full}::Stub"
end
|
#proto_services_file_name ⇒ Object
97
98
99
|
# File 'lib/gapic/presenters/service_presenter.rb', line 97
def proto_services_file_name
proto_services_file_path.split("/").last
end
|
#proto_services_file_path ⇒ Object
93
94
95
|
# File 'lib/gapic/presenters/service_presenter.rb', line 93
def proto_services_file_path
@service.parent.name.sub ".proto", "_services_pb.rb"
end
|
#proto_services_require ⇒ Object
101
102
103
|
# File 'lib/gapic/presenters/service_presenter.rb', line 101
def proto_services_require
proto_services_file_path.sub ".rb", ""
end
|
#references ⇒ Object
198
199
200
|
# File 'lib/gapic/presenters/service_presenter.rb', line 198
def references
@references ||= @service.resources.map { |resource| ResourcePresenter.new resource }.sort_by(&:name)
end
|
#service_file_name ⇒ Object
113
114
115
|
# File 'lib/gapic/presenters/service_presenter.rb', line 113
def service_file_name
service_file_path.split("/").last
end
|
#service_file_path ⇒ Object
109
110
111
|
# File 'lib/gapic/presenters/service_presenter.rb', line 109
def service_file_path
service_require + ".rb"
end
|
#service_require ⇒ Object
117
118
119
|
# File 'lib/gapic/presenters/service_presenter.rb', line 117
def service_require
ruby_file_path @api, proto_service_name_full
end
|
#stub_name ⇒ Object
234
235
236
|
# File 'lib/gapic/presenters/service_presenter.rb', line 234
def stub_name
"#{ActiveSupport::Inflector.underscore name}_stub"
end
|
#test_client_file_path ⇒ Object
226
227
228
|
# File 'lib/gapic/presenters/service_presenter.rb', line 226
def test_client_file_path
service_file_path.sub ".rb", "_test.rb"
end
|
#test_client_operations_file_path ⇒ Object
230
231
232
|
# File 'lib/gapic/presenters/service_presenter.rb', line 230
def test_client_operations_file_path
service_file_path.sub ".rb", "_operations_test.rb"
end
|
#version ⇒ Object
65
66
67
|
# File 'lib/gapic/presenters/service_presenter.rb', line 65
def version
ActiveSupport::Inflector.camelize @service.address[-2]
end
|