Sha256: add6ad7226448c724703ad1d5b89c6aafa1e18cda7a02136917c1d77f41e6235

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

require "elefant/connection_adapter"
require "elefant/postgres/stat_queries"
require "elefant/postgres/size_queries"

module Elefant
  class Stats
    include Elefant::Postgres::StatQueries
    include Elefant::Postgres::SizeQueries

    def initialize
      @connection = Elefant::ConnectionAdapter.new
    end

    def db_name
      @connection.info[:db_name]
    end

    def version
      @connection.info[:server_version]
    end

    def client_version
      @connection.info[:client_version]
    end

    def get(name, params)
      query(name, params)
    end

    def close!
      @connection.disconnect
    end

    def self.check!
      connection = Elefant::ConnectionAdapter.new
      raise ArgumentError.new("Could not establish connection") unless connection.alive?
      connection.disconnect
    end

    private

    def exec(query, params = [])
      @connection.execute(query, params)
    end

    def query(name, params)
      method = name.to_sym

      if respond_to?(method)
        send(method, *params)
      else
        raise ArgumentError.new("Unknown Stats Query: #{name}")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
elefant-0.0.1 lib/elefant/stats.rb