Class: Gapic::Generators::AdsGenerator
- Inherits:
-
DefaultGenerator
- Object
- DefaultGenerator
- Gapic::Generators::AdsGenerator
- Defined in:
- lib/gapic/generators/ads_generator.rb
Overview
The generator orchestrates the rendering of templates for Google Ads projects.
Class Method Summary collapse
-
.parameter_schema ⇒ Gapic::Schema::ParameterSchema
Schema of the parameters that the generator accepts.
Instance Method Summary collapse
-
#generate ⇒ Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>
Generates all the files for the API.
-
#initialize(api) ⇒ AdsGenerator
constructor
Initializes the generator.
Constructor Details
#initialize(api) ⇒ AdsGenerator
Initializes the generator.
30 31 32 33 34 35 36 37 38 39 40 |
# 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 |
Class Method Details
.parameter_schema ⇒ Gapic::Schema::ParameterSchema
Schema of the parameters that the generator accepts
86 87 88 |
# File 'lib/gapic/generators/ads_generator.rb', line 86 def self.parameter_schema DefaultGeneratorParameters.default_schema end |
Instance Method Details
#generate ⇒ Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>
Generates all the files for the API.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# 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 |