class Gapic::Generators::CloudGenerator
The generator orchestrates the rendering of templates for Google Cloud projects.
Public Class Methods
new(api)
click to toggle source
Initializes the generator.
@param api [Gapic::Schema::Api] The API model/context to
generate.
Calls superclass method
# File lib/gapic/generators/cloud_generator.rb, line 32 def initialize api gem_config = api.configuration[:gem] ||= {} gem_config[:homepage] ||= "https://github.com/googleapis/google-cloud-ruby" # The gapic metadata generation is disabled by default as per spec. # However it should be enabled by default for cloud libraries, otherwise we'll have to # enable it in every synth/bazel file. api.configuration[:generate_metadata] = true if api.configuration[:generate_metadata].nil? super # Configure to use prefer Google Cloud templates use_templates! File.join __dir__, "../../../templates/cloud" end
parameter_schema()
click to toggle source
Schema of the parameters that the generator accepts @return [Gapic::Schema::ParameterSchema]
# File lib/gapic/generators/cloud_generator.rb, line 114 def self.parameter_schema CloudGeneratorParameters.default_schema end
Public Instance Methods
generate(gem_presenter: nil)
click to toggle source
Generates all the files for the API.
@return [Array<
Google::Protobuf::Compiler::CodeGeneratorResponse::File>] The files that were generated for the API.
Calls superclass method
# File lib/gapic/generators/cloud_generator.rb, line 52 def generate gem_presenter: nil gem_config = @api.configuration[:gem] ||= {} return generate_wrapper if gem_config[:version_dependencies] gem = gem_presenter || Gapic::Presenters.cloud_gem_presenter(@api) orig_files = super gem_presenter: gem # Additional Gem level files cloud_files = [] cloud_files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem) cloud_files << g("gem/yardopts-cloudrad.erb", ".yardopts-cloudrad", gem: gem) unless gem.services.empty? || gem.generic_endpoint? cloud_files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem) end format_files cloud_files orig_files + cloud_files end
generate_wrapper()
click to toggle source
Generates the files for a wrapper.
@return [Array<Google::Protobuf::Compiler::CodeGeneratorResponse::File>]
The files that were generated for the API.
# File lib/gapic/generators/cloud_generator.rb, line 81 def generate_wrapper files = [] gem = Gapic::Presenters.wrapper_gem_presenter @api files << g("gem/gitignore.erb", ".gitignore", gem: gem) files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem) files << g("wrapper_gem/rubocop.erb", ".rubocop.yml", gem: gem) files << g("wrapper_gem/yardopts.erb", ".yardopts", gem: gem) files << g("wrapper_gem/yardopts-cloudrad.erb", ".yardopts-cloudrad", gem: gem) files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem) unless gem.generic_endpoint? files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem) files << g("wrapper_gem/gemfile.erb", "Gemfile", gem: gem) files << g("gem/license.erb", "LICENSE.md", gem: gem) files << g("wrapper_gem/rakefile.erb", "Rakefile", gem: gem) files << g("wrapper_gem/readme.erb", "README.md", gem: gem) files << g("wrapper_gem/gemspec.erb", "#{gem.name}.gemspec", gem: gem) files << g("wrapper_gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem) if gem.needs_entrypoint? files << g("wrapper_gem/main.erb", "lib/#{gem.namespace_file_path}", gem: gem) files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem) files << g("gem/test_helper.erb", "test/helper.rb", gem: gem) files << g("wrapper_gem/client_test.erb", "test/#{gem.namespace_require}/client_test.rb", gem: gem) files << g("wrapper_gem/version_test.erb", "test/#{gem.namespace_require}/version_test.rb", gem: gem) format_files files files end
Private Instance Methods
format_config()
click to toggle source
Override the default rubocop config file to be used.
# File lib/gapic/generators/cloud_generator.rb, line 123 def format_config @api.configuration[:format_config] || google_style_config end
google_style_config()
click to toggle source
Path to the rubocop file for this project, which uses google-style
# File lib/gapic/generators/cloud_generator.rb, line 130 def google_style_config File.expand_path File.join __dir__, "../../../cloud-rubocop.yml" end