gapic-generator-cloud 0.4.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67c698edddd3e5884a7ea49222c4bc4fcda045354d60380db267279d2524aa82
4
- data.tar.gz: 7367fbc57dec1cf102cd69de072bf0f8a57d0a01fc895bcdf376c32163568b11
3
+ metadata.gz: e44e51d3d13b507d3363356e2e40e2dc85a7e8e665ae00cd9fa0c4b6c04182f8
4
+ data.tar.gz: eb581e249dffcf4154f461859b0cf301b54b95234c7c204d767e70c516a65258
5
5
  SHA512:
6
- metadata.gz: 45d9725ff2c9b1b1db1fcd426edf33fdbfd3709274cbe9f172483ec86e315173fd342d520a2ffa05e55ac5df3a1bb633a06325120550bbdd78b271b7c2038f35
7
- data.tar.gz: 69812b1f0fe041ed416b82a8fdc7af1408ae3e642f11917541a3277ba69e65ef2b52feb85fd5a9fec52da25bb3688dfd2e8bf0c4edc0b9bd6896efc0f2eccce9
6
+ metadata.gz: c52f4ae104825343a0eedb7917afaa5fe24bbb0ca4f98048ea1d1812c148c085b441483cc25e9868e4b905c8dd5b09c4fc504ce6ca320099c9232cbfbcced157
7
+ data.tar.gz: 2b4196ddb9520ca21ebbcd3d57ceee55b5462720e538d2bf77ca2a572bc971fd111fbab9e3df7476b7d225232dc03fbd117ef804831076c29e7bcd3609fa50bd
@@ -1,5 +1,43 @@
1
1
  # Release History for gapic-generator-cloud
2
2
 
3
+ ### 0.6.1 / 2020-06-16
4
+
5
+ * Includes changes from gapic-generator 0.6.1.
6
+ * Populate additional repo-metadata fields.
7
+ * Remove authentication file from the gemspec for generic wrappers.
8
+
9
+ ### 0.6.0 / 2020-06-02
10
+
11
+ * Includes changes from gapic-generator 0.6.0.
12
+ * Support for clients with generic endpoint and credentials.
13
+ * Support for adding extra dependencies.
14
+ * Fix the logic determining whether a wrapper needs a separate entrypoint file.
15
+ * Disable Metrics/BlockLength check for all sample tests.
16
+
17
+ ### 0.5.1 / 2020-05-21
18
+
19
+ * Includes changes from gapic-generator 0.5.1
20
+
21
+ ### 0.5.0 / 2020-05-19
22
+
23
+ * Includes changes from gapic-generator 0.5.0
24
+ * Wrappers now support partial-gapic helpers.
25
+ * Generated configs for wrappers now include endpoint and scope.
26
+
27
+ ### 0.4.3 / 2020-05-01
28
+
29
+ * Unpin minitest in the generated wrappers.
30
+
31
+ ### 0.4.2 / 2020-04-28
32
+
33
+ * Includes changes from gapic-generator 0.4.2
34
+ * Eliminate a circular require in generated wrappers.
35
+
36
+ ### 0.4.1 / 2020-04-23
37
+
38
+ * Wrapper templates honor overridden namespaces.
39
+ * Support setting the gem namespace from the docker interface.
40
+
3
41
  ### 0.4.0 / 2020-04-20
4
42
 
5
43
  * Includes changes from gapic-generator 0.4.0
@@ -21,13 +21,15 @@ require "fileutils"
21
21
  # Boolean options may have values "true" or "false" (as strings)
22
22
  bool_option_map = {
23
23
  ":gem.:free_tier" => "ruby-cloud-free-tier",
24
- ":gem.:yard_strict" => "ruby-cloud-yard-strict"
24
+ ":gem.:yard_strict" => "ruby-cloud-yard-strict",
25
+ ":gem.:generic_endpoint" => "ruby-cloud-generic-endpoint"
25
26
  }
26
27
 
27
28
  # Value options always take string values.
