class DbConnectGenerator
Public Instance Methods
add_to_database_to_yml()
click to toggle source
# File lib/generators/db_connect/db_connect_generator.rb, line 5 def add_to_database_to_yml #insert #EOF so inject will work. unless File.open('config/database.yml').read().include? "#EOF" File.open('config/database.yml', 'a') do |f1| f1 << "\n#EOF" end end #if entry doesnt exist inject it. Force:false means that it doesnt repeat unless File.open('config/database.yml').read().include? "#{file_name}:" say("Please enter some details about the (#{file_name}) database in the development environment:") adapter = ask("adapter?[mysql2]:") adapter = "mysql2" if adapter.blank? host = ask("host?[localhost]:") host = "localhost" if host.blank? port = ask("port?[3307]:") port = 3307 if port.blank? sslca = ask("path to database ssl certificate if any[]") unless sslca.blank? sslca = "ssl-ca: #{sslca}" end inject_into_file 'config/database.yml'," #{file_name}_default: &#{file_name}_default adapter: #{adapter} encoding: utf8 reconnect: false pool: 5 #{sslca} #{Rails.env}_#{file_name}: <<: *#{file_name}_default host: #{host} port: #{port} database: #{file_name} " , before: /^\#EOF/, verbose: true, force: false end end
create_abstract_db_model()
click to toggle source
# File lib/generators/db_connect/db_connect_generator.rb, line 49 def create_abstract_db_model create_file "app/models/#{file_name}_db.rb", <<-FILE class #{class_name}Db < ActiveRecord::Base self.abstract_class = true config = ActiveRecord::Base.configurations["\#{Rails.env}_#{file_name}"] establish_connection( config ) end FILE end