Class: Gapic::Presenters::WrapperGemPresenter
Overview
A presenter for wrapper gems.
Constant Summary
CloudGemPresenter::NON_CLOUD_GEMS, CloudGemPresenter::PSEUDO_CLOUD_GEMS
Instance Method Summary
collapse
#cloud_env_prefix, #cloud_product?, #gemspec_description, #generator_args_for_metadata, #has_wrapper?, #library_documentation_url, #license_name, #wrapper_name
Instance Method Details
#default_version ⇒ Object
116
117
118
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 116
def default_version
version_dependencies.first&.first
end
|
#default_versioned_gem ⇒ Object
120
121
122
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 120
def default_versioned_gem
versioned_gems.first
end
|
#dependencies ⇒ Object
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 124
def dependencies
@dependencies ||= begin
deps = { "google-cloud-core" => "~> 1.6" }
version_dependencies.each do |version, requirement|
deps["#{name}-#{version}"] =
if requirement.start_with? "0."
[">= #{requirement}", "< 2.a"]
else
"~> #{requirement}"
end
end
= gem_config_dependencies
deps.merge! if
deps
end
end
|
#docs_link(version: nil, class_name: nil, text: nil, gem_name: nil) ⇒ Object
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 151
def docs_link version: nil, class_name: nil, text: nil, gem_name: nil
gem_name ||= version ? "#{name}-#{version}" : name
base_url =
if cloud_product?
"https://cloud.google.com/ruby/docs/reference/#{gem_name}/latest"
else
"https://rubydoc.info/gems/#{gem_name}"
end
if class_name
separator = cloud_product? ? "-" : "/"
path = namespace.gsub "::", separator
path = "#{path}#{separator}#{version.capitalize}" if version
class_path = class_name.gsub "::", separator
text ||= namespaced_class class_name, version: version
return "[#{text}](#{base_url}/#{path}#{separator}#{class_path})"
end
"[#{text || name}](#{base_url})"
end
|
#entrypoint_require ⇒ Object
27
28
29
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 27
def entrypoint_require
namespace_require
end
|
97
98
99
100
101
102
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 97
def
files = ["README.md", "LICENSE.md", ".yardopts"]
files.insert 1, "AUTHENTICATION.md" unless generic_endpoint?
files.append "MIGRATING.md" if migration?
files
end
|
#factory_method_suffix ⇒ Object
104
105
106
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 104
def factory_method_suffix
gem_config(:factory_method_suffix).to_s
end
|
#google_cloud_short_name ⇒ Object
145
146
147
148
149
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 145
def google_cloud_short_name
m = /^google-cloud-(.*)$/.match name
return nil unless m
m[1].tr "-", "_"
end
|
#helpers_require ⇒ Object
49
50
51
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 49
def helpers_require
"#{namespace_require}/helpers"
end
|
#main_directory_name ⇒ Object
45
46
47
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 45
def main_directory_name
namespace_require.split("/").last
end
|
#migration? ⇒ Boolean
93
94
95
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 93
def migration?
migration_version ? true : false
end
|
#migration_version ⇒ Object
65
66
67
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 65
def migration_version
gem_config :migration_version
end
|
#namespace_file_path ⇒ Object
53
54
55
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 53
def namespace_file_path
"#{namespace_require}.rb"
end
|
#namespace_require ⇒ Object
41
42
43
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 41
def namespace_require
ruby_file_path @api, namespace
end
|
#namespaced_class(name, version: nil) ⇒ Object
170
171
172
173
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 170
def namespaced_class name, version: nil
base = version ? "#{namespace}::#{version.capitalize}" : namespace
"#{base}::#{name}"
end
|
#needs_default_config_block? ⇒ Boolean
61
62
63
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 61
def needs_default_config_block?
needs_entrypoint? && !google_cloud_short_name.nil?
end
|
#needs_entrypoint? ⇒ Boolean
57
58
59
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 57
def needs_entrypoint?
name != namespace_require
end
|
#pre_migration_version ⇒ Object
A description of the versions prior to the migration version. Could be “a.x” if the migration version is 1.0 or later, otherwise falls back to “pre-a.b”.
84
85
86
87
88
89
90
91
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 84
def pre_migration_version
match = /^(\d)+\.0/.match migration_version.to_s
if match
major = match[1].to_i
return "#{major - 1}.x" if major.positive?
end
"pre-#{migration_version}"
end
|
#readme_description ⇒ Array<String>
Generates a description text for README files, accounting for markdown rendering, properly escaping variables and disabling xrefs in the wrapper.
75
76
77
78
79
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 75
def readme_description
has_markdown = description.strip.start_with? "#"
desc = has_markdown ? description.split("\n") : [description.gsub(/\s+/, " ").strip]
Gapic::FormattingUtils.format_doc_lines @api, desc, disable_xrefs: true
end
|
#services ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 31
def services
@services ||= begin
@api.generate_files
.map(&:services)
.flatten
.map { |s| WrapperServicePresenter.new self, @api, s }
.find_all { |s| !s.is_hosted_mixin? }
end
end
|
#version_dependencies ⇒ Object
108
109
110
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 108
def version_dependencies
gem_config(:version_dependencies).to_s.split(";").map { |str| str.split ":" }
end
|
#versioned_gems ⇒ Object
112
113
114
|
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 112
def versioned_gems
version_dependencies.map { |version, _requirement| "#{name}-#{version}" }.sort
end
|