28
29
  value_option_map = {
29
30
  "configuration" => "ruby-cloud-config",
30
31
  ":gem.:name" => "ruby-cloud-gem-name",
32
+ ":gem.:namespace" => "ruby-cloud-gem-namespace",
31
33
  ":gem.:title" => "ruby-cloud-title",
32
34
  ":gem.:description" => "ruby-cloud-description",
33
35
  ":gem.:summary" => "ruby-cloud-summary",
@@ -36,7 +38,9 @@ value_option_map = {
36
38
  ":gem.:version_dependencies" => "ruby-cloud-wrapper-of",
37
39
  ":gem.:migration_version" => "ruby-cloud-migration-version",
38
40
  ":gem.:product_documentation_url" => "ruby-cloud-product-url",
41
+ ":gem.:issue_tracker_url" => "ruby-cloud-issues-url",
39
42
  ":gem.:api_id" => "ruby-cloud-api-id",
43
+ ":gem.:api_shortname" => "ruby-cloud-api-shortname",
40
44
  ":gem.:factory_method_suffix" => "ruby-cloud-factory-method-suffix"
41
45
  }
42
46
 
@@ -52,7 +56,9 @@ path_option_map = {
52
56
  map_option_map = {
53
57
  ":common_services" => "ruby-cloud-common-services",
54
58
  ":overrides.:file_path" => "ruby-cloud-path-override",
55
- ":overrides.:namespace" => "ruby-cloud-namespace-override"
59
+ ":overrides.:namespace" => "ruby-cloud-namespace-override",
60
+ ":overrides.:service" => "ruby-cloud-service-override",
61
+ ":gem.:extra_dependencies" => "ruby-cloud-extra-dependencies"
56
62
  }
57
63
 
58
64
  # A set of files that, if generated, should be removed.
@@ -18,7 +18,7 @@
18
18
  module Gapic
19
19
  module Generator
20
20
  module Cloud
21
- VERSION = "0.4.0"
21
+ VERSION = "0.6.1"
22
22
  end
23
23
  end
24
24
  end
@@ -16,6 +16,7 @@
16
16
 
17
17
  require "gapic/generators/default_generator"
18
18
  require "gapic/presenters"
19
+ require "gapic/presenters/cloud_gem_presenter"
19
20
  require "gapic/presenters/wrapper_gem_presenter"
20
21
 
21
22
  module Gapic
@@ -42,19 +43,19 @@ module Gapic
42
43
  # @return [Array<
43
44
  # Google::Protobuf::Compiler::CodeGeneratorResponse::File>]
44
45
  # The files that were generated for the API.
45
- def generate
46
+ def generate gem_presenter: nil
46
47
  gem_config = @api.configuration[:gem] ||= {}
47
48
  return generate_wrapper if gem_config[:version_dependencies]
48
49
 
49
- orig_files = super
50
-
51
- cloud_files = []
52
-
53
- gem = Gapic::Presenters.gem_presenter @api
50
+ gem = gem_presenter || Gapic::Presenters.cloud_gem_presenter(@api)
51
+ orig_files = super gem_presenter: gem
54
52
 
55
53
  # Additional Gem level files
56
- cloud_files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem)
57
- cloud_files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem) unless gem.services.empty?
54
+ cloud_files = []
55
+ cloud_files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem)
56
+ unless gem.services.empty? || gem.generic_endpoint?
57
+ cloud_files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem)
58
+ end
58
59
 
59
60
  format_files cloud_files
60
61
 
@@ -79,7 +80,7 @@ module Gapic
79
80
  files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem)
80
81
  files << g("wrapper_gem/rubocop.erb", ".rubocop.yml", gem: gem)
81
82
  files << g("wrapper_gem/yardopts.erb", ".yardopts", gem: gem)
82
- files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem)
83
+ files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem) unless gem.generic_endpoint?
83
84
  files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem)
84
85
  files << g("wrapper_gem/gemfile.erb", "Gemfile", gem: gem)
85
86
  files << g("gem/license.erb", "LICENSE.md", gem: gem)
@@ -89,7 +90,7 @@ module Gapic
89
90
  files << g("wrapper_gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem) if gem.needs_entrypoint?
90
91
  files << g("wrapper_gem/main.erb", "lib/#{gem.namespace_file_path}", gem: gem)
91
92
  files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem)
