class Cassandra::Driver

@private

Public Class Methods

let(name, &block) click to toggle source
   # File lib/cassandra/driver.rb
22 def self.let(name, &block)
23   define_method(name) do
24     @instances.key?(name) ?
25         @instances[name] :
26         @instances[name] = instance_eval(&block)
27   end
28   define_method(:"#{name}=") { |object| @instances[name] = object }
29 end
new(defaults = {}) click to toggle source
    # File lib/cassandra/driver.rb
197 def initialize(defaults = {})
198   @instances = defaults
199 end

Public Instance Methods

connect(addresses) click to toggle source
    # File lib/cassandra/driver.rb
201 def connect(addresses)
202   profile_manager.load_balancing_policies.each do |lbp|
203     lbp.setup(cluster)
204     cluster_registry.add_listener(lbp)
205   end
206 
207   cluster_registry.add_listener(control_connection)
208   listeners.each do |listener|
209     cluster.register(listener)
210   end
211 
212   logger.debug('Populating policies and listeners with initial endpoints')
213   addresses.each {|address| cluster_registry.host_found(address)}
214 
215   logger.info('Establishing control connection')
216 
217   promise = futures_factory.promise
218 
219   control_connection.connect_async.on_complete do |f|
220     if f.resolved?
221       promise.fulfill(cluster)
222     else
223       f.on_failure do |e|
224         cluster.close_async
225         promise.break(e)
226       end
227     end
228   end
229 
230   promise.future
231 end

Private Instance Methods

create_schema_fetcher_picker() click to toggle source
    # File lib/cassandra/driver.rb
235 def create_schema_fetcher_picker
236   picker = Cluster::Schema::Fetchers::MultiVersion.new(cluster_registry)
237 
238   picker.when('1.2') do
239     Cluster::Schema::Fetchers::V1_2_x.new(schema_fqcn_type_parser, cluster_schema)
240   end
241   picker.when('2.0') do
242     Cluster::Schema::Fetchers::V2_0_x.new(schema_fqcn_type_parser, cluster_schema)
243   end
244   picker.when('2.1') do
245     Cluster::Schema::Fetchers::V2_1_x.new(schema_fqcn_type_parser, cluster_schema)
246   end
247   picker.when('2.2') do
248     Cluster::Schema::Fetchers::V2_2_x.new(schema_fqcn_type_parser, cluster_schema)
249   end
250   picker.when('3.') do
251     Cluster::Schema::Fetchers::V3_0_x.new(schema_cql_type_parser, cluster_schema)
252   end
253   picker.when('4.') do
254     Cluster::Schema::Fetchers::V3_0_x.new(schema_cql_type_parser, cluster_schema)
255   end
256 
257   picker
258 end