Gustavo Soares

tecnologia, infraestrutura web, mobile e afins

Browsing Posts tagged ruby

Opa!

Essa semana precisei instalar  rvm no meu macbook. Procurei alguns procedimentos na internet (aka google), e alguns não funcionaram como esperado. Juntei o que cada procedimento tinha de melhor e acabei escrevendo um novo procedimento que me atendeu bem.

Um cara aqui do trabalho acabou batendo cabeça com alguns procedimentos inválidos que ele achou e acabei passando meu para ele… e voilá! Funcionou! Pensei: Bem, se ele teve este problema, outras pessoas podem ter… sendo assim resolvi compartilhar o procedimento aqui também. É bem simples. O rvm será instalado no $HOME do usuário.

mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/

git clone git://github.com/wayneeseguin/rvm.git
cd rvm
git checkout 1.8.6
./install

vim ~/.bash_profile ou ~/.profile

#RVM
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source “$HOME/.rvm/scripts/rvm”  # This loads RVM into a shell session.

rvm install 1.8.7
rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system
rvm –default 1.8.7

echo “gem: –no-ri –no-rdoc” >> $HOME/.gemrc

Feito isso, basta abri e fechar o terminal (ou digitar source ~/.profile) e começar a trabalhar com o rvm normalmente. Crie um gemset e comece a utilizá-lo.

Ex.:

rvm gemset create test

rvm gemset use test

Share

Tive o prazer de ser envolvido no primeiro projeto em RoR (Ruby on Rails) da empresa, o que me colocou em contato pela primeira vez com essa linguagem. Tenho aprendido muita coisa e cada hora surge uma novidade para ver. Resolvi escrever este post para um probleminha que estávamos tendo e que achei interessante compartilhar.

O “problema” que estavámos tendo e achei muito interessante. Estamos usando o subversion para controle de versão do código e íamos usar o capistrano para fazer deploy deste projeto em particular (e de projetos futuros) nos ambientes de desenvolvimento, qa’ s e produção. A questão é que precisávamos passar o nome de uma tag criada no subversion para o projeto diretamente para o capistrano para que ele fizesse o deploy daquela tag específica. Quem já trabalhou com o capistrano, sabe que no capfile precisamos especificar o repositório que vamos estar trabalhando e que para fazermos o checkout de uma tag qualquer, essa variável deve ser setada dinamicamente, mediante algum parâmetro recebido. Não quero me estender muito, por isso vou direto ao assunto. O trecho abaixo serve para passarmos o nome da tag como parâmetro para o capistrano para que a definição do repositório fique correta.

set :application, "blabla";

tag = (ENV["TAG"] || "")
set :repository, "http://svn.url.com/repo/#{application}/tags/#{tag}"
set :repository, "http://svn.url.com/repo/#{application}/trunk" if tag.empty?

puts "tag: #{tag}"

set :port, 22
set :deploy_to, "/seu/diretorio/para/deploy/#{application}"
set :deploy_via, :copy
set :copy_strategy, :export
set :user,"capitaonascimento"

puts "application: #{application}"
puts "repository: #{repository}"
puts "deploy_to: #{deploy_to}"
puts "ssh user: #{user}"

Como trabalho na area da produção, gosto de ver o que está realmente está acontencendo, por isso coloquei os vários puts para que seja printado na tela o valor de algumas variáveis. Além do mais, isso é uma ótima de forma de debug e verificar se tudo está ocorrendo da maneira que você gostaria. Desta forma, para fazer o deploy do projeto TropaDeElite por exemplo deveríamos fazer: cap deploy TAG=’NOME DA TAG’

É isso… espero ter ajuda. Ahhh, para quem está começando no mundo ruby como eu, o comando set :var_name, “var_data” serve para setar uma variável no capistrano. Para ler essa variável devemos usar #{var_name} e o puts é para printar uma mensagem na console do terminal.

Share

Switch to our mobile site