92
- files << g("wrapper_gem/test_helper.erb", "test/helper.rb", gem: gem)
93
+ files << g("gem/test_helper.erb", "test/helper.rb", gem: gem)
93
94
  files << g("wrapper_gem/client_test.erb", "test/#{gem.namespace_require}/client_test.rb", gem: gem)
94
95
  files << g("wrapper_gem/version_test.erb", "test/#{gem.namespace_require}/version_test.rb", gem: gem)
95
96
 
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require "gapic/presenters"
18
+ require "gapic/presenters/wrapper_service_presenter"
19
+
20
+ module Gapic
21
+ module Presenters
22
+ ##
23
+ # A presenter subclass for cloud gems.
24
+ #
25
+ class CloudGemPresenter < GemPresenter
26
+ def license_name
27
+ "Apache-2.0"
28
+ end
29
+
30
+ def extra_files
31
+ return ["README.md", "LICENSE.md", ".yardopts"] if generic_endpoint?
32
+ ["README.md", "LICENSE.md", "AUTHENTICATION.md", ".yardopts"]
33
+ end
34
+
35
+ def dependencies
36
+ deps = super
37
+ deps["google-cloud-errors"] = "~> 1.0"
38
+ deps
39
+ end
40
+ end
41
+
42
+ def self.cloud_gem_presenter api
43
+ CloudGemPresenter.new api
44
+ end
45
+ end
46
+ end
@@ -22,7 +22,7 @@ module Gapic
22
22
  ##
23
23
  # A presenter for wrapper gems.
24
24
  #
25
- class WrapperGemPresenter < GemPresenter
25
+ class WrapperGemPresenter < CloudGemPresenter
26
26
  def entrypoint_require
27
27
  namespace_require
28
28
  end
@@ -30,7 +30,7 @@ module Gapic
30
30
  def services
31
31
  @services ||= begin
32
32
  files = @api.generate_files
33
- files.map(&:services).flatten.map { |s| WrapperServicePresenter.new @api, s }
33
+ files.map(&:services).flatten.map { |s| WrapperServicePresenter.new self, @api, s }
34
34
  end
35
35
  end
36
36
 
@@ -38,12 +38,20 @@ module Gapic
38
38
  ruby_file_path @api, namespace
39
39
  end
40
40
 
41
+ def main_directory_name
42
+ namespace_require.split("/").last
43
+ end
44
+
45
+ def helpers_require
46
+ "#{namespace_require}/helpers"
47
+ end
48
+
41
49
  def namespace_file_path
42
50
  "#{namespace_require}.rb"
43
51
  end
44
52
 
45
53
  def needs_entrypoint?
46
- name != namespace_file_path
54
+ name != namespace_require
47
55
  end
48
56
 
49
57
  def needs_default_config_block?
@@ -71,8 +79,9 @@ module Gapic
71
79
  end
72
80
 
73
81
  def extra_files
74
- files = ["README.md", "AUTHENTICATION.md", "LICENSE.md", ".yardopts"]
75
- files << "MIGRATING.md" if migration?
82
+ files = ["README.md", "LICENSE.md", ".yardopts"]
83
+ files.insert 1, "AUTHENTICATION.md" unless generic_endpoint?
84
+ files.append "MIGRATING.md" if migration?
76
85
  files
77
86
  end
78
87
 
@@ -84,19 +93,24 @@ module Gapic
84
93
  gem_config(:version_dependencies).to_s.split(";").map { |str| str.split ":" }
85
94
  end
86
95
 
87
- def gem_version_dependencies
88
- version_dependencies.sort_by { |version, _requirement| version }
89
- .map { |version, requirement| ["#{name}-#{version}", requirement] }
90
- end
91
-
92
96
  def versioned_gems
93
- gem_version_dependencies.map { |name, _requirement| name }
97
+ version_dependencies.map { |version, _requirement| "#{name}-#{version}" }.sort
94
98
  end
95
99
 
96
100
  def default_version
97
101
  version_dependencies.first&.first
98
102
  end
99
103
 
