Module: CassandraMigrations::Config

Defined in:
lib/cassandra_migrations/config.rb

Defined Under Namespace

Classes: Configuration

Constant Summary collapse

CASSANDRA_CONNECTION_VALID_FIELDS =
[
:credentials, :auth_provider, :compression, :hosts, :logger, :port,
:load_balancing_policy, :reconnection_policy, :retry_policy, :listeners,
:consistency, :trace, :page_size, :compressor, :username, :password,
:ssl, :server_cert, :client_cert, :private_key, :passphrase,
:connect_timeout, :futures_factory]
FIELDS =
CASSANDRA_CONNECTION_VALID_FIELDS.map(&:to_s) + %w(keyspace replication)

Class Method Summary collapse

Class Method Details

.configurationsObject



20
21
22
# File 'lib/cassandra_migrations/config.rb', line 20

def self.configurations
  @configurations || load_config
end

.connection_config_for_envObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cassandra_migrations/config.rb', line 29

def self.connection_config_for_env
  env_config = Hash[self.configurations[Rails.env].each_pair.to_a]

  # support for old configuration param :port (singular)
  if env_config.include?(:port)
    env_config[:ports] = [env_config[:port]]
  end

  env_config.keep_if do |k,v|
    CASSANDRA_CONNECTION_VALID_FIELDS.include?(k) && v
  end

  Hash[self.configurations[Rails.env].each_pair.to_a].keep_if do |k,v|
    CASSANDRA_CONNECTION_VALID_FIELDS.include?(k) && v
  end
end

.method_missing(method_sym, *arguments, &block) ⇒ Object



24
25
26
27
# File 'lib/cassandra_migrations/config.rb', line 24

def self.method_missing(method_sym, *arguments, &block)
  load_config unless configurations
  self.configurations[Rails.env].send(method_sym)
end