Class: Gapic::Generators::CloudGenerator

Inherits:
DefaultGenerator
  • Object
show all
Defined in:
lib/gapic/generators/cloud_generator.rb

Overview

The generator orchestrates the rendering of templates for Google Cloud projects.

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ CloudGenerator

Initializes the generator.

Parameters:

  • api (Gapic::Schema::Api) —

    The API model/context to generate.



28
29
30
31
32
33
34
35
36
# File 'lib/gapic/generators/cloud_generator.rb', line 28

def initialize api
  gem_config = api.configuration[:gem] ||= {}
  gem_config[:homepage] ||= "https://github.com/googleapis/google-cloud-ruby"

  super

  # Configure to use prefer Google Cloud templates
  use_templates! File.join __dir__, "../../../templates/cloud"
end

Instance Method Details

#generate ⇒ Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>

Generates all the files for the API.

Returns:

  • (Array< Google::Protobuf::Compiler::CodeGeneratorResponse::File>) —

    The files that were generated for the API.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/gapic/generators/cloud_generator.rb', line 43

def generate
  orig_files = super

  cloud_files = []

  gem = gem_presenter @api

  # Additional Gem level files
  cloud_files << g("gem/repo-metadata.erb",  ".repo-metadata.json", gem: gem)
  cloud_files << g("gem/authentication.erb", "AUTHENTICATION.md",   gem: gem) unless gem.services.empty?
  cloud_files << g("gem/dashed.erb",         "lib/#{gem.name}.rb",  gem: gem)

  format_files cloud_files

  orig_files + cloud_files
end