104
+ def dependencies
105
+ deps = { "google-cloud-core" => "~> 1.5" }
106
+ version_dependencies.each do |version, requirement|
107
+ deps["#{name}-#{version}"] = "~> #{requirement}"
108
+ end
109
+ extra_deps = gem_config :extra_dependencies
110
+ deps.merge! extra_deps if extra_deps
111
+ deps
112
+ end
113
+
100
114
  def google_cloud_short_name
101
115
  m = /^google-cloud-(.*)$/.match name
102
116
  return nil unless m
@@ -23,10 +23,6 @@ module Gapic
23
23
  # A presenter for wrapper services.
24
24
  #
25
25
  class WrapperServicePresenter < ServicePresenter
26
- def gem
27
- WrapperGemPresenter.new @api
28
- end
29
-
30
26
  def factory_method_name
31
27
  @factory_method_name ||= begin
32
28
  method_name = ActiveSupport::Inflector.underscore name
@@ -11,6 +11,7 @@ RuboCop::RakeTask.new
11
11
  require "rake/testtask"
12
12
  desc "Run tests."
13
13
  Rake::TestTask.new do |t|
14
+ t.libs << "test"
14
15
  t.test_files = FileList["test/**/*_test.rb"]
15
16
  t.warning = false
16
17
  end
@@ -52,7 +53,7 @@ end
52
53
  # Acceptance tests
53
54
  desc "Run the <%= gem.name %> acceptance tests."
54
55
  task :acceptance, :project, :keyfile do |t, args|
55
- <%- if service -%>
56
+ <%- if service && !gem.generic_endpoint? -%>
56
57
  project = args[:project]
57
58
  project ||=
58
59
  ENV["<%= gem.env_prefix %>_TEST_PROJECT"] ||
@@ -78,8 +79,8 @@ task :acceptance, :project, :keyfile do |t, args|
78
79
  ENV["<%= gem.env_prefix %>_PROJECT"] = project
79
80
  ENV["<%= gem.env_prefix %>_TEST_PROJECT"] = project
80
81
  ENV["<%= gem.env_prefix %>_KEYFILE_JSON"] = keyfile
81
- <%- end -%>
82
82
 
83
+ <%- end -%>
83
84
  Rake::Task["acceptance:run"].invoke
84
85
  end
85
86
 
@@ -12,6 +12,7 @@
12
12
  $ gem install <%= gem.name %>
