quinta-feira, 5 de novembro de 2009

Template para Rails

Bom, como eu comecei a desenvolver mais com rails ultimamente eu decidi criar um template de inicialização para minhas apps.

Os templates do Rails podem fazer para você várias configurações iniciais para sua aplicação (configurar gems, iniciar repositório git...).

Abaixo segue o template que eu criei:

# ignoring files
file ".gitignore", <<-TXT
log/*.log
tmp/**/*
db/*.sqlite3
.DS_Store
Thumbs.db
TXT
# download pt-br i18n and configure environment
file "config/locales/pt-BR.yml", open("http://github.com/svenfuchs/rails-i18n/raw/master/rails/locale/pt-BR.yml").read
gsub_file "config/environment.rb",
'# config.i18n.default_locale = :de', 'config.i18n.default_locale = "pt-BR"'
# add authlogic i18n to locale
append_file "config/locales/pt-BR.yml", <<-TXT
# Authlogic
authlogic:
error_messages:
login_blank: "não pode ficar em branco"
login_not_found: "não é válido"
login_invalid: "deve usar somente letras, números, espaços e .-_@"
consecutive_failed_logins_limit_exceeded: "Consecutivos logins que falharam limite excedido, a conta está desativada."
email_invalid: "deve ser semelhante a um endereço de email."
password_blank: "não pode ficar em branco"
password_invalid: "não é válido"
not_active: "Sua conta não está ativa"
not_confirmed: "Sua conta não está confirmada"
not_approved: "Sua conta não foi aprovada"
no_authentication_details: "Você não forneceu nenhum detalhe para autenticação."
models:
user_session: "SessãoUsuário"
attributes:
user_session:
login: "Usuário"
email: "Email"
password: "Senha"
remember_me: "Lembrar me"
TXT
# configure gems
gem "authlogic"
gem "searchlogic"
gem "mislav-will_paginate", :lib => 'will_paginate', :source => 'http://gems.github.com'
gem "josevalim-inherited_resources", :lib => "inherited_resources", :source => "http://gems.github.com"
gem "justinfrench-formtastic", :lib => 'formtastic', :source => 'http://gems.github.com'
gem "rails-footnotes", :source => "http://gemcutter.org"
# configure plugins
plugin "validation_reflection", :git => "git://github.com/redinger/validation_reflection.git"
# configure gems manifest (for Heroku)
file ".gems", <<-TXT
authlogic
searchlogic
mislav-will_paginate --source 'http://gems.github.com'
josevalim-inherited_resources --source "http://gems.github.com"
justinfrench-formtastic --source 'http://gems.github.com'
rails-footnotes --source "http://gemcutter.org"
TXT
# create base populator
rakefile "populate.rake" do
<<-TXT
namespace :db do
desc "Erase database data and fill with sample data"
task :populate => :environment do
require 'populator'
require 'faker'
# do your populator tasks here
end
end
TXT
end
# initializing repository
git :init
git :add => "."
git :commit => %(-m "initial commit")


Para quem quizer utilizar para testar basta executar o seguinte comando:

rails NOME_APP -m http://gist.github.com/raw/227656/f64ca46032c6e83f92000c9c33ce078b65beafdd/rails_template.rb

terça-feira, 3 de novembro de 2009

Rails no Ubuntu 9.10 (usando o mysql do xampp)

Bom, estive tendo alguns problemas para instalar as coisas aqui no Ubuntu, mas consegui resolver, segue o passo a passo de comandos para ter tudo instalado e pegando:

1. Instalar o XAMPP e o XAMPP development package (instrucoes no site do xampp)
2. Instalar o Ruby com Development Package:
sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 irb rake libopenssl-ruby1.8

3. instalar o rails
sudo gem install rails

4. rodar o xampp
sudo /opt/lampp/lampp start

5. instalar o mysql
sudo gem install mysql -- --with-mysql-dir=/opt/lampp/ --with-mysql-lib=/opt/lampp/lib/mysql --with-mysql-include=/opt/lampp/include/mysql

6. configurar link para socket
sudo mkdir /var/run/mysqld
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock


É isso, com isso rolo tudo certo aqui :)

UPDATE:

Eu percebi que o link do mysqlsock é perdido sempre que o sistema é reiniciado.
Então eu criei um script para iniciar o xampp e criar o link automaticamente na inicialização:

crie o arquivo abaixo:

/usr/bin/lamppstart
#! /bin/bash

/opt/lampp/lampp start
mkdir /var/run/mysqld
ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock


após criar o script é nescessário incluí-lo na inicialização do sistema, para isso adicione a linha para executa-lo dentro do arquivo /etc/rc.local, o meu arquivo ficou assim:

/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/usr/bin/lamppstart

exit 0