module DockerizeRails::ConfigGenerator
Public Class Methods
configure()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 4 def self.configure puts "\nGenerating DockerizeRails config file ...\n".yellow puts " ==> #{Constants::CONFIG_FILE_NAME}".blue file = File.open(File.join(PATHS.current, Constants::CONFIG_FILE_NAME), 'w+') if DRNameSpace.namespace.tiny file.write(DRConfig.to_yaml) else file.write(DRConfig.to_yaml_str) end file.close puts 0 end
dockerize()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 18 def self.dockerize status = 0 puts "\nGenerating config files ...\n".yellow status += create_config_directories status += create_config_files puts "\nDon't forget to update "\ "\"#{Constants::CONFIG_DIRECTORY_NAME}/#{Constants::RAILS_DIRECTORY_NAME}/secrtes.yml\"".yellow.underline puts set_executables status end
undockerize()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 30 def self.undockerize status = 0 puts "\nRemoving docker config files ...\n".yellow status += remove_config_directories dir_op(Constants::CONFIG_FILE_NAME, 'rm_rf') if DRNameSpace.namespace.purge status end
Private Class Methods
create_config_directories()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 48 def self.create_config_directories db_values = DRConfig.databases.values dirs = Templates::ROOT_DIRECTORIES + Templates::RAILS_DIRECTORIES if DRConfig.linked_database? dirs += Templates::MYSQL_DIRECTORIES if db_values.include? 'mysql' dirs += Templates::PG_DIRECTORIES if db_values.include? 'postgresql' end dirs.each { |dir| dir_op(dir, 'mkdir_p') } 0 end
create_config_files()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 86 def self.create_config_files db_values = DRConfig.databases.values status = 0 status += create_rails_configs if DRConfig.linked_database? status += create_mysql_configs if db_values.include? 'mysql' status += create_postgresql_configs if db_values.include? 'postgresql' end status += create_root_configs status end
create_custom_database_config()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 59 def self.create_custom_database_config puts " ==> #{PATHS.relative_from_current(File.join(PATHS.rails_directory, 'database.yml'))}".blue file = File.open(File.join(PATHS.config_directory, Constants::RAILS_DIRECTORY_NAME, 'database.yml'), 'w+') file.write(ConfigLoader.app_config.to_yaml) file.close 0 end
create_mysql_configs()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 74 def self.create_mysql_configs write_config PATHS.mysql_directory, Templates::MYSQL_TEMPLATES, 'mysql' end
create_postgresql_configs()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 78 def self.create_postgresql_configs write_config PATHS.postgresql_directory, Templates::POSTGRES_TEMPLATES, 'postgresql' end
create_rails_configs()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 67 def self.create_rails_configs status = 0 status += write_config PATHS.rails_directory, Templates::RAILS_TEMPLATES, 'rails' status += create_custom_database_config status end
create_root_configs()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 82 def self.create_root_configs write_config PATHS.current, Templates::ROOT_TEMPLATES end
dir_op(dir, method)
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 38 def self.dir_op(dir, method) FileUtils.send(method, File.join(PATHS.current, dir)) end
remove_config_directories()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 42 def self.remove_config_directories dir_op(Constants::CONFIG_DIRECTORY_NAME, 'rm_rf') Templates::ROOT_TEMPLATES.each { |conf| dir_op(conf, 'rm_rf') } 0 end
set_executables()
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 116 def self.set_executables Templates::EXECUTABLES.each do |exe| File.chmod(0o775, File.join(PATHS.current, exe)) end end
write_config(dir, config_names, resource_name = '')
click to toggle source
# File lib/dockerize_rails/config_generator.rb, line 98 def self.write_config(dir, config_names, resource_name = '') config_names.each do |conf| conf_path = File.join(dir, conf) puts " ==> #{PATHS.relative_from_current(conf_path)}".blue file = File.open(conf_path, 'w+') file.write( StringIO.new( ERB.new(File.read(File.join( PATHS.resources(resource_name), "#{conf}.erb" ))).result(DRNameSpace.eval_i) ).read.gsub!(/\s*\n+/, "\n") ) file.close end 0 end