module CassandraMigrations::Config
Constants
- CASSANDRA_CONNECTION_VALID_FIELDS
See valid options at github.com/datastax/ruby-driver/blob/master/lib/cassandra.rb#L163
- Configuration
- FIELDS
Public Class Methods
configurations()
click to toggle source
# File lib/cassandra_migrations/config.rb, line 20 def self.configurations @configurations || load_config end
connection_config_for_env()
click to toggle source
# 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)
click to toggle source
# 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
Private Class Methods
load_config()
click to toggle source
# File lib/cassandra_migrations/config.rb, line 48 def self.load_config begin configs = YAML.load(ERB.new(File.new(Rails.root.join("config", "cassandra.yml")).read).result) configurations = Hash[configs.map {|env, config| [env, Configuration.new(*(FIELDS.map {|k| config[k]}))]}] if configurations[Rails.env].nil? raise Errors::MissingConfigurationError, "No configuration for #{Rails.env} environment! Complete your config/cassandra.yml." end configurations rescue Errno::ENOENT raise Errors::MissingConfigurationError end end