class OneOne::Client

Constants

API_URL
API_VERSION

Attributes

token[R]

Public Class Methods

new(options) click to toggle source
# File lib/one_one/client.rb, line 11
def initialize(options)
  @token = options[:token]
end
resources() click to toggle source

This is used to lazy-load resources. It is stored in the @resources instance variable when a caller requests the resource.

# File lib/one_one/client.rb, line 24
def self.resources
  {
    servers: ServerResource,
    images: ImageResource,
    server_appliances: ServerApplianceResource,
    firewall_policies: FirewallPolicyResource
  }
end

Public Instance Methods

connection() click to toggle source
# File lib/one_one/client.rb, line 15
def connection
  Faraday.new(connection_options) do |req|
    req.adapter :net_http
  end
end
method_missing(name, *args, &block) click to toggle source

This attaches resources to the client Resources map to a specific model

Calls superclass method
# File lib/one_one/client.rb, line 39
def method_missing(name, *args, &block)
  if self.class.resources.keys.include?(name)
    resources[name] ||= self.class.resources[name].new(connection: connection)
    resources[name]
  else
    super
  end
end
resources() click to toggle source
# File lib/one_one/client.rb, line 33
def resources
  @resources ||= {}
end
token_valid?() click to toggle source
# File lib/one_one/client.rb, line 48
def token_valid?
  res = connection.get('/v1/')
  binding.pry
end

Private Instance Methods

connection_options() click to toggle source
# File lib/one_one/client.rb, line 55
def connection_options
  {
    url: API_URL,
    headers: {
      content_type: 'application/json',
      'x-token' => token
    }
  }
end