gapic-generator 0.6.12 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +6 -0
 - data/bin/protoc-gen-ruby_gapic +1 -1
 - data/lib/gapic/formatting_utils.rb +2 -1
 - data/lib/gapic/generator/version.rb +1 -1
 - data/lib/gapic/generators/default_generator.rb +13 -12
 - data/lib/gapic/presenters/gem_presenter.rb +23 -0
 - data/lib/gapic/presenters/package_presenter.rb +18 -0
 - data/lib/gapic/presenters/service_presenter.rb +30 -0
 - data/templates/default/gem/gapic_metadata_json.erb +2 -0
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: c9f0e5ee2a9fd5c53dd43b0cc3d04c0c6c590ce06782dcb0a5eb9a346369d241
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7a4787ff915d5a8355677377f60481fa5f714923ccf4d1f65e02f5ef8754dd4d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c01dd5965a8a54e79e802135eb6df543200b338252e7f129a6adddc53e1c9d92ae91043ebe3ad30846ae496b868d489a1190b477b72448f8ecc022abcd1eb6bb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: df3aed51dc4573c7bde9370f77920434a58bb12b13e4a3388fe741deabee9d0ecefa60f50b165c7ab6856a9ea5c0149d789ab825059bf93d1749de66358298ad
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Release History for gapic-generator
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ### 0.6.13 / 2021-02-22
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * Remove InputOnly and OutputOnly proto tags from docs to avoid confusing YARD.
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Generate drift manifest.
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Executable entrypoints set the default external locale to utf-8.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       3 
9 
     | 
    
         
             
            ### 0.6.12 / 2021-02-01
         
     | 
| 
       4 
10 
     | 
    
         | 
| 
       5 
11 
     | 
    
         
             
            * No changes.
         
     | 
    
        data/bin/protoc-gen-ruby_gapic
    CHANGED
    
    
| 
         @@ -24,6 +24,7 @@ module Gapic 
     | 
|
| 
       24 
