gapic-generator-cloud 0.3.1

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.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +81 -0
  3. data/CONTRIBUTING.md +28 -0
  4. data/LICENSE +202 -0
  5. data/README.md +84 -0
  6. data/bin/protoc-gen-ruby_cloud +33 -0
  7. data/bin/ruby-cloud-docker-entrypoint +103 -0
  8. data/cloud-rubocop.yml +14 -0
  9. data/lib/gapic/generator/cloud/version.rb +23 -0
  10. data/lib/gapic/generators/cloud_generator.rb +119 -0
  11. data/lib/gapic/presenters/wrapper_gem_presenter.rb +123 -0
  12. data/lib/gapic/presenters/wrapper_service_presenter.rb +49 -0
  13. data/templates/cloud/gem/authentication.erb +172 -0
  14. data/templates/cloud/gem/gemspec.erb +38 -0
  15. data/templates/cloud/gem/gitignore.erb +23 -0
  16. data/templates/cloud/gem/license.erb +204 -0
  17. data/templates/cloud/gem/rakefile.erb +156 -0
  18. data/templates/cloud/gem/readme.erb +93 -0
  19. data/templates/cloud/gem/repo-metadata.erb +6 -0
  20. data/templates/cloud/gem/rubocop.erb +36 -0
  21. data/templates/cloud/gem/yardopts.erb +13 -0
  22. data/templates/cloud/service/client/_credentials.erb +30 -0
  23. data/templates/cloud/service/client/_requires.erb +2 -0
  24. data/templates/cloud/service/client/_self_configure.erb +15 -0
  25. data/templates/cloud/service/client/method/def/_rescue.erb +3 -0
  26. data/templates/cloud/service/client/method/docs/_error.erb +2 -0
  27. data/templates/cloud/shared/_license.erb +13 -0
  28. data/templates/cloud/wrapper_gem/_main.erb +90 -0
  29. data/templates/cloud/wrapper_gem/client_test.erb +22 -0
  30. data/templates/cloud/wrapper_gem/entrypoint.erb +4 -0
  31. data/templates/cloud/wrapper_gem/gemfile.erb +17 -0
  32. data/templates/cloud/wrapper_gem/gemspec.erb +40 -0
  33. data/templates/cloud/wrapper_gem/main.erb +5 -0
  34. data/templates/cloud/wrapper_gem/rakefile.erb +190 -0
  35. data/templates/cloud/wrapper_gem/readme.erb +95 -0
  36. data/templates/cloud/wrapper_gem/rubocop.erb +23 -0
  37. data/templates/cloud/wrapper_gem/test_helper.erb +9 -0
  38. data/templates/cloud/wrapper_gem/version_test.erb +11 -0
  39. data/templates/cloud/wrapper_gem/yardopts.erb +15 -0
  40. metadata +227 -0
