Class: Seahorse::Client::Plugins::OperationMethods
- Inherits:
-
Seahorse::Client::Plugin
- Object
- Seahorse::Client::Plugin
- Seahorse::Client::Plugins::OperationMethods
- Defined in:
- lib/seahorse/client/plugins/operation_methods.rb
Overview
Defines a helper method for each API operation that builds and sends the named request.
# Helper Methods
This plugin adds a helper method that lists the available API operations.
client.operation_names
#=> [:api_operation_name1, :api_operation_name2, ...]
Additionally, it adds a helper method for each operation. This helper handles building and sending the appropriate Request.
# without OperationMethods plugin
req = client.build_request(:api_operation_name, request_params)
resp = req.send_request
# using the helper method defined by OperationMethods
resp = client.api_operation_name(request_params)
Instance Method Summary collapse
Methods inherited from Seahorse::Client::Plugin
#add_handlers, #add_options, after_initialize, after_initialize_hooks, before_initialize, #before_initialize, before_initialize_hooks, handlers, option, options
Methods included from HandlerBuilder
#handle, #handle_request, #handle_response, #handler_for, #new_handler
Instance Method Details
#add_operation_helpers(client, operations) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/seahorse/client/plugins/operation_methods.rb', line 38 def add_operation_helpers(client, operations) operations.each do |name| client.class.send(:define_method, name) do |*args, &block| params = args[0] || {} = args[1] || {} build_request(name, params).send_request(, &block) end end client.class.send(:define_method, :operation_names) { operations } end |
#after_initialize(client) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/seahorse/client/plugins/operation_methods.rb', line 28 def after_initialize(client) unless client.respond_to?(:operation_names) client.class.mutex.synchronize do unless client.respond_to?(:operation_names) add_operation_helpers(client, client.config.api.operation_names) end end end end |