Class: Castronaut::Configuration
- Inherits:
-
Object
- Object
- Castronaut::Configuration
- Defined in:
- lib/castronaut/configuration.rb
Constant Summary collapse
- DefaultConfigFilePath =
'./castronaut.yml'
Instance Attribute Summary collapse
-
#config_file_path ⇒ Object
Returns the value of attribute config_file_path.
-
#config_hash ⇒ Object
Returns the value of attribute config_hash.
-
#logger ⇒ Object
Returns the value of attribute logger.
Class Method Summary collapse
- .load(config_file_path = Castronaut::Configuration::DefaultConfigFilePath) ⇒ Object
- .parse_yaml_config(file_path) ⇒ Object
Instance Method Summary collapse
- #can_fire_callbacks? ⇒ Boolean
- #connect_activerecord ⇒ Object
- #connect_adapter_to_activerecord ⇒ Object
- #connect_cas_to_activerecord ⇒ Object
- #create_directory(dir) ⇒ Object
- #debug_initialize ⇒ Object
- #parse_config_into_settings(config) ⇒ Object
- #setup_logger ⇒ Object
Instance Attribute Details
#config_file_path ⇒ Object
Returns the value of attribute config_file_path.
16 17 18 |
# File 'lib/castronaut/configuration.rb', line 16 def config_file_path @config_file_path end |
#config_hash ⇒ Object
Returns the value of attribute config_hash.
16 17 18 |
# File 'lib/castronaut/configuration.rb', line 16 def config_hash @config_hash end |
#logger ⇒ Object
Returns the value of attribute logger.
16 17 18 |
# File 'lib/castronaut/configuration.rb', line 16 def logger @logger end |
Class Method Details
.load(config_file_path = Castronaut::Configuration::DefaultConfigFilePath) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/castronaut/configuration.rb', line 18 def self.load(config_file_path = Castronaut::Configuration::DefaultConfigFilePath) config = Castronaut::Configuration.new config.config_file_path = config_file_path config.config_hash = parse_yaml_config(config_file_path) config.parse_config_into_settings(config.config_hash) config.logger = config.setup_logger config.debug_initialize if config.logger.debug? config.connect_activerecord config end |
.parse_yaml_config(file_path) ⇒ Object
29 30 31 |
# File 'lib/castronaut/configuration.rb', line 29 def self.parse_yaml_config(file_path) YAML::load_file(file_path) end |
Instance Method Details
#can_fire_callbacks? ⇒ Boolean
65 66 67 |
# File 'lib/castronaut/configuration.rb', line 65 def can_fire_callbacks? config_hash.keys.include?('callbacks') && !config_hash['callbacks'].nil? end |
#connect_activerecord ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/castronaut/configuration.rb', line 69 def connect_activerecord create_directory('db') ActiveRecord::Base.logger = logger ActiveRecord::Base.colorize_logging = false connect_cas_to_activerecord connect_adapter_to_activerecord if cas_adapter.has_key?('database') end |
#connect_adapter_to_activerecord ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/castronaut/configuration.rb', line 89 def connect_adapter_to_activerecord logger.info "#{self.class} - Connecting to cas adapter database using #{cas_adapter['database'].inspect}" if cas_adapter['adapter'] == "database" Castronaut::Adapters::RestfulAuthentication::User.establish_connection(cas_adapter['database']) Castronaut::Adapters::RestfulAuthentication::User.logger = logger elsif cas_adapter['adapter'] == "development" Castronaut::Adapters::Development::User.establish_connection(cas_adapter['database']) Castronaut::Adapters::Development::User.logger = logger end unless ENV["test"] == "true" if Castronaut::Adapters::RestfulAuthentication::User.connection.tables.empty? STDERR.puts "#{self.class} - There are no tables in the given database.\nConfig details:\n#{config_hash.inspect}" Kernel.exit(0) end end end |
#connect_cas_to_activerecord ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/castronaut/configuration.rb', line 79 def connect_cas_to_activerecord logger.info "#{self.class} - Connecting to cas database using #{cas_database.inspect}" ActiveRecord::Base.establish_connection(cas_database) migration_path = File.(File.join(File.dirname(__FILE__), 'db')) logger.debug "#{self.class} - Migrating to the latest version using migrations in #{migration_path}" ActiveRecord::Migrator.migrate(migration_path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) end |
#create_directory(dir) ⇒ Object
46 47 48 |
# File 'lib/castronaut/configuration.rb', line 46 def create_directory(dir) FileUtils.mkdir_p(dir) unless File.exist?(dir) end |
#debug_initialize ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/castronaut/configuration.rb', line 57 def debug_initialize logger.debug "#{self.class} - initializing with parameters" config_hash.each_pair do |key, value| logger.debug "--> #{key} = #{value.inspect}" end logger.debug "#{self.class} - initialization complete" end |
#parse_config_into_settings(config) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/castronaut/configuration.rb', line 33 def parse_config_into_settings(config) mod = Module.new do config.each_pair do |k,v| if self.methods.include?(k.to_s) STDERR.puts "#{self.class} - Configuration tried to define #{k}, which was already defined." unless ENV["test"] == "true" next end define_method(k) { v } end end self.extend mod end |
#setup_logger ⇒ Object
50 51 52 53 54 55 |
# File 'lib/castronaut/configuration.rb', line 50 def setup_logger create_directory(log_directory) log = Hodel3000CompliantLogger.new("#{log_directory}/castronaut.log", "daily") log.level = eval(log_level) log end |