Class: Gapic::Presenters::SnippetPresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/gapic/presenters/snippet_presenter.rb

Overview

A presenter for snippets.

Instance Method Summary collapse

Constructor Details

#initialize(method_presenter, api) ⇒ SnippetPresenter

Returns a new instance of SnippetPresenter.



25
26
27
28
# File 'lib/gapic/presenters/snippet_presenter.rb', line 25

def initialize method_presenter, api
  @method_presenter = method_presenter
  @api = api
end

Instance Method Details

#base_response_typeObject



75
76
77
# File 'lib/gapic/presenters/snippet_presenter.rb', line 75

def base_response_type
  @method_presenter.return_type
end

#bidi_streaming?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/gapic/presenters/snippet_presenter.rb', line 34

def bidi_streaming?
  @method_presenter.client_streaming? && @method_presenter.server_streaming?
end

#client_streaming?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/gapic/presenters/snippet_presenter.rb', line 30

def client_streaming?
  @method_presenter.client_streaming?
end

#client_typeObject



58
59
60
# File 'lib/gapic/presenters/snippet_presenter.rb', line 58

def client_type
  @method_presenter.service.client_name_full.sub(/^::/, "")
end

#method_nameObject

TODO: Determine type of LRO response



81
82
83
# File 'lib/gapic/presenters/snippet_presenter.rb', line 81

def method_name
  @method_presenter.name
end

#paged_response_typeObject



71
72
73
# File 'lib/gapic/presenters/snippet_presenter.rb', line 71

def paged_response_type
  @method_presenter.paged_response_type
end

#region_tagObject



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/gapic/presenters/snippet_presenter.rb', line 85

def region_tag
  gem_presenter = @method_presenter.service.gem
  api_id = gem_presenter.api_shortname || gem_presenter.api_id&.split(".")&.first
  names = gem_presenter.name.split "-"
  final_name = names.pop
  if final_name =~ /^v\d/
    api_version = final_name
    api_id ||= names.last
  else
    api_id ||= final_name
    api_version = "v0"
  end
  api_id = api_id.downcase.gsub(/[^a-z0-9]/, "")
  service_name = @method_presenter.service.module_name
  method_name = @method_presenter.method.name
  "#{api_id}_#{api_version}_generated_#{service_name}_#{method_name}_sync"
end

#request_typeObject



62
63
64
# File 'lib/gapic/presenters/snippet_presenter.rb', line 62

def request_type
  @method_presenter.request_type.sub(/^::/, "")
end

#require_pathObject



54
55
56
# File 'lib/gapic/presenters/snippet_presenter.rb', line 54

def require_path
  @method_presenter.service.package.package_require
end

#response_kindObject



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/gapic/presenters/snippet_presenter.rb', line 38

def response_kind
  if @method_presenter.server_streaming?
    :streaming
  elsif @method_presenter.paged?
    :paged
  elsif @method_presenter.lro?
    :lro
  else
    :simple
  end
end

#return_typeObject



66
67
68
69
# File 'lib/gapic/presenters/snippet_presenter.rb', line 66

def return_type
  base_type = @method_presenter.return_type.sub(/^::/, "")
  @method_presenter.server_streaming? ? "Enumerable<#{base_type}>" : base_type
end

#snippet_file_pathObject



50
51
52
# File 'lib/gapic/presenters/snippet_presenter.rb', line 50

def snippet_file_path
  "#{@method_presenter.service.service_require.split('/').last}/#{@method_presenter.name}.rb"
end