class Gapic::Generators::AdsGenerator
The generator orchestrates the rendering of templates for Google Ads 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/ads_generator.rb, line 30 def initialize api super # if not specified otherwise in configuration, generate path helpers for the output messages in ads api.generate_path_helpers_output = true unless api.generate_path_helpers_output_defined? # if not specified otherwise in configuration, apply overrides to proto namespaces in ads api.override_proto_namespaces = true unless api.override_proto_namespaces_defined? # Configure to use prefer Ads templates use_templates! File.join __dir__, "../../../templates/ads" end
parameter_schema()
click to toggle source
Schema of the parameters that the generator accepts @return [Gapic::Schema::ParameterSchema]
# File lib/gapic/generators/ads_generator.rb, line 86 def self.parameter_schema DefaultGeneratorParameters.default_schema end
Public Instance Methods
generate()
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/ads_generator.rb, line 51 def generate files = [] gem = 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/client.erb", "lib/#{service.client_file_path}", service: service) files << g("service/credentials.erb", "lib/#{service.credentials_file_path}", service: service) 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? end end # Gem level files files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem) 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