gapic-generator-cloud 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05991cbbec5b9595616970ff1f3a119df0630e2c42065946237a9066db8a6d7d'
4
- data.tar.gz: 3bd49bf2a990e322ca5e751765ed6dec1654e5cf850a5367959d765d81471ffa
3
+ metadata.gz: '02926a88b55343003c21f8032beb370d1bbdb2ae37ebf88aefe0ddd4d40a69df'
4
+ data.tar.gz: ced33bd5a212b6bd52a31bb9a49eee2913423a0350bfea48f33d18ced6ca3a83
5
5
  SHA512:
6
- metadata.gz: d7cd78ff4fea33d1570025d27b5c7d95d85ef81305d6cd099a0269d7a6c55df9af8cf2f2ff8871a4e41a33fa2d6dd644e381272faf94e171c4803a6cf963cf97
7
- data.tar.gz: 80b97974c461eca68e5126319dbfd47fac990c95c3f2f4a50e8e726d1226f1304541ab383f213a750bfd0bccd810b9aafd0614687152944d6c5a3d73163f73f1
6
+ metadata.gz: 7ceca5878427fafb3b122924851298a99addaa2832ff45eb3219178cbb63e31545a91504909e54c1c05d945a75967c3f98680e4a2dbf0728270269ae5ba18bd1
7
+ data.tar.gz: 82e55f290ca429d499158c9f33342e3895b06c6de1e2d1d37eee88718561501444f713503279c04d4fb7bd13fbf41d42b98cae4293d6a3edb8940f014057e1a3
@@ -1,5 +1,13 @@
1
1
  # Release History for gapic-generator-cloud
2
2
 
3
+ ### 0.6.0 / 2020-06-02
4
+
5
+ * Includes changes from gapic-generator 0.6.0.
6
+ * Support for clients with generic endpoint and credentials.
7
+ * Support for adding extra dependencies.
8
+ * Fix the logic determining whether a wrapper needs a separate entrypoint file.
9
+ * Disable Metrics/BlockLength check for all sample tests.
10
+
3
11
  ### 0.5.1 / 2020-05-21
4
12
 
5
13
  * Includes changes from gapic-generator 0.5.1
@@ -21,7 +21,8 @@ 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.
@@ -54,7 +55,8 @@ map_option_map = {
54
55
  ":common_services" => "ruby-cloud-common-services",
55
56
  ":overrides.:file_path" => "ruby-cloud-path-override",
56
57
  ":overrides.:namespace" => "ruby-cloud-namespace-override",
57
- ":overrides.:service" => "ruby-cloud-service-override"
58
+ ":overrides.:service" => "ruby-cloud-service-override",
59
+ ":gem.:extra_dependencies" => "ruby-cloud-extra-dependencies"
58
60
  }
59
61
 
60
62
  # 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.5.1"
21
+ VERSION = "0.6.0"
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)
@@ -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
 
@@ -51,7 +51,7 @@ module Gapic
51
51
  end
52
52
 
53
53
  def needs_entrypoint?
54
- name != namespace_file_path
54
+ name != namespace_require
55
55
  end
56
56
 
57
57
  def needs_default_config_block?
@@ -92,19 +92,24 @@ module Gapic
92
92
  gem_config(:version_dependencies).to_s.split(";").map { |str| str.split ":" }
93
93
  end
94
94
 
95
- def gem_version_dependencies
96
- version_dependencies.sort_by { |version, _requirement| version }
97
- .map { |version, requirement| ["#{name}-#{version}", requirement] }
98
- end
99
-
100
95
  def versioned_gems
101
- gem_version_dependencies.map { |name, _requirement| name }
96
+ version_dependencies.map { |version, _requirement| "#{name}-#{version}" }.sort
102
97
  end
103
98
 
104
99
  def default_version
105
100
  version_dependencies.first&.first
106
101
  end
107
102
 
103
+ def dependencies
104
+ deps = { "google-cloud-core" => "~> 1.5" }
105
+ version_dependencies.each do |version, requirement|
106
+ deps["#{name}-#{version}"] = "~> #{requirement}"
107
+ end
108
+ extra_deps = gem_config :extra_dependencies
109
+ deps.merge! extra_deps if extra_deps
110
+ deps
111
+ end
112
+
108
113
  def google_cloud_short_name
109
114
  m = /^google-cloud-(.*)$/.match name
110
115
  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
@@ -53,7 +53,7 @@ end
53
53
  # Acceptance tests
54
54
  desc "Run the <%= gem.name %> acceptance tests."
55
55
  task :acceptance, :project, :keyfile do |t, args|
56
- <%- if service -%>
56
+ <%- if service && !gem.generic_endpoint? -%>
57
57
  project = args[:project]
58
58
  project ||=
59
59
  ENV["<%= gem.env_prefix %>_TEST_PROJECT"] ||
@@ -79,8 +79,8 @@ task :acceptance, :project, :keyfile do |t, args|
79
79
  ENV["<%= gem.env_prefix %>_PROJECT"] = project
80
80
  ENV["<%= gem.env_prefix %>_TEST_PROJECT"] = project
81
81
  ENV["<%= gem.env_prefix %>_KEYFILE_JSON"] = keyfile
82
- <%- end -%>
83
82
 
83
+ <%- end -%>
84
84
  Rake::Task["acceptance:run"].invoke
85
85
  end
86
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:
@@ -29,6 +30,7 @@ In order to use this library, you first need to go through the following steps:
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? -%>
@@ -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,10 +3,7 @@ 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,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,9 +23,8 @@ 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
30
  gem.add_development_dependency "google-style", "~> 1.24.0"
@@ -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)
@@ -47,6 +48,7 @@ In order to use this library, you first need to go through the following steps:
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.5.1
4
+ version: 0.6.0
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-05-25 00:00:00.000000000 Z
13
+ date: 2020-06-02 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.5.1
35
+ version: 0.6.0
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.5.1
42
+ version: 0.6.0
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
@@ -1,40 +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.14"
34
- gem.add_development_dependency "minitest-focus", "~> 1.1"
35
- gem.add_development_dependency "minitest-rg", "~> 5.2"
36
- gem.add_development_dependency "rake", ">= 12.0"
37
- gem.add_development_dependency "redcarpet", "~> 3.0"
38
- gem.add_development_dependency "simplecov", "~> 0.18"
39
- gem.add_development_dependency "yard", "~> 0.9"
40
- end