class StackerBee::Client
Constants
- DEFAULT_API_PATH
Attributes
api[W]
Public Class Methods
api()
click to toggle source
# File lib/stacker_bee/client.rb, line 93 def api @api ||= API.new(api_path: api_path) end
api_path()
click to toggle source
# File lib/stacker_bee/client.rb, line 82 def api_path @api_path ||= DEFAULT_API_PATH end
api_path=(new_api_path)
click to toggle source
# File lib/stacker_bee/client.rb, line 86 def api_path=(new_api_path) return @api_path if @api_path == new_api_path @api = nil @api_path = new_api_path end
configuration()
click to toggle source
# File lib/stacker_bee/client.rb, line 73 def configuration self.configuration = nil unless @configuration @configuration end
configuration=(config_hash = {})
click to toggle source
# File lib/stacker_bee/client.rb, line 78 def configuration=(config_hash = {}) @configuration = Configuration.new(config_hash) end
new(config = {})
click to toggle source
# File lib/stacker_bee/client.rb, line 98 def initialize(config = {}) self.configuration = config end
reset!()
click to toggle source
# File lib/stacker_bee/client.rb, line 69 def reset! self.api, self.api_path, self.configuration = nil end
Public Instance Methods
builder()
click to toggle source
# File lib/stacker_bee/client.rb, line 64 def builder @builder ||= Builder.new end
configuration()
click to toggle source
# File lib/stacker_bee/client.rb, line 106 def configuration self.configuration = {} unless @configuration @configuration end
configuration=(config)
click to toggle source
# File lib/stacker_bee/client.rb, line 102 def configuration=(config) @configuration = self.class.configuration.merge(config) end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/stacker_bee/client.rb, line 138 def method_missing(method_name, *args, &block) if respond_to_via_delegation?(method_name) request(method_name, *args, &block) else super end end
middleware_app()
click to toggle source
# File lib/stacker_bee/client.rb, line 124 def middleware_app @app ||= begin middleware_stack = middlewares last_middleware = nil middleware_stack.reverse.each do |middleware| middleware.app = last_middleware last_middleware = middleware end middleware_stack.first end end
middlewares()
click to toggle source
rubocop:disable MethodLength
# File lib/stacker_bee/client.rb, line 34 def middlewares # request builder.use Middleware::ConsoleAccess builder.use Middleware::EndpointNormalizer, api: self.class.api builder.use Middleware::RemoveEmptyStrings builder.use Middleware::CloudStackAPI, api_key: configuration.api_key configuration.middlewares.call builder builder.use Middleware::DictionaryFlattener builder.use Middleware::RemoveNils builder.use Middleware::FormatKeys builder.use Middleware::FormatValues # response builder.use Middleware::RaiseOnHTTPError builder.use Middleware::ErrorMessage builder.use Middleware::LogResponse builder.use Middleware::HTTPStatus builder.use Middleware::CleanResponse builder.use Middleware::RashifyResponse builder.use Middleware::DeNamespace builder.use Middleware::JSONBody builder.use Middleware::Adapter, connection: connection builder.build end
request(endpoint_name, params = {})
click to toggle source
# File lib/stacker_bee/client.rb, line 111 def request(endpoint_name, params = {}) env = Middleware::Environment.new( endpoint_name: endpoint_name, api_key: configuration.api_key, params: params, logger: configuration.logger ) middleware_app.call(env) env.response.body end
respond_to?(method_name, include_private = false)
click to toggle source
Calls superclass method
# File lib/stacker_bee/client.rb, line 146 def respond_to?(method_name, include_private = false) super || respond_to_via_delegation?(method_name) end
respond_to_via_delegation?(method_name)
click to toggle source
# File lib/stacker_bee/client.rb, line 150 def respond_to_via_delegation?(method_name) !!middleware_app.endpoint_name_for(method_name) end
Protected Instance Methods
connection()
click to toggle source
# File lib/stacker_bee/client.rb, line 156 def connection @connection ||= Connection.new(configuration) end