module Puddle

Constants

VERSION

Public Class Methods

create_adapter(token, settings = {}) click to toggle source
# File lib/puddle.rb, line 15
def create_adapter(token, settings = {})
  class_constant = settings['http_adapter_class'] || HttpAdapter
  class_constant.new(token, settings)
end
digital_ocean(name, settings = {}) click to toggle source
# File lib/puddle.rb, line 26
def digital_ocean(name, settings = {})
  results = {}
  begin
    token    = validate_token(settings)
    adapter  = create_adapter(token, settings)
    resource = load_resource(name).new(adapter, settings)
    results[:content] = resource.execute
  rescue Exception => e
    results[:error] = e
  end

  return results
end
load_resource(name) click to toggle source
# File lib/puddle.rb, line 20
def load_resource(name)
  class_name  = name.to_s.split(/_/).map{|word| word.capitalize}.join('')

  Puddle::Resources.const_get(class_name)
end
validate_token(settings = {}) click to toggle source
# File lib/puddle.rb, line 9
def validate_token(settings = {})
  token = settings['token'] || ENV['DO_API_TOKEN']
  fail 'api token is required but missing' unless token
  token
end