13
13
  ```
14
14
 
15
+ <%- unless gem.generic_endpoint? -%>
15
16
  ## Before You Begin
16
17
 
17
18
  In order to use this library, you first need to go through the following steps:
@@ -25,10 +26,11 @@ In order to use this library, you first need to go through the following steps:
25
26
  1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
26
27
  <%- end -%>
27
28
  <%- if gem.api_id -%>
28
- 1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>.googleapis.com)
29
+ 1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>)
29
30
  <%- end -%>
30
31
  1. {file:AUTHENTICATION.md Set up authentication.}
31
32
 
33
+ <%- end -%>
32
34
  ## Quick Start
33
35
 
34
36
  <%- if gem.packages? -%>
@@ -1,6 +1,21 @@
1
1
  <%- assert_locals gem -%>
2
2
  {
3
- "language": "ruby",
3
+ <%- if gem.api_id -%>
4
+ "api_id": "<%= gem.api_id %>",
5
+ <%- end -%>
6
+ "client_documentation": "<%= gem.library_documentation_url %>",
4
7
  "distribution_name": "<%= gem.name %>",
5
- "client_documentation": "https://googleapis.dev/ruby/<%= gem.name %>/latest"
8
+ <%- if gem.issue_tracker_url -%>
9
+ "issue_tracker": "<%= gem.issue_tracker_url %>",
10
+ <%- end -%>
11
+ "language": "ruby",
12
+ <%- if gem.api_shortname -%>
13
+ "name": "<%= gem.api_shortname %>",
14
+ <%- end -%>
15
+ "name_pretty": "<%= gem.title %> API",
16
+ <%- if gem.product_documentation_url -%>
17
+ "product_documentation": "<%= gem.product_documentation_url %>",
18
+ <%- end -%>
19
+ "repo": "googleapis/google-cloud-ruby",
20
+ "requires_billing": <%= !gem.free_tier? %>
6
21
  }
@@ -10,4 +10,6 @@
10
10
  -
11
11
  README.md
12
12
  LICENSE.md
13
+ <%- unless gem.generic_endpoint? -%>
13
14
  AUTHENTICATION.md
15
+ <%- end -%>
@@ -3,7 +3,7 @@
3
3
  require "googleauth"
4
4
  <% end %>
5
5
  # Credentials for the <%= service.name %> API.
6
- class <%= service.credentials_name %> < Google::Auth::Credentials
6
+ class <%= service.credentials_name %> < ::Google::Auth::Credentials
7
7
  <%- if service.client_scopes.any? -%>
8
8
  self.scope = [
9
9
  <%- service.client_scopes.each_with_index do |client_scope, index| -%>
@@ -1,6 +1,6 @@
1
1
  <%- assert_locals service -%>
2
2
  @configure ||= begin
3
- namespace = <%= service.namespace.split("::").inspect %>
3
+ namespace = <%= service.namespace.split("::").reject(&:empty?).inspect %>
4
4
  parent_config = while namespace.any?
5
5
  parent_name = namespace.join "::"
6
6
  parent_const = const_get parent_name
@@ -1,3 +1,3 @@
1
1
  <%- assert_locals method -%>
2
- rescue GRPC::BadStatus => e
3
- raise Google::Cloud::Error.from_error(e)
2
+ rescue ::GRPC::BadStatus => e
3
+ raise ::Google::Cloud::Error.from_error(e)
@@ -1,2 +1,2 @@
1
1
  <%- assert_locals method -%>
2
- # @raise [Google::Cloud::Error] if the RPC is aborted.
2
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
@@ -1,45 +1,53 @@
1
1
  <%- assert_locals gem -%>
2
2
  <% @requires = capture do %>
3
+ # Require this file early so that the version constant gets defined before
4
+ # requiring "google/cloud". This is because google-cloud-core will load the
5
+ # entrypoint (gem name) file, which in turn re-requires this file (hence
6
+ # causing a require cycle) unless the version constant is already defined.
3
7
  require "<%= gem.version_require %>"
8
+
4
9
  require "googleauth"
5
10
  <%- if gem.needs_default_config_block? -%>
6
11
  gem "google-cloud-core"
7
- require "google/cloud" unless defined? Google::Cloud.new
12
+ require "google/cloud" unless defined? ::Google::Cloud.new
8
13
  require "google/cloud/config"
9
14
 
10
15
  # Set the default configuration
11
- Google::Cloud.configure.add_config! :<%= gem.google_cloud_short_name %> do |config|
12
- config.add_field! :credentials, nil, match: [String, Hash, Google::Auth::Credentials]
13
- config.add_field! :lib_name, nil, match: String
14
- config.add_field! :lib_version, nil, match: String
15
- config.add_field! :interceptors, nil, match: Array
16
- config.add_field! :timeout, nil, match: Numeric
17
- config.add_field! :metadata, nil, match: Hash
18
- config.add_field! :retry_policy, nil, match: [Hash, Proc]
16
+ ::Google::Cloud.configure.add_config! :<%= gem.google_cloud_short_name %> do |config|
17
+ config.add_field! :endpoint, <%= gem.services.first&.client_endpoint.inspect %>, match: ::String
18
+ config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
19
+ config.add_field! :scope, nil, match: [::Array, ::String]
20
+ config.add_field! :lib_name, nil, match: ::String
21
+ config.add_field! :lib_version, nil, match: ::String
22
+ config.add_field! :interceptors, nil, match: ::Array
23
+ config.add_field! :timeout, nil, match: ::Numeric
24
+ config.add_field! :metadata, nil, match: ::Hash
25
+ config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
26
+ config.add_field! :quota_project, nil, match: ::String
19
27
  end
20
28
  <%- end -%>
21
29
  <% end %>
22
30
  <%- gem.services.each do |service| -%>
23
31
  ##
24
- # Create a new client object for <%= service.name %>.
32
+ # Create a new client object for <%= service.module_name %>.
25
33
  #
26
34
  # By default, this returns an instance of
27
- # <%= gem.docs_link version: gem.default_version, class_name: "#{service.name}::Client" %>
35
+ # <%= gem.docs_link version: gem.default_version, class_name: "#{service.module_name}::Client" %>
28
36
  # for version <%= gem.default_version.capitalize %> of the API.
29
37
  # However, you can specify specify a different API version by passing it in the
30
- # `version` parameter. If the <%= service.name %> service is
38
+ # `version` parameter. If the <%= service.module_name %> service is
31
39
  # supported by that API version, and the corresponding gem is available, the
32
40
  # appropriate versioned client will be returned.
33
41
  #
34
42
  <%- if service.doc_description -%>
35
- # ## About <%= service.name %>
43
+ # ## About <%= service.module_name %>
36
44
  #
37
45
  <%= indent service.doc_description(disable_xrefs: true), "# " %>
38
46
  #
39
47
  <%- end -%>
40
- # @param version [String, Symbol] The API version to connect to. Optional.
48
+ # @param version [::String, ::Symbol] The API version to connect to. Optional.
41
49
  # Defaults to `:<%= gem.default_version %>`.
42
- # @return [<%= service.name %>::Client] A client object for the specified version.
50
+ # @return [<%= service.module_name %>::Client] A client object for the specified version.
43
51
  #
44
52
  def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>, &block
45
53
  require "<%= gem.namespace_require %>/#{version.to_s.downcase}"
@@ -49,7 +57,7 @@ def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>
49
57
  .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
50
58
  .first
51
59
  package_module = <%= gem.namespace %>.const_get package_name
52
- package_module.const_get(:<%= service.name %>).const_get(:Client).new(&block)
60
+ package_module.const_get(:<%= service.module_name %>).const_get(:Client).new(&block)
53
61
  end
54
62
 
55
63
  <%- end -%>
@@ -80,11 +88,15 @@ end
80
88
  # * `:retry_codes` (*type:* `Array<String>`) -
81
89
  # The error codes that should trigger a retry.
82
90
  #
83
- # @return [Google::Cloud::Config] The default configuration used by this library
91
+ # @return [::Google::Cloud::Config] The default configuration used by this library
84
92
  #
85
93
  def self.configure
86
- yield Google::Cloud.configure.<%= gem.google_cloud_short_name %> if block_given?
94
+ yield ::Google::Cloud.configure.<%= gem.google_cloud_short_name %> if block_given?
87
95
 
88
- Google::Cloud.configure.<%= gem.google_cloud_short_name %>
96
+ ::Google::Cloud.configure.<%= gem.google_cloud_short_name %>
89
97
  end
90
98
  <%- end -%>
99
+ <% @footer = capture do %>
100
+ helper_path = ::File.join __dir__, "<%= gem.main_directory_name %>", "helpers.rb"
101
+ require "<%= gem.helpers_require %>" if ::File.file? helper_path
102
+ <% end %>
@@ -14,7 +14,7 @@ class <%= gem.namespace %>::ClientConstructionMinitest < Minitest::Test
14
14
  client = <%= gem.namespace %>.<%= service.factory_method_name %> do |config|
15
15
  config.credentials = grpc_channel
16
16
  end
17
- assert_kind_of <%= gem.namespaced_class "#{service.name}::Client", version: gem.default_version %>, client
17
+ assert_kind_of <%= gem.namespaced_class "#{service.module_name}::Client", version: gem.default_version %>, client
18
18
  end
19
19
  end
20
20
 
@@ -1,4 +1,4 @@
1
1
  <%- assert_locals gem -%>
2
2
  <%= render partial: "shared/header" -%>
3
3
 
4
- require "<%= gem.namespace_require %>"
4
+ require "<%= gem.namespace_require %>" unless defined? <%= gem.namespace %>::VERSION
@@ -3,15 +3,9 @@ source "https://rubygems.org"
3
3
 
4
4
  gemspec
5
5
 
6
- gem "google-cloud-core", path: "../google-cloud-core"
7
- gem "google-cloud-env", path: "../google-cloud-env"
8
- gem "google-cloud-errors", path: "../google-cloud-errors"
9
- <%- gem.gem_version_dependencies.each do |name, _requirement| -%>
6
+ <%- gem.versioned_gems.each do |name| -%>
10
7
  gem "<%= name %>", path: "../<%= name %>"
11
8
  <%- end -%>
12
9
 
13
- gem "rake"
14
-
15
- # Pin minitest to 5.11.x to avoid warnings emitted by 5.12.
16
- # See https://github.com/googleapis/google-cloud-ruby/issues/4110
17
- gem "minitest", "~> 5.11.3"
10
+ # google-protobuf 3.12.0 requires Ruby 2.5 or later, so pin to 3.11 on older Rubies
11
+ gem "google-protobuf", (RUBY_VERSION < "2.5" ? "~> 3.11.4" : "~> 3.12")
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
13
13
  gem.description = <%= gem.description.inspect %>
14
14
  gem.summary = <%= gem.summary.inspect %>
15
15
  gem.homepage = <%= gem.homepage.inspect %>
16
- gem.license = "Apache-2.0"
16
+ gem.license = <%= gem.license_name.inspect %>
17
17
 
18
18
  gem.platform = Gem::Platform::RUBY
19
19
 
@@ -23,17 +23,15 @@ Gem::Specification.new do |gem|
23
23
 
24
24
  gem.required_ruby_version = ">= 2.4"
25
25
 
26
- gem.add_dependency "google-cloud-core", "~> 1.5"
27
- <%- gem.gem_version_dependencies.each do |name, requirement| -%>
28
- gem.add_dependency "<%= name %>", "~> <%= requirement %>"
26
+ <%- gem.dependency_list.each do |name, requirements| -%>
27
+ gem.add_dependency <%= name.inspect %>, <%= requirements.map { |v| v.inspect }.join ", " %>
29
28
  <%- end -%>
30
29
 
31
- gem.add_development_dependency "autotest-suffix", "~> 1.1"
32
30
  gem.add_development_dependency "google-style", "~> 1.24.0"
33
- gem.add_development_dependency "minitest", "~> 5.10"
34
- gem.add_development_dependency "minitest-autotest", "~> 1.0"
31
+ gem.add_development_dependency "minitest", "~> 5.14"
35
32
  gem.add_development_dependency "minitest-focus", "~> 1.1"
36
33
  gem.add_development_dependency "minitest-rg", "~> 5.2"
34
+ gem.add_development_dependency "rake", ">= 12.0"
37
35
  gem.add_development_dependency "redcarpet", "~> 3.0"
38
36
  gem.add_development_dependency "simplecov", "~> 0.9"
39
37
  gem.add_development_dependency "yard", "~> 0.9"
@@ -32,6 +32,7 @@ for more usage information.
32
32
  $ gem install <%= gem.name %>
33
33
  ```
