Class: CassandraObject::Adapters::CassandraDriver

Inherits:
Object
  • Object
show all
Defined in:
lib/cassandra_object/adapters/cassandra_driver.rb

Defined Under Namespace

Classes: Client, SchemaCache

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ CassandraDriver



6
7
8
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 6

def initialize(config)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



4
5
6
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 4

def config
  @config
end

Instance Method Details

#clientObject



14
15
16
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 14

def client
  @client ||= self.new_client
end

#closeObject



22
23
24
25
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 22

def close
  @client.try(:close)
  @client = nil
end

#clusterObject



10
11
12
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 10

def cluster
  @cluster ||= Cassandra.cluster cluster_config
end

#cluster_configObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 27

def cluster_config
  {
    :hosts => config[:servers].map { |server| server.sub /:\d+/, '' },
    :port => config[:port] || 9042,
    :connect_timeout => config[:thrift][:connect_timeout] || 10,
    :timeout => config[:thrift][:timeout] || 10,
    :logger => config[:logger] || (defined?(Rails) && Rails.logger) || Logger.new(STDOUT),
    :consistency => (config[:consistency] || {})[:write_default].try(:to_sym) || :one,
  }
end

#new_clientObject



18
19
20
# File 'lib/cassandra_object/adapters/cassandra_driver.rb', line 18

def new_client
  Client.new(cluster.connect(config[:keyspace]), cluster)
end