24 
     | 
    
         
             
                @brace_detector = /\A(?<pre>[^`]*(`[^`]*`[^`]*)*[^`\\])?\{(?<inside>[^\s][^}]*)\}(?<post>.*)\z/m
         
     | 
| 
       25 
25 
     | 
    
         
             
                @xref_detector = /\A(?<pre>[^`]*(`[^`]*`[^`]*)*)?\[(?<text>[\w\. `-]+)\]\[(?<addr>[\w\.]+)\](?<post>.*)\z/m
         
     | 
| 
       26 
26 
     | 
    
         
             
                @list_element_detector = /\A\s*(\*|\+|-|[0-9a-zA-Z]+\.)\s/
         
     | 
| 
      
 27 
     | 
    
         
            +
                @omit_lines = ["@InputOnly\n", "@OutputOnly\n"]
         
     | 
| 
       27 
28 
     | 
    
         | 
| 
       28 
29 
     | 
    
         
             
                class << self
         
     | 
| 
       29 
30 
     | 
    
         
             
                  ##
         
     | 
| 
         @@ -49,7 +50,7 @@ module Gapic 
     | 
|
| 
       49 
50 
     | 
    
         
             
                    # preformatted.
         
     | 
| 
       50 
51 
     | 
    
         
             
                    in_block = nil
         
     | 
| 
       51 
52 
     | 
    
         
             
                    base_indent = 0
         
     | 
| 
       52 
     | 
    
         
            -
                    lines.map do |line|
         
     | 
| 
      
 53 
     | 
    
         
            +
                    (lines - @omit_lines).map do |line|
         
     | 
| 
       53 
54 
     | 
    
         
             
                      indent = line_indent line
         
     | 
| 
       54 
55 
     | 
    
         
             
                      if indent.nil?
         
     | 
| 
       55 
56 
     | 
    
         
             
                        in_block = nil
         
     | 
| 
         @@ -65,18 +65,19 @@ module Gapic 
     | 
|
| 
       65 
65 
     | 
    
         
             
                    end
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
67 
     | 
    
         
             
                    # Gem level files
         
     | 
| 
       68 
     | 
    
         
            -
                    files << g("gem/gitignore.erb", 
     | 
| 
       69 
     | 
    
         
            -
                    files << g("gem/version.erb", 
     | 
| 
       70 
     | 
    
         
            -
                    files << g("gem/test_helper.erb", 
     | 
| 
       71 
     | 
    
         
            -
                    files << g("gem/gemspec.erb", 
     | 
| 
       72 
     | 
    
         
            -
                    files << g("gem/gemfile.erb", 
     | 
| 
       73 
     | 
    
         
            -
                    files << g("gem/rakefile.erb", 
     | 
| 
       74 
     | 
    
         
            -
                    files << g("gem/readme.erb", 
     | 
| 
       75 
     | 
    
         
            -
                    files << g("gem/changelog.erb", 
     | 
| 
       76 
     | 
    
         
            -
                    files << g("gem/rubocop.erb", 
     | 
| 
       77 
     | 
    
         
            -
                    files << g("gem/yardopts.erb", 
     | 
| 
       78 
     | 
    
         
            -
                    files << g("gem/license.erb", 
     | 
| 
       79 
     | 
    
         
            -
                    files << g("gem/entrypoint.erb", 
     | 
| 
      
 68 
     | 
    
         
            +
                    files << g("gem/gitignore.erb",             ".gitignore",                   gem: gem)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    files << g("gem/version.erb",               "lib/#{gem.version_file_path}", gem: gem)
         
     | 
| 
      
 70 
     | 
    
         
            +
                    files << g("gem/test_helper.erb",           "test/helper.rb",               gem: gem)
         
     | 
| 
      
 71 
     | 
    
         
            +
                    files << g("gem/gemspec.erb",               "#{gem.name}.gemspec",          gem: gem)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    files << g("gem/gemfile.erb",               "Gemfile",                      gem: gem)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    files << g("gem/rakefile.erb",              "Rakefile",                     gem: gem)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    files << g("gem/readme.erb",                "README.md",                    gem: gem)
         
     | 
| 
      
 75 
     | 
    
         
            +
                    files << g("gem/changelog.erb",             "CHANGELOG.md",                 gem: gem)
         
     | 
| 
      
 76 
     | 
    
         
            +
                    files << g("gem/rubocop.erb",               ".rubocop.yml",                 gem: gem)
         
     | 
| 
      
 77 
     | 
    
         
            +
                    files << g("gem/yardopts.erb",              ".yardopts",                    gem: gem)
         
     | 
| 
      
 78 
     | 
    
         
            +
                    files << g("gem/license.erb",               "LICENSE.md",                   gem: gem)
         
     | 
| 
      
 79 
     | 
    
         
            +
                    files << g("gem/entrypoint.erb",            "lib/#{gem.name}.rb",           gem: gem)
         
     | 
| 
      
 80 
     | 
    
         
            +
                    files << g("gem/gapic_metadata_json.erb",   "gapic_metadata.json",          gem: gem)
         
     | 
| 
       80 
81 
     | 
    
         | 
| 
       81 
82 
     | 
    
         
             
                    gem.proto_files.each do |proto_file|
         
     | 
| 
       82 
83 
     | 
    
         
             
                      files << g("proto_docs/proto_file.erb", "proto_docs/#{proto_file.docs_file_path}", file: proto_file)
         
     | 
| 
         @@ -17,6 +17,8 @@ 
     | 
|
| 
       17 
17 
     | 
    
         
             
            require "gapic/helpers/filepath_helper"
         
     | 
| 
       18 
18 
     | 
    
         
             
            require "gapic/helpers/namespace_helper"
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
            require "json"
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       20 
22 
     | 
    
         
             
            module Gapic
         
     | 
| 
       21 
23 
     | 
    
         
             
              module Presenters
         
     | 
| 
       22 
24 
     | 
    
         
             
                ##
         
     | 
| 
         @@ -191,6 +193,27 @@ module Gapic 
     | 
|
| 
       191 
193 
     | 
    
         
             
                                .sort_by { |name, _requirements| name }
         
     | 
| 
       192 
194 
     | 
    
         
             
                  end
         
     | 
| 
       193 
195 
     | 
    
         | 
| 
      
 196 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 197 
     | 
    
         
            +
                  # Returns a hash with a drift_manifest of
         
     | 
| 
      
 198 
     | 
    
         
            +
                  # a first package in this gem
         
     | 
| 
      
 199 
     | 
    
         
            +
                  # (while the behaviour in case of multiple packages is clarified).
         
     | 
| 
      
 200 
     | 
    
         
            +
                  # See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
         
     | 
| 
      
 201 
     | 
    
         
            +
                  #
         
     | 
| 
      
 202 
     | 
    
         
            +
                  # @return [Hash]
         
     | 
| 
      
 203 
     | 
    
         
            +
                  def first_package_drift_manifest
         
     | 
| 
      
 204 
     | 
    
         
            +
                    return {} unless packages?
         
     | 
| 
      
 205 
     | 
    
         
            +
                    packages[0].drift_manifest
         
     | 
| 
      
 206 
     | 
    
         
            +
                  end
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 209 
     | 
    
         
            +
                  # Returns a drift manifest of the first package in
         
     | 
| 
      
 210 
     | 
    
         
            +
                  # a pretty JSON string form
         
     | 
| 
      
 211 
     | 
    
         
            +
                  #
         
     | 
| 
      
 212 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 213 
     | 
    
         
            +
                  def first_package_drift_json
         
     | 
| 
      
 214 
     | 
    
         
            +
                    JSON.pretty_generate first_package_drift_manifest
         
     | 
| 
      
 215 
     | 
    
         
            +
                  end
         
     | 
| 
      
 216 
     | 
    
         
            +
             
     | 
| 
       194 
217 
     | 
    
         
             
                  private
         
     | 
| 
       195 
218 
     | 
    
         | 
| 
       196 
219 
     | 
    
         
             
                  def gem_config key
         
     | 
| 
         @@ -99,6 +99,24 @@ module Gapic 
     | 
|
| 
       99 
99 
     | 
    
         
             
                  def helpers_require
         
     | 
| 
       100 
100 
     | 
    
         
             
                    package_require + "/_helpers"
         
     | 
| 
       101 
101 
     | 
    
         
             
                  end
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 104 
     | 
    
         
            +
                  # Returns a hash with a drift_manifest of this package
         
     | 
| 
      
 105 
     | 
    
         
            +
                  # describing correspondence between the proto description
         
     | 
| 
      
 106 
     | 
    
         
            +
                  # of the package with the generated code for the package.
         
     | 
| 
      
 107 
     | 
    
         
            +
                  # See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
         
     | 
| 
      
 108 
     | 
    
         
            +
                  #
         
     | 
| 
      
 109 
     | 
    
         
            +
                  # @return [Hash]
         
     | 
| 
      
 110 
     | 
    
         
            +
                  def drift_manifest
         
     | 
| 
      
 111 
     | 
    
         
            +
                    {
         
     | 
| 
      
 112 
     | 
    
         
            +
                      schema:         "1.0",
         
     | 
| 
      
 113 
     | 
    
         
            +
                      comment:        "This file maps proto services/RPCs to the corresponding library clients/methods",
         
     | 
| 
      
 114 
     | 
    
         
            +
                      language:       "ruby",
         
     | 
| 
      
 115 
     | 
    
         
            +
                      protoPackage:   name,
         
     | 
| 
      
 116 
     | 
    
         
            +
                      libraryPackage: namespace,
         
     | 
| 
      
 117 
     | 
    
         
            +
                      services:       services.map { |s| [s.grpc_service_name, s.drift_manifest] }.to_h
         
     | 
| 
      
 118 
     | 
    
         
            +
                    }
         
     | 
| 
      
 119 
     | 
    
         
            +
                  end
         
     | 
| 
       102 
120 
     | 
    
         
             
                end
         
     | 
| 
       103 
121 
     | 
    
         
             
              end
         
     | 
| 
       104 
122 
     | 
    
         
             
            end
         
     | 
| 
         @@ -333,10 +333,40 @@ module Gapic 
     | 
|
| 
       333 
333 
     | 
    
         
             
                    @api.grpc_service_config.service_level_configs[grpc_full_name]
         
     | 
| 
       334 
334 
     | 
    
         
             
                  end
         
     | 
| 
       335 
335 
     | 
    
         | 
| 
      
 336 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 337 
     | 
    
         
            +
                  # The short proto name for this service
         
     | 
| 
      
 338 
     | 
    
         
            +
                  #
         
     | 
| 
      
 339 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 340 
     | 
    
         
            +
                  def grpc_service_name
         
     | 
| 
      
 341 
     | 
    
         
            +
                    @service.name
         
     | 
| 
      
 342 
     | 
    
         
            +
                  end
         
     | 
| 
      
 343 
     | 
    
         
            +
             
     | 
| 
       336 
344 
     | 
    
         
             
                  def grpc_full_name
         
     | 
| 
       337 
345 
     | 
    
         
             
                    @service.address.join "."
         
     | 
| 
       338 
346 
     | 
    
         
             
                  end
         
     | 
| 
       339 
347 
     | 
    
         | 
| 
      
 348 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 349 
     | 
    
         
            +
                  # Returns a hash with a drift_manifest of this service,
         
     | 
| 
      
 350 
     | 
    
         
            +
                  # describing correspondence between the proto description
         
     | 
| 
      
 351 
     | 
    
         
            +
                  # of the service with the generated code for the service.
         
     | 
| 
      
 352 
     | 
    
         
            +
                  # See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
         
     | 
| 
      
 353 
     | 
    
         
            +
                  #
         
     | 
| 
      
 354 
     | 
    
         
            +
                  # @return [Hash]
         
     | 
| 
      
 355 
     | 
    
         
            +
                  def drift_manifest
         
     | 
| 
      
 356 
     | 
    
         
            +
                    {
         
     | 
| 
      
 357 
     | 
    
         
            +
                      clients: {
         
     | 
| 
      
 358 
     | 
    
         
            +
                        grpc: {
         
     | 
| 
      
 359 
     | 
    
         
            +
                          libraryClient: client_name_full,
         
     | 
| 
      
 360 
     | 
    
         
            +
                          # The methods should grouped by grpc_method_name and then
         
     | 
| 
      
 361 
     | 
    
         
            +
                          # their names are returned together in an array.
         
     | 
| 
      
 362 
     | 
    
         
            +
                          # For Ruby currently we have 1:1 proto to code
         
     | 
| 
      
 363 
     | 
    
         
            +
                          # correspondence for methods, so our generation is easier
         
     | 
| 
      
 364 
     | 
    
         
            +
                          methods:       methods.map { |m| [m.grpc_method_name, [m.name]] }.to_h
         
     | 
| 
      
 365 
     | 
    
         
            +
                        }
         
     | 
| 
      
 366 
     | 
    
         
            +
                      }
         
     | 
| 
      
 367 
     | 
    
         
            +
                    }
         
     | 
| 
      
 368 
     | 
    
         
            +
                  end
         
     | 
| 
      
 369 
     | 
    
         
            +
             
     | 
| 
       340 
370 
     | 
    
         
             
                  private
         
     | 
| 
       341 
371 
     | 
    
         | 
| 
       342 
372 
     | 
    
         
             
                  def default_config key
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: gapic-generator
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.6.13
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ernest Landrito
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2021-02- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2021-02-23 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: actionpack
         
     | 
| 
         @@ -246,6 +246,7 @@ files: 
     | 
|
| 
       246 
246 
     | 
    
         
             
            - templates/default/gem/_version.erb
         
     | 
| 
       247 
247 
     | 
    
         
             
            - templates/default/gem/changelog.erb
         
     | 
| 
       248 
248 
     | 
    
         
             
            - templates/default/gem/entrypoint.erb
         
     | 
| 
      
 249 
     | 
    
         
            +
            - templates/default/gem/gapic_metadata_json.erb
         
     | 
| 
       249 
250 
     | 
    
         
             
            - templates/default/gem/gemfile.erb
         
     | 
| 
       250 
251 
     | 
    
         
             
            - templates/default/gem/gemspec.erb
         
     | 
| 
       251 
252 
     | 
    
         
             
            - templates/default/gem/gitignore.erb
         
     |