34
34
 
35
+ <%- unless gem.generic_endpoint? -%>
35
36
  In order to use this library, you first need to go through the following steps:
36
37
 
37
38
  1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
@@ -43,10 +44,11 @@ In order to use this library, you first need to go through the following steps:
43
44
  1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
44
45
  <%- end -%>
45
46
  <%- if gem.api_id -%>
46
- 1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>.googleapis.com)
47
+ 1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>)
47
48
  <%- end -%>
48
49
  1. {file:AUTHENTICATION.md Set up authentication.}
49
50
 
51
+ <%- end -%>
50
52
  <%- if gem.migration? %>
51
53
  ## Migrating from <%= gem.pre_migration_version %> versions
52
54
 
@@ -16,7 +16,7 @@ Documentation:
16
16
 
17
17
  Metrics/BlockLength:
18
18
  Exclude:
19
- - "samples/acceptance/*.rb"
19
+ - "samples/**/acceptance/*.rb"
20
20
 
21
21
  Naming/FileName:
22
22
  Exclude:
@@ -8,7 +8,9 @@
8
8
  ./lib/**/*.rb
9
9
  -
10
10
  README.md
11
+ <%- unless gem.generic_endpoint? -%>
11
12
  AUTHENTICATION.md
13
+ <%- end -%>
12
14
  <%- if gem.migration? -%>
