<%- assert_locals gem -%> <% @requires = capture do %> <%- if gem.needs_dashed_ruby_file? -%> require "<%= gem.name %>" <%- end -%> <% end %> <%- gem.services.each do |service| -%> ## # Create a new client object for <%= service.name %>. # # By default, this returns an instance of # <%= gem.docs_link version: gem.default_version, class_name: "#{service.name}::Client" %> # for version <%= gem.default_version.capitalize %> of the API. # However, you can specify specify a different API version by passing it in the # `version` parameter. If the <%= service.name %> service is # supported by that API version, and the corresponding gem is available, the # appropriate versioned client will be returned. # <%- if service.doc_description -%> # ## About <%= service.name %> # <%= indent service.doc_description(disable_xrefs: true), "# " %> # <%- end -%> # @param version [String, Symbol] The API version to connect to. Optional. # Defaults to `:<%= gem.default_version %>`. # @return [<%= service.name %>::Client] A client object for the specified version. # def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>, &block require "<%= gem.namespace_require %>/#{version.to_s.downcase}" package_name = <%= gem.namespace %> .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = <%= gem.namespace %>.const_get package_name package_module.const_get(:<%= service.name %>).const_get(:Client).new(&block) end <%- end -%> <%- if gem.google_cloud_short_name -%> ## # Configure the <%= gem.name %> library. # # The following configuration parameters are supported: # # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - # The path to the keyfile as a String, the contents of the keyfile as a # Hash, or a Google::Auth::Credentials object. # * `lib_name` (*type:* `String`) - # The library name as recorded in instrumentation and logging. # * `lib_version` (*type:* `String`) - # The library version as recorded in instrumentation and logging. # * `interceptors` (*type:* `Array`) - # An array of interceptors that are run before calls are executed. # * `timeout` (*type:* `Integer`) - # Default timeout in milliseconds. # * `metadata` (*type:* `Hash{Symbol=>String}`) - # Additional gRPC headers to be sent with the call. # * `retry_policy` (*type:* `Hash`) - # The retry policy. The value is a hash with the following keys: # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. # * `:retry_codes` (*type:* `Array`) - # The error codes that should trigger a retry. # # @return [Google::Cloud::Config] The default configuration used by this library # def self.configure yield Google::Cloud.configure.<%= gem.google_cloud_short_name %> if block_given? Google::Cloud.configure.<%= gem.google_cloud_short_name %> end <%- end -%>