Class: Gapic::Presenters::WrapperGemPresenter
- Inherits:
-
CloudGemPresenter
- Object
- GemPresenter
- CloudGemPresenter
- Gapic::Presenters::WrapperGemPresenter
- Defined in:
- lib/gapic/presenters/wrapper_gem_presenter.rb
Overview
A presenter for wrapper gems.
Instance Method Summary collapse
- #default_version ⇒ Object
- #dependencies ⇒ Object
- #docs_link(version: nil, class_name: nil, text: nil) ⇒ Object
- #entrypoint_require ⇒ Object
- #extra_files ⇒ Object
- #factory_method_suffix ⇒ Object
- #google_cloud_short_name ⇒ Object
- #helpers_require ⇒ Object
- #main_directory_name ⇒ Object
- #migration? ⇒ Boolean
- #migration_version ⇒ Object
- #namespace_file_path ⇒ Object
- #namespace_require ⇒ Object
- #namespaced_class(name, version: nil) ⇒ Object
- #needs_default_config_block? ⇒ Boolean
- #needs_entrypoint? ⇒ Boolean
-
#pre_migration_version ⇒ Object
A description of the versions prior to the migration version.
- #services ⇒ Object
- #version_dependencies ⇒ Object
- #versioned_gems ⇒ Object
Methods inherited from CloudGemPresenter
Instance Method Details
#default_version ⇒ Object
100 101 102 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 100 def default_version version_dependencies.first&.first end |
#dependencies ⇒ Object
104 105 106 107 108 109 110 111 112 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 104 def dependencies deps = { "google-cloud-core" => "~> 1.5" } version_dependencies.each do |version, requirement| deps["#{name}-#{version}"] = "~> #{requirement}" end extra_deps = gem_config :extra_dependencies deps.merge! extra_deps if extra_deps deps end |
#docs_link(version: nil, class_name: nil, text: nil) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 120 def docs_link version: nil, class_name: nil, text: nil gem_name = version ? "#{name}-#{version}" : name base_url = "https://googleapis.dev/ruby/#{gem_name}/latest" if class_name path = namespace.gsub "::", "/" path = "#{path}/#{version.capitalize}" if version class_path = class_name.gsub "::", "/" text ||= namespaced_class class_name, version: version return "[#{text}](#{base_url}/#{path}/#{class_path}.html)" end "[#{text || name}](#{base_url})" end |
#entrypoint_require ⇒ Object
26 27 28 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 26 def entrypoint_require namespace_require end |
#extra_files ⇒ Object
81 82 83 84 85 86 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 81 def extra_files 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
88 89 90 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 88 def factory_method_suffix gem_config(:factory_method_suffix).to_s end |
#google_cloud_short_name ⇒ Object
114 115 116 117 118 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 114 def google_cloud_short_name m = /^google-cloud-(.*)$/.match name return nil unless m m[1].tr "-", "_" end |
#helpers_require ⇒ Object
45 46 47 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 45 def helpers_require "#{namespace_require}/helpers" end |
#main_directory_name ⇒ Object
41 42 43 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 41 def main_directory_name namespace_require.split("/").last end |
#migration? ⇒ Boolean
77 78 79 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 77 def migration? migration_version ? true : false end |
#migration_version ⇒ Object
61 62 63 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 61 def migration_version gem_config :migration_version end |
#namespace_file_path ⇒ Object
49 50 51 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 49 def namespace_file_path "#{namespace_require}.rb" end |
#namespace_require ⇒ Object
37 38 39 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 37 def namespace_require ruby_file_path @api, namespace end |
#namespaced_class(name, version: nil) ⇒ Object
133 134 135 136 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 133 def namespaced_class name, version: nil base = version ? "#{namespace}::#{version.capitalize}" : namespace "#{base}::#{name}" end |
#needs_default_config_block? ⇒ Boolean
57 58 59 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 57 def needs_default_config_block? needs_entrypoint? && !google_cloud_short_name.nil? end |
#needs_entrypoint? ⇒ Boolean
53 54 55 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 53 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".
68 69 70 71 72 73 74 75 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 68 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 |
#services ⇒ Object
30 31 32 33 34 35 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 30 def services @services ||= begin files = @api.generate_files files.map(&:services).flatten.map { |s| WrapperServicePresenter.new self, @api, s } end end |
#version_dependencies ⇒ Object
92 93 94 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 92 def version_dependencies gem_config(:version_dependencies).to_s.split(";").map { |str| str.split ":" } end |
#versioned_gems ⇒ Object
96 97 98 |
# File 'lib/gapic/presenters/wrapper_gem_presenter.rb', line 96 def versioned_gems version_dependencies.map { |version, _requirement| "#{name}-#{version}" }.sort end |