@@ -0,0 +1,95 @@
1
+ # Ruby Client for the <%= gem.title %> API
2
+
3
+ <%= gem.summary %>
4
+
5
+ <%= gem.description %>
6
+
7
+ Actual client classes for the various versions of this API are defined in
8
+ _versioned_ client gems, with names of the form `<%= gem.name %>-v*`.
9
+ The gem `<%= gem.name %>` is a convenience wrapper library that brings the
10
+ verisoned gems in as dependencies, and provides high-level methods for
11
+ constructing clients.
12
+
13
+ View the [Client Library Documentation](<%= gem.library_documentation_url %>)
14
+ for this library, <%= gem.name %>, to see the convenience methods for
15
+ constructing client objects. Reference documentation for the client objects
16
+ themselves can be found in the client library documentation for the versioned
17
+ client gems:
18
+ <%- last_index = gem.versioned_gems.size - 1 -%>
19
+ <%- gem.versioned_gems.each_with_index do |name, i| -%>
20
+ <%- sep = i == last_index ? "." : "," -%>
21
+ [<%= name %>](https://googleapis.dev/ruby/<%= name %>/latest)<%= sep %>
22
+ <%- end -%>
23
+
24
+ <%- if gem.product_documentation_url -%>
25
+ See also the [Product Documentation](<%= gem.product_documentation_url %>)
26
+ for more usage information.
27
+
28
+ <%- end -%>
29
+ ## Quick Start
30
+
31
+ ```
32
+ $ gem install <%= gem.name %>
33
+ ```
34
+
35
+ In order to use this library, you first need to go through the following steps:
36
+
37
+ 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
38
+ <%- if gem.free_tier? -%>
39
+ 1. This API has a free tier. You may not need to
40
+ [enable billing](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
41
+ to get started.
42
+ <%- else -%>
43
+ 1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
44
+ <%- end -%>
45
+ <%- if gem.api_id -%>
46
+ 1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>.googleapis.com)
47
+ <%- end -%>
48
+ 1. {file:AUTHENTICATION.md Set up authentication.}
49
+
50
+ <%- if gem.migration? %>
51
+ ## Migrating from <%= gem.pre_migration_version %> versions
52
+
53
+ The <%= gem.migration_version %> release of the <%= gem.name %> client is a significant upgrade
54
+ based on a [next-gen code generator](https://github.com/googleapis/gapic-generator-ruby),
55
+ and includes substantial interface changes. Existing code written for earlier
56
+ versions of this library will likely require updates to use this version.
57
+ See the {file:MIGRATING.md MIGRATING.md} document for more information.
58
+
59
+ <%- end -%>
60
+ ## Enabling Logging
61
+
62
+ To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
63
+ The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html) as shown below,
64
+ or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
65
+ that will write logs to [Cloud Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
66
+ and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
67
+
68
+ Configuring a Ruby stdlib logger:
69
+
70
+ ```ruby
71
+ require "logger"
72
+
73
+ module MyLogger
74
+ LOGGER = Logger.new $stderr, level: Logger::WARN
75
+ def logger
76
+ LOGGER
77
+ end
78
+ end
79
+
80
+ # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
81
+ module GRPC
82
+ extend MyLogger
83
+ end
84
+ ```
85
+
86
+ ## Supported Ruby Versions
87
+
88
+ This library is supported on Ruby 2.4+.
89
+
90
+ Google provides official support for Ruby versions that are actively supported
91
+ by Ruby Core—that is, Ruby versions that are either in normal maintenance or
92
+ in security maintenance, and not end of life. Currently, this means Ruby 2.4
93
+ and later. Older versions of Ruby _may_ still work, but are unsupported and not
94
+ recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
95
+ about the Ruby support schedule.
@@ -0,0 +1,23 @@
1
+ <%- assert_locals gem -%>
2
+ inherit_gem:
3
+ google-style: google-style.yml
4
+
5
+ AllCops:
6
+ Exclude:
7
+ - "<%= gem.name %>.gemspec"
8
+ - "Rakefile"
9
+ - "acceptance/**/*"
10
+ - "test/**/*"
11
+
12
+ Bundler/OrderedGems:
13
+ Enabled: false
14
+ Documentation:
15
+ Enabled: false
16
+
17
+ Metrics/BlockLength:
18
+ Exclude:
19
+ - "samples/acceptance/*.rb"
20
+
21
+ Naming/FileName:
22
+ Exclude:
23
+ - "lib/<%= gem.name %>.rb"
@@ -0,0 +1,9 @@
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"
@@ -0,0 +1,11 @@
1
+ <%- assert_locals gem -%>
2
+ <%= render partial: "shared/header" -%>
3
+
4
+ require "helper"
5
+ require "<%= gem.version_require %>"
6
+
7
+ class <%= gem.namespace %>::VersionMinitest < Minitest::Test
8
+ def test_has_a_version
9
+ refute_nil <%= gem.version_name_full %>
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ <%- assert_locals gem -%>
2
+ --no-private
3
+ --title=<%= gem.title %> API
4
+ --exclude _pb\.rb$
5
+ --markup markdown
6
+ --markup-provider redcarpet
7
+
8
+ ./lib/**/*.rb
9
+ -
10
+ README.md
11
+ AUTHENTICATION.md
12
+ <%- if gem.migration? -%>
13
+ MIGRATING.md
14
+ <%- end -%>
15
+ LICENSE.md
metadata ADDED
@@ -0,0 +1,227 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gapic-generator-cloud
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Ernest Landrito
8
+ - Chris Smith
9
+ - Mike Moore
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2020-04-11 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: actionpack
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '5.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '5.2'
29
+ - !ruby/object:Gem::Dependency
30
+ name: gapic-generator
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - '='
34
+ - !ruby/object:Gem::Version
35
+ version: 0.3.1
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '='
41
+ - !ruby/object:Gem::Version
42
+ version: 0.3.1
43
+ - !ruby/object:Gem::Dependency
44
+ name: google-style
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.24.0
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 1.24.0
57
+ - !ruby/object:Gem::Dependency
58
+ name: protobuf
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '3.8'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.8'
71
+ - !ruby/object:Gem::Dependency
72
+ name: bundler
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '2.1'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '2.1'
85
+ - !ruby/object:Gem::Dependency
86
+ name: grpc-tools
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.19'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.19'
99
+ - !ruby/object:Gem::Dependency
100
+ name: minitest
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '5.0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '5.0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: minitest-autotest
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '1.0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '1.0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: minitest-focus
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '1.0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '1.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rake
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '12.0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '12.0'
155
+ description:
156
+ email:
157
+ - landrito@google.com
158
+ - quartzmo@gmail.com
159
+ - mike@blowmage.com
160
+ executables:
161
+ - protoc-gen-ruby_cloud
162
+ - ruby-cloud-docker-entrypoint
163
+ extensions: []
164
+ extra_rdoc_files: []
165
+ files:
166
+ - CHANGELOG.md
167
+ - CONTRIBUTING.md
168
+ - LICENSE
169
+ - README.md
170
+ - bin/protoc-gen-ruby_cloud
171
+ - bin/ruby-cloud-docker-entrypoint
172
+ - cloud-rubocop.yml
173
+ - lib/gapic/generator/cloud/version.rb
174
+ - lib/gapic/generators/cloud_generator.rb
175
+ - lib/gapic/presenters/wrapper_gem_presenter.rb
176
+ - lib/gapic/presenters/wrapper_service_presenter.rb
177
+ - templates/cloud/gem/authentication.erb
178
+ - templates/cloud/gem/gemspec.erb
179
+ - templates/cloud/gem/gitignore.erb
180
+ - templates/cloud/gem/license.erb
181
+ - templates/cloud/gem/rakefile.erb
182
+ - templates/cloud/gem/readme.erb
183
+ - templates/cloud/gem/repo-metadata.erb
184
+ - templates/cloud/gem/rubocop.erb
185
+ - templates/cloud/gem/yardopts.erb
186
+ - templates/cloud/service/client/_credentials.erb
187
+ - templates/cloud/service/client/_requires.erb
188
+ - templates/cloud/service/client/_self_configure.erb
189
+ - templates/cloud/service/client/method/def/_rescue.erb
190
+ - templates/cloud/service/client/method/docs/_error.erb
191
+ - templates/cloud/shared/_license.erb
192
+ - templates/cloud/wrapper_gem/_main.erb
193
+ - templates/cloud/wrapper_gem/client_test.erb
194
+ - templates/cloud/wrapper_gem/entrypoint.erb
195
+ - templates/cloud/wrapper_gem/gemfile.erb
196
+ - templates/cloud/wrapper_gem/gemspec.erb
197
+ - templates/cloud/wrapper_gem/main.erb
198
+ - templates/cloud/wrapper_gem/rakefile.erb
199
+ - templates/cloud/wrapper_gem/readme.erb
200
+ - templates/cloud/wrapper_gem/rubocop.erb
201
+ - templates/cloud/wrapper_gem/test_helper.erb
202
+ - templates/cloud/wrapper_gem/version_test.erb
203
+ - templates/cloud/wrapper_gem/yardopts.erb
204
+ homepage: https://github.com/googleapis/gapic-generator-ruby
205
+ licenses:
206
+ - Apache-2.0
207
+ metadata: {}
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubygems_version: 3.1.2
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: An API Client Generator for Ruby in Ruby!
227
+ test_files: []