class VtApi::Endpoint
API endpoint interface class.
Attributes
method[RW]
uri[RW]
Public Class Methods
new(uri, method, params = {})
click to toggle source
Initialize new endpoint.
Interface parameters are described as in example below. @example
{ foo: true, # this describes required parameter bar: false # this describes a parameter that can be omitted }
@param [Object] uri Relative URL of the endpoint. @param [Object] method HTTP method to be used for the endpoint. @param [Object] params Endpoint
parameters interface.
# File lib/vt_api/internal/endpoint.rb, line 22 def initialize(uri, method, params = {}) @uri = uri @method = method @params = params end
Public Instance Methods
missing_params(passed_params)
click to toggle source
Get a list of missing parameters.
@param [Hash] passed_params @return [Array]
# File lib/vt_api/internal/endpoint.rb, line 44 def missing_params(passed_params) missing = [] @params.each do |param, required| missing << param if required && passed_params[param].nil? end missing end
params_valid?(passed_params)
click to toggle source
Check whether given parameters match endpoint interface.
@param [Hash] passed_params @return [Boolean]
# File lib/vt_api/internal/endpoint.rb, line 32 def params_valid?(passed_params) @params.each do |param, required| return false if required && passed_params[param].nil? end true end
Private Instance Methods
clean_uri(uri)
click to toggle source
Remove redundant slashes from URL. @example
clean_url 'http://google.com////search' # => 'http://google.com/search'
@param [String] uri @return [String]
# File lib/vt_api/internal/endpoint.rb, line 62 def clean_uri(uri) uri.gsub %r{([^:])[\/]+}, '\1/' end