Module: Reflection::Rails
- Defined in:
- lib/reflection/rails.rb
Class Method Summary collapse
- .apply(config, target_directory) ⇒ Object
- .clean_target(target_directory) ⇒ Object
- .database_command_line_options(database_config) ⇒ Object
- .read_database_configuration(config) ⇒ Object
- .stash(config, target_directory) ⇒ Object
- .validate_environment(config) ⇒ Object
Class Method Details
.apply(config, target_directory) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/reflection/rails.rb', line 51 def apply(config, target_directory) Reflection.log.debug "Applying database dump.." return unless database_config = read_database_configuration(config) = (database_config) target_file_path = File.join(target_directory.path, '_rails_database_dump.sql') %x(mysql #{} < #{target_file_path}) clean_target(target_directory) end |
.clean_target(target_directory) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/reflection/rails.rb', line 12 def clean_target(target_directory) target_file_path = File.join(target_directory.path, '_rails_database_dump.sql') if File.exist?(target_file_path) %x(rm #{target_file_path}) end end |
.database_command_line_options(database_config) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/reflection/rails.rb', line 19 def (database_config) = [] << "-h #{database_config['host']}" << "-u#{database_config['username']}" << "-p#{database_config['password']}" if database_config['password'] && !database_config['password'].empty? << "#{database_config['database']}" .join(' ') end |
.read_database_configuration(config) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/reflection/rails.rb', line 28 def read_database_configuration(config) begin database_path = File.join(config.rails_root, "config/database.yml") if db_config = YAML.load_file(database_path)[config.rails_environment] return db_config else Reflection.log.error("Rails database configuration for '#{config.rails_environment}' isn't available in #{database_path}") return false end rescue => e Reflection.log.error("Error while parsing Rails database configuration: #{e}") return false end end |
.stash(config, target_directory) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/reflection/rails.rb', line 43 def stash(config, target_directory) Reflection.log.debug "Stashing database dump.." return unless database_config = read_database_configuration(config) = (database_config) target_file_path = File.join(target_directory.path, '_rails_database_dump.sql') %x(mysqldump #{} --add-drop-table > #{target_file_path}) end |
.validate_environment(config) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/reflection/rails.rb', line 5 def validate_environment(config) env_file_path = File.join(config.rails_root, 'config/environments', "#{config.rails_environment}.rb") unless File.exist?(env_file_path) Reflection::Support.exit_with_error("Rails environment '#{config.rails_environment}' doesn't exist in #{env_file_path}.") end end |