Sparta on Rails

RT: Encontro RailsMG: O que é CRAMP e WebSockets

Salve comunidade,

O encontro sobre CRAMP e WebSockets será realizado novamente pelo @ton na UNA.

O CRAMP é um framework assíncrono que trabalha sob o EventMachine utilizando WebSockets e funciona com duas camadas: Controller e Model.

O WebSockets é uma tecnologia que provê um canal full-duplex sob uma conexão TCP/IP e faz parte da nova especificação do HTML 5.

Segue o resumo do encontro:

Tema: O que é CRAMP e WebSockets
Palestrante: Antônio Roberto ( ton )
Local: Campus Barro Preto, Rua Goitacazes, 1159, Barro Preto – BH – MG

Data: 28/08/2010
9:30 – Organização do ambiente
10:00 – Palestra
11:00 – Dojo Ruby com TDD

Na palestra será abordado os seguintes temas:
– Sobre o CRAMP Framework
– Sobre WebSockets
– Aplicação teste

Mini-currículo do palestrante: Antônio teve seu primeiro contato com Ruby On Rails em março de 2010, quando se tornou funcionário do Portaltrack.

Constantes no Ruby com o EnumerateIt

Salve!

Para quem não conhece o EnumerateIt é uma gem para constantes criada pelo Cássio Marques.

Ela se integra ao Rails e tem suporte a I18n a partir da versão 0.5.0.

Meus projetos sempre possuem algum tipo de constante do tipo sexo, estado civil e semelhantes.

O EnumerateIt cuida disso de uma forma simples e inteligente. Vamos a um exemplo em Ruby:

class Gender < EnumerateIt::Base
  associate_values(
    :male => 1,
    :female => 2
  )
end

Com essa classe podemos acessar os seguintes métodos:

Gender::MALE # => 1
Gender::FEMALE # => 2
Gender.list # => [1, 2]
Gender.to_a # => [["Female", 2], ["Male", 1]]
Gender.enumeration # => {:male=>[1, :male], :female=>[2, :female]}

Como pode ver, a gem cria as constantes e alguns métodos para facilitar a sua vida. O método to_a pode ser usado para gerar uma select tag no Rails por exemplo.

Esse método acessa o I18n no Rails o que facilita muito em aplicações com mais de um idioma. Podemos definir nosso locale assim:

pt-BR:
  enumerations:
    gender:
      male: "Masculino"
      female: "Feminino"

E então o método to_a irá retornar esses valores:

Gender.to_a #=> [["Feminino", 2], ["Masculino", 1]]

A integração com o Rails também é bem simples. Segue um exemplo:

class Person < ActiveRecord::Base
  include EnumerateIt
  has_enumeration_for :gender
end

p = Person.new #=> Person(id: integer, name: string, gender: integer)
p.gender = Gender::MALE
p.gender_humanize #=> 'Masculino'

E se você definir a opção create_helpers como true:

class Person < ActiveRecord::Base
  include EnumerateIt
  has_enumeration_for :gender, :create_helpers => true
end

p = Person.new #=> Person(id: integer, name: string, gender: integer)
p.gender = Gender::MALE
p.male? #=> true
p.female? #=> false

Para mais detalhes, consulte o README

Abraços!

RVM + Passenger + Bundler + Rails 2.3

Hoje o @ton publicou um tweet sobre o rvm + passenger + gemset.

Eu tentei seguir a dica mas não funcionou comigo no Leopard com o RVM 0.1.38 + REE 2010.02 + Passenger 2.2.14 + Rails 2.3.5 + Bundler 0.9.26.

Depois de algum tempo eu consegui fazer funcionar de uma forma meio bizarra e não me pergunte porque funcionou. Sempre que eu tentava acessar um projeto com o Rails 2.3.5 utilizando o Bundler eu recebia a mensagem: “uninitialized constant Bundler::GemNotFound”

Eu acabei resolvendo configurando o Apache de acordo com o tutorial do próprio RVM e configurando o próprio Bundler dentro do Gemfile. Sim, estranho mas funcionou…

Meu passenger.conf ficou assim:

LoadModule passenger_module /Users/sobrinho/.rvm/gems/ree-1.8.7-2010.02/gems/passenger-2.2.14/ext/apache2/mod_passenger.so
PassengerRoot /Users/sobrinho/.rvm/gems/ree-1.8.7-2010.02/gems/passenger-2.2.14
PassengerRuby /Users/sobrinho/.rvm/bin/passenger_ruby

E meu Gemfile assim:

source :gemcutter

gem 'bundler', '0.9.26'
gem 'rails', '2.3.5'
gem 'mysql', '2.8.1'

Fica a dica, passem bem.

Encontro RailsMG: O que é CRAMP e WebSockets

Salve,

Estou deixando o blog as moscas mas estou tentando ajustar meu tempo entre o trabalho e os freelancers para continuar postando sobre Ruby e Rails.

Esse mês o RailsMG organizou 2 encontros. O primeiro encontro será sobre o CRAMP e WebSockets.

O CRAMP é um framework assíncrono que trabalha sob o EventMachine e funciona com duas camadas: Controller e Model.

Já WebSockets é uma tecnologia que provê um canal full-duplex sob uma conexão TCP/IP e faz parte da nova especificação do HTML 5.

Segue o resumo do encontro:

Tema: O que é CRAMP e WebSockets
Palestrante: Antônio Roberto ( ton )
Local: Restaurante Takê – Rua Professor Morais, 659, Funcionários

Data: 29/06/2010
19:00 – Organização do ambiente
19:30 – Palestra

Na palestra será abordado os seguintes temas:
– Sobre o CRAMP Framwork
– Sobre WebSockets
– Aplicação teste

Mini-currículo do palestrante: Antônio teve seu primeiro contato com Ruby On Rails em março de 2010, quando se tornou funcionário do Portaltrack.

Lembrando que a partir de agora o Restaurante Takê estará cobrando uma entrada de apenas 15 reais que serão convertidos em consumação. Aproveite para beber alguns chopps ;)

Ainda não confirmei se teremos algum sorteio nesse encontro. Preciso confirmar com o Daniel Lopes sobre isso.

Encontro vocês lá!

Basecamp e-genial GitHub
webbynode PeepCode O'Reilly

Encontro RailsMG: Monitoramento de processos, bluepill e god

Salve,

Amanhã será nosso sexto encontro, não percam! \o/

Tema: Monitoramento de processos, bluepill e god
Palestrante: Adimir Colen
Local: Restaurante Takê – Rua Professor Morais, 659, Funcionários

Data: 25/5/2010
19:00 – Organização do ambiente
19:30 – Palestra

Na palestra será abordado os seguintes temas:
– Utilização de bluepill e god
– Configuração exemplo de bluepill e god
– Comparação entre as duas gems
– Vantagens e desvantagems

Mini-currículo do palestrante: Adimir Colen é bacharel em Sistemas de informação pela Cotemig. Foi estagiário da Ci&T (Java), funcionário da 2XT (Python/Zope), e Planetarium (Perl). Adimir teve seu primeiro contato com Ruby On Rails em março de 2010, quando se tornou funcionário do Portaltrack.