Sha256: 2cd1837d1ae63f8f9e8545bf7abd05820b516d4a4c94e204e9821863a238f60e

Contents?: true

Size: 677 Bytes

Versions: 1

Compression:

Stored size: 677 Bytes

Contents

require "tankard/version"
require "tankard/configuration"
require "tankard/error"
require "tankard/client"
require "atomic"

module Tankard
  @client = ::Atomic.new

  class << self
    include Configuration

    def client
      @client.compare_and_swap(nil, Tankard::Client.new(credentials)) unless @client.value
      @client.value
    end

    def respond_to?(method)
      return client.respond_to?(method)
    end

    private

      def method_missing(method_name, *args, &block)
        return super unless client.respond_to?(method_name)
        client.send(method_name, *args, &block)
      end

      def reset_client
        @client.value = nil
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tankard-0.1.0 lib/tankard.rb