gapic-generator-cloud 0.5.1 → 0.6.0

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: '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