Class: Seahorse::Client::Base
- Inherits:
- 
      Object
      
        - Object
- Seahorse::Client::Base
 
- Includes:
- HandlerBuilder
- Defined in:
- lib/seahorse/client/base.rb
Direct Known Subclasses
Aws::SSO::Client, Aws::SSOOIDC::Client, Aws::STS::Client, AsyncBase
Instance Attribute Summary collapse
- #config ⇒ Configuration<Struct> readonly
- #handlers ⇒ HandlerList readonly
Class Method Summary collapse
- 
  
    
      .add_plugin(plugin)  ⇒ void 
    
    
  
  
  
  
  
  
  
  
  
    Registers a plugin with this client. 
- .api ⇒ Model::Api
- .clear_plugins ⇒ void
- .define(options = {}) ⇒ Class<Client::Base> (also: extend)
- .new(options = {}) ⇒ Object
- 
  
    
      .plugins  ⇒ Array<Plugin> 
    
    
  
  
  
  
  
  
  
  
  
    Returns the list of registered plugins for this Client. 
- .remove_plugin(plugin) ⇒ void
- .set_api(api) ⇒ Model::Api
- .set_plugins(plugins) ⇒ void
Instance Method Summary collapse
- 
  
    
      #build_request(operation_name, params = {})  ⇒ Request 
    
    
  
  
  
  
  
  
  
  
  
    Builds and returns a Request for the named operation. 
- 
  
    
      #initialize(plugins, options)  ⇒ Base 
    
    
  
  
  
    constructor
  
  
  
  
  
  private
  
    A new instance of Base. 
- #inspect ⇒ Object private
- 
  
    
      #operation_names  ⇒ Array<Symbol> 
    
    
  
  
  
  
  
  
  
  
  
    Returns a list of valid request operation names. 
Methods included from HandlerBuilder
#handle, #handle_request, #handle_response, #handler_for, #new_handler
Constructor Details
#initialize(plugins, options) ⇒ Base
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Base.
| 20 21 22 23 24 | # File 'lib/seahorse/client/base.rb', line 20 def initialize(plugins, ) @config = build_config(plugins, ) @handlers = build_handler_list(plugins) after_initialize(plugins) end | 
Instance Attribute Details
#config ⇒ Configuration<Struct> (readonly)
| 27 28 29 | # File 'lib/seahorse/client/base.rb', line 27 def config @config end | 
#handlers ⇒ HandlerList (readonly)
| 30 31 32 | # File 'lib/seahorse/client/base.rb', line 30 def handlers @handlers end | 
Class Method Details
.add_plugin(plugin) ⇒ void
This method returns an undefined value.
Registers a plugin with this client.
| 127 128 129 | # File 'lib/seahorse/client/base.rb', line 127 def add_plugin(plugin) @plugins.add(plugin) end | 
.api ⇒ Model::Api
| 171 172 173 | # File 'lib/seahorse/client/base.rb', line 171 def api @api ||= Model::Api.new end | 
.clear_plugins ⇒ void
This method returns an undefined value.
| 145 146 147 | # File 'lib/seahorse/client/base.rb', line 145 def clear_plugins @plugins.set([]) end | 
.define(options = {}) ⇒ Class<Client::Base> Also known as: extend
| 187 188 189 190 191 192 193 194 | # File 'lib/seahorse/client/base.rb', line 187 def define( = {}) subclass = Class.new(self) subclass.set_api([:api] || api) Array([:plugins]).each do |plugin| subclass.add_plugin(plugin) end subclass end | 
.new(options = {}) ⇒ Object
| 97 98 99 100 101 102 103 104 | # File 'lib/seahorse/client/base.rb', line 97 def new( = {}) = .dup plugins = build_plugins(self.plugins + .fetch(:plugins, [])) plugins = before_initialize(plugins, ) client = allocate client.send(:initialize, plugins, ) client end | 
.plugins ⇒ Array<Plugin>
Returns the list of registered plugins for this Client. Plugins are inherited from the client super class when the client is defined.
| 166 167 168 | # File 'lib/seahorse/client/base.rb', line 166 def plugins Array(@plugins).freeze end | 
.remove_plugin(plugin) ⇒ void
This method returns an undefined value.
| 136 137 138 | # File 'lib/seahorse/client/base.rb', line 136 def remove_plugin(plugin) @plugins.remove(plugin) end | 
.set_api(api) ⇒ Model::Api
| 177 178 179 180 181 | # File 'lib/seahorse/client/base.rb', line 177 def set_api(api) @api = api define_operation_methods @api end | 
.set_plugins(plugins) ⇒ void
This method returns an undefined value.
| 155 156 157 | # File 'lib/seahorse/client/base.rb', line 155 def set_plugins(plugins) @plugins.set(plugins) end | 
Instance Method Details
#build_request(operation_name, params = {}) ⇒ Request
Builds and returns a Request for the named operation. The request will not have been sent.
| 36 37 38 39 40 | # File 'lib/seahorse/client/base.rb', line 36 def build_request(operation_name, params = {}) Request.new( @handlers.for(operation_name), context_for(operation_name, params)) end | 
#inspect ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 43 44 45 | # File 'lib/seahorse/client/base.rb', line 43 def inspect "#<#{self.class.name}>" end | 
#operation_names ⇒ Array<Symbol>
Returns a list of valid request operation names. These are valid arguments to #build_request and are also valid methods.
| 50 51 52 | # File 'lib/seahorse/client/base.rb', line 50 def operation_names self.class.api.operation_names - self.class.api.async_operation_names end |