class Recipes::Database
Public Instance Methods
ask()
click to toggle source
# File lib/potassium/recipes/database.rb, line 2 def ask databases = { postgresql: "PostgreSQL", mysql: "MySQL", none: "None, thanks" } database = answer(:db) do databases.keys[Ask.list("Which database are you using?", databases.values)] end set :database, database.to_sym end
create()
click to toggle source
# File lib/potassium/recipes/database.rb, line 16 def create if db = databases(get(:database)) if db[:relational] activate_for_active_record(db) end end end
install()
click to toggle source
# File lib/potassium/recipes/database.rb, line 24 def install ask create end
Private Instance Methods
activate_for_active_record(db)
click to toggle source
# File lib/potassium/recipes/database.rb, line 39 def activate_for_active_record(db) remove_file 'config/database.yml' template "../assets/config/database_#{db[:name]}.yml.erb", 'config/database.yml' discard_gem 'sqlite3' gather_gem 'strong_migrations' if db[:version] gather_gem db[:gem_name], db[:version] else gather_gem db[:gem_name] end after(:gem_install) do generate 'strong_migrations:install' end end
databases(database)
click to toggle source
# File lib/potassium/recipes/database.rb, line 31 def databases(database) databases = { postgresql: { name: 'postgresql', gem_name: 'pg', relational: true }, mysql: { name: 'mysql', gem_name: 'mysql2', version: '~> 0.5.0', relational: true } } databases[database] end