Sha256: d8e85ea0c4749076c4686c85a7cb6356845f337e7b6a297cadd0a481901f6bb2

Contents?: true

Size: 837 Bytes

Versions: 29

Compression:

Stored size: 837 Bytes

Contents

module HammerCLI

  class AbstractConnector
    def initialize(params={})
    end
  end

  class Connection
    def initialize(logger = nil)
      @logger = logger
    end

    def drop(name)
      connections.delete(name)
    end

    def drop_all()
      connections.keys.each { |c| drop(c) }
    end

    def create(name, &create_connector_block)
      unless connections[name]
        connector = yield
        @logger.debug("Registered: #{name}") if @logger
        connections[name] = connector
      end
      connections[name]
    end

    def exist?(name)
      !get(name).nil?
    end

    def get(name)
      connections[name]
    end

    def available
      connections.select { |k, v| !v.nil? }.values.first
    end

    private

    def connections
      @connections_hash ||= {}
      @connections_hash
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
hammer_cli-3.14.0 lib/hammer_cli/connection.rb
hammer_cli-3.13.0 lib/hammer_cli/connection.rb
hammer_cli-3.12.0 lib/hammer_cli/connection.rb
hammer_cli-3.10.0 lib/hammer_cli/connection.rb
hammer_cli-3.9.0 lib/hammer_cli/connection.rb
hammer_cli-3.8.0 lib/hammer_cli/connection.rb
hammer_cli-3.7.0 lib/hammer_cli/connection.rb
hammer_cli-3.5.1 lib/hammer_cli/connection.rb
hammer_cli-3.6.0 lib/hammer_cli/connection.rb
hammer_cli-3.5.0 lib/hammer_cli/connection.rb
hammer_cli-3.4.0 lib/hammer_cli/connection.rb
hammer_cli-3.3.0 lib/hammer_cli/connection.rb
hammer_cli-3.2.0 lib/hammer_cli/connection.rb
hammer_cli-3.1.1 lib/hammer_cli/connection.rb
hammer_cli-3.0.2 lib/hammer_cli/connection.rb
hammer_cli-3.1.0 lib/hammer_cli/connection.rb
hammer_cli-3.0.1 lib/hammer_cli/connection.rb
hammer_cli-3.0.0 lib/hammer_cli/connection.rb
hammer_cli-2.5.1 lib/hammer_cli/connection.rb
hammer_cli-2.5.0 lib/hammer_cli/connection.rb