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 |