13
15
  MIGRATING.md
14
16
  <%- end -%>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gapic-generator-cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernest Landrito
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-04-20 00:00:00.000000000 Z
13
+ date: 2020-06-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.4.0
35
+ version: 0.6.1
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.4.0
42
+ version: 0.6.1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: google-style
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -172,10 +172,10 @@ files:
172
172
  - cloud-rubocop.yml
173
173
  - lib/gapic/generator/cloud/version.rb
174
174
  - lib/gapic/generators/cloud_generator.rb
175
+ - lib/gapic/presenters/cloud_gem_presenter.rb
175
176
  - lib/gapic/presenters/wrapper_gem_presenter.rb
176
177
  - lib/gapic/presenters/wrapper_service_presenter.rb
177
178
  - templates/cloud/gem/authentication.erb
178
- - templates/cloud/gem/gemspec.erb
179
179
  - templates/cloud/gem/gitignore.erb
180
180
  - templates/cloud/gem/license.erb
181
181
  - templates/cloud/gem/rakefile.erb
@@ -198,7 +198,6 @@ files:
198
198
  - templates/cloud/wrapper_gem/rakefile.erb
199
199
  - templates/cloud/wrapper_gem/readme.erb
200
200
  - templates/cloud/wrapper_gem/rubocop.erb
