Class: Gapic::Generators::DefaultGenerator
- Inherits:
-
BaseGenerator
- Object
- BaseGenerator
- Gapic::Generators::DefaultGenerator
- Defined in:
- lib/gapic/generators/default_generator.rb
Overview
The generator orchestrates the rendering of templates.
Class Method Summary collapse
-
.parameter_schema ⇒ Gapic::Schema::ParameterSchema
Schema of the parameters that the generator accepts.
Instance Method Summary collapse
-
#generate(gem_presenter: nil) ⇒ Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>
Generates all the files for the API.
-
#initialize(api) ⇒ DefaultGenerator
constructor
Initializes the generator.
Constructor Details
#initialize(api) ⇒ DefaultGenerator
Initializes the generator.
29 30 31 32 33 34 |
# 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 |
Class Method Details
.parameter_schema ⇒ Gapic::Schema::ParameterSchema
Schema of the parameters that the generator accepts
109 110 111 |
# File 'lib/gapic/generators/default_generator.rb', line 109 def self.parameter_schema DefaultGeneratorParameters.default_schema end |
Instance Method Details
#generate(gem_presenter: nil) ⇒ Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>
Generates all the files for the API.
45 46 47 48 49 50 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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# 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/grpc_transcoding.erb", "lib/#{service.rest.transcoding_helper_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. 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 |