class Gapic::Generators::DefaultGenerator
The generator orchestrates the rendering of templates.
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
Gapic::Generators::BaseGenerator::new
# File lib/gapic/generators/default_generator.rb, line 29 def initialize api super # Configure to use a custom templates directory use_templates! File.join __dir__, "../../../templates/default" end
parameter_schema()
click to toggle source
Schema
of the parameters that the generator accepts @return [Gapic::Schema::ParameterSchema]
# File lib/gapic/generators/default_generator.rb, line 109 def self.parameter_schema DefaultGeneratorParameters.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.
# File lib/gapic/generators/default_generator.rb, line 45 def generate gem_presenter: nil files = [] gem = gem_presenter || Gapic::Presenters.gem_presenter(@api) gem.packages.each do |package| # Package level files files << g("package.erb", "lib/#{package.package_file_path}", package: package) package.services.each do |service| # Service level files files << g("service.erb", "lib/#{service.service_file_path}", service: service) files << g("service/rest.erb", "lib/#{service.rest.service_rest_file_path}", service: service) if @api.generate_rest_clients? and service.methods_rest_bindings? files << g("service/client.erb", "lib/#{service.client_file_path}", service: service) unless @api.generate_rest_clients? files << g("service/credentials.erb", "lib/#{service.credentials_file_path}", service: service) unless gem.generic_endpoint? files << g("service/paths.erb", "lib/#{service.paths_file_path}", service: service) if service.paths? files << g("service/operations.erb", "lib/#{service.operations_file_path}", service: service) if service.lro? && !@api.generate_rest_clients? files << g("service/rest/client.erb", "lib/#{service.rest.client_file_path}", service: service) if @api.generate_rest_clients? and service.methods_rest_bindings? files << g("service/rest/service_stub.erb", "lib/#{service.rest.service_stub_file_path}", service: service) if @api.generate_rest_clients? and service.methods_rest_bindings? files << g("service/rest/test/client.erb", "test/#{service.rest.test_client_file_path}", service: service) if @api.generate_rest_clients? and service.methods_rest_bindings? files << g("service/test/client.erb", "test/#{service.test_client_file_path}", service: service) unless @api.generate_rest_clients? files << g("service/test/client_paths.erb", "test/#{service.test_paths_file_path}", service: service) if service.paths? files << g("service/test/client_operations.erb", "test/#{service.test_client_operations_file_path}", service: service) if service.lro? && !@api.generate_rest_clients? if @api.generate_standalone_snippets? service.methods.each do |method| snippet = method.snippet files << g("snippets/standalone.erb", "snippets/#{snippet.snippet_file_path}", snippet: snippet) end end end end # Gem level files files << g("gem/gitignore.erb", ".gitignore", 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("gem/gemspec.erb", "#{gem.name}.gemspec", gem: gem) files << g("gem/gemfile.erb", "Gemfile", gem: gem) files << g("gem/rakefile.erb", "Rakefile", gem: gem) files << g("gem/readme.erb", "README.md", gem: gem) files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem) files << g("gem/rubocop.erb", ".rubocop.yml", gem: gem) files << g("gem/yardopts.erb", ".yardopts", gem: gem) files << g("gem/license.erb", "LICENSE.md", gem: gem) files << g("gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem) files << g("gem/gapic_metadata_json.erb", "gapic_metadata.json", gem: gem) if @api.generate_metadata files << g("snippets/gemfile.erb", "snippets/Gemfile", gem: gem) if @api.generate_standalone_snippets? gem.proto_files.each do |proto_file| files << g("proto_docs/proto_file.erb", "proto_docs/#{proto_file.docs_file_path}", file: proto_file) end files << g("proto_docs/readme.erb", "proto_docs/README.md", 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.
Calls superclass method
Gapic::Generators::BaseGenerator#format_config
# File lib/gapic/generators/default_generator.rb, line 117 def format_config @api.configuration[:format_config] || super end