201
- - templates/cloud/wrapper_gem/test_helper.erb
202
201
  - templates/cloud/wrapper_gem/version_test.erb
203
202
  - templates/cloud/wrapper_gem/yardopts.erb
204
203
  homepage: https://github.com/googleapis/gapic-generator-ruby
@@ -220,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
219
  - !ruby/object:Gem::Version
221
220
  version: '0'
222
221
  requirements: []
223
- rubygems_version: 3.1.2
222
+ rubygems_version: 3.0.3
224
223
  signing_key:
225
224
  specification_version: 4
226
225
  summary: An API Client Generator for Ruby in Ruby!
@@ -1,38 +0,0 @@
1
- <%- assert_locals gem -%>
2
- # -*- ruby -*-
3
- # encoding: utf-8
4
- require File.expand_path("lib/<%= gem.version_require %>", __dir__)
5
-
6
- Gem::Specification.new do |gem|
7
- gem.name = "<%= gem.name %>"
8
- gem.version = <%= gem.version_name_full %>
9
-
10
- gem.authors = <%= gem.authors.inspect %>
11
- gem.email = <%= gem.email.inspect %>
12
- gem.description = <%= gem.description.inspect %>
13
- gem.summary = <%= gem.summary.inspect %>
14
- gem.homepage = <%= gem.homepage.inspect %>
15
- gem.license = "Apache-2.0"
16
-
17
- gem.platform = Gem::Platform::RUBY
18
-
19
- gem.files = `git ls-files -- lib/*`.split("\n") +
20
- `git ls-files -- proto_docs/*`.split("\n") +
21
- ["README.md", "LICENSE.md", "AUTHENTICATION.md", ".yardopts"]
22
- gem.require_paths = ["lib"]
23
-
24
- gem.required_ruby_version = ">= 2.4"
25
-
26
- gem.add_dependency "gapic-common", "~> 0.2"
27
- gem.add_dependency "google-cloud-errors", "~> 1.0"
28
- <%- if gem.iam_dependency? -%>
29
- gem.add_dependency "grpc-google-iam-v1", ">= 0.6.10", "< 2.0"
30
- <%- end -%>
31
-
32
- gem.add_development_dependency "google-style", "~> 1.24.0"
33
- gem.add_development_dependency "minitest", "~> 5.10"
34
- gem.add_development_dependency "rake", ">= 12.0"
35
- gem.add_development_dependency "redcarpet", "~> 3.0"
36
- gem.add_development_dependency "simplecov", "~> 0.18"
37
- gem.add_development_dependency "yard", "~> 0.9"
38
- end
@@ -1,9 +0,0 @@
1
- <%- assert_locals gem -%>
2
- <%= render partial: "shared/header" -%>
3
-
4
- require "simplecov"
5
-
6
- gem "minitest"
7
- require "minitest/autorun"
8
- require "minitest/focus"
9
- require "minitest/rg"