require "arena/version"
require_relative "./arena/client"
require_relative "./arena/default"
require_relative "./arena/configurable"

module Arena
  class << self
    include Arena::Configurable

    # Delegate to a Arena::Client
    #
    # @return [Arena::Client]
    # 
    def client
      if @client
        @client
      else
        @client = Arena::Client.new(options)
      end
    end

  private

    def method_missing(method, *args, &block)
      self.client.send(method, *args, &block)
    end
  end # self
end # Arena

Arena.setup
require "arena/version"

def reload!
  load "arena/client.rb"
  load "arena/default.rb"
  load "arena/configurable.rb"
end

alias load! reload!

load!

module Arena
  class << self
    include Arena::Configurable

    # Delegate to a Arena::Client
    #
    # @return [Arena::Client]
    # 
    def client
      if @client
        @client
      else
        @client = Arena::Client.new(options)
      end
    end

  private

    def method_missing(method, *args, &block)
      self.client.send(method, *args, &block)
    end
  end # self
end # Arena

Arena.setup
Load instead of require so we can reload
Load instead of require so we can reload
