Javascript Dependency Management for Ruby on Rails

Postador por Tiago Damasceno

Sprockets é uma biblioteca de Ruby que processa JavaScript concatenando arquivos fonte.

Leva qualquer número de arquivos fonte e procesaa-los linha por linha, a fim de construir uma única contatenação.

Especialmente formatadas linhas directivas para actuar como o processador Sprockets dizendo-o para exigir que o conteúdo de um outro arquivo ou biblioteca primeiro ou para fornecer um conjunto de activos arquivos (como imagens ou estilo) para o documento raiz. Sprockets tenta cumprir dependências exigidas por pesquisar um conjunto de diretórios chamados a carga caminho.

Se você usar e contribuir para o open-source JavaScript frameworks e bibliotecas que usam Sprockets, como Prototype e script.aculo.us, os processos para construir os scripts podem ser integradas diretamente em seu pedido. Isso torna possível para acompanhar o desenvolvimento últimas versões do seu quadro e sua biblioteca dependências, acrescentando repositórios Sprockets carga para o seu caminho.



Requirements: Ruby on Rails Framework
Demo: http://getsprockets.org/
License: MIT License

Snipt.org - compartilhe códigos pela web

Postador por Tiago Damasceno


Programadores e desenvolvedores web sabem da necessidade de uma ferramenta para compartilhar informações. Além dos populares Pastie e Pastiebin, o Snipt.org quer ser conhecido como o Twitpic dos textos e códigos.

Cole o código e informe a linguagem de programação usada e o Snipt.org salvará o texto em uma pequena URL, ótima para compartilhar no Twitter e em chats. O Snipt.org mantém a formatação utilizada e adicione cores ao código, o que facilita muito na leitura do mesmo. Já são mais de 125 linguagens de programação e scripting suportadas, como CSS, Javascript, Pascal, Perl, PHP, Python, Ruby, etc.

O site também oferece busca por snippets adicionados. Se precisar de mais exemplos de códigos, acesse o diretório Snipplr.

Via: ReadWriteWeb

Manipulando o registro do Windows com Ruby

Postador por Tiago Damasceno

Um dia desses precisei escrever um script para manipular o registro do Windows para que eu pudesse altenar entre diferentes configurações do Rational ClearCase para acessar diferentes repositórios de diferentes servidores, e para agilizar meu trabalho utilizei a linguagem Ruby.

Para aqueles que gostaram da alternativa, veja abaixo como é simples essa manipulação, mostrarei as operações básica que também são as mais utilizadas. Para ficar mais didático, explicarei em parte e com pequenos exemplos.

A versão do Ruby para Windows possui a classe Win32::Registry, que permite justamente a manipulação do registro do Windows, e para utilizá-lo basta apenas escrever require 'win32/registry'. Para enteder melhor os exemplos abaixo, vamos ver alguns conceitos importantes:

  • Registro: é uma espécie de banco de dados, onde são armazenadas as informações sobre todos os programas instalados, estrutura de diretórios, informações do usuário, de drivers, etc
  • Chave: é a estrutura básica do registro do Windows, são como pastas utilizada para a organização e armazenamento de valores. O Windows possui basicamente 5 chaves:
    • HKEY_CLASSES_ROOT - sua finalidade é manter compatibilidade com programas antigos, que rodam a 16 bits;
    • HKEY_CURRENT_USER - ela mostra somente informações do usuário atual do sistema, como configurações personalizadas, etc;
    • HKEY_LOCAL_MACHINE - esta é a chave mais importante do Registro, pois nela é que estão as informações sobre programas e hardware. Para se ter noção da importante desta chave, seus dados são guardados num arquivo chamado system.dat.
    • HKEY_USERS - no Windows é possível ter vários usuários num único computador e a função desta chave é guardar informações de cada um deles.
    • HKEY_CURRENT_CONFIG - contém configurações do usuário atual do computador relativas ao hardware.
  • Valor: são como variáveis, que recebe um nome e armazenam valores que podem ser do tipo:
    • REG_SZ - Valor da seqüência
    • REG_BINARY - Valor binário
    • REG_DWORD - Valor Double Word
    • REG_MULTI_SZ - Valor de seqüência múltipla
    • REG_EXPAND_SZ - Valor de seqüência expansível

Com os conceitos básicos em mente, vamos aos exemplos:

Exemplo 1: Criando um chave e adicionando um valor
As variáveis chave, nome_valor e valor serão utilizadas em todos nossos exemplos.

RUBY:

  1. require 'win32/registry'
  2.  
  3. chave = 'Software\TesteRubyRegistry'
  4. nome_valor = 'VersaoRuby'
  5. valor = '1.8.6'
  6.  
  7. #cria um nova chave
  8. Win32::Registry::HKEY_CURRENT_USER.create(chave) do |regkey|
  9.   #escreve o valor
  10.   regkey.write(nome_valor, Win32::Registry::REG_SZ, valor)
  11.  
  12.   #para escrever o valor poderia também ser utilizado:
  13.   #regkey[nome_valor, Win32::Registry::REG_SZ] = valor
  14. end

No exemplo 1 chamamos a constante Win32::Registry::HKEY_CURRENT_USER com o métodocreate, passando variável chave, o que significa que será criada a chaveHKEY_CURRENT_USER\Software\TesteRubyRegistry.

A chave criada foi instaciada dentro de regkey, o qual chamamos o método write, passando o nome do valor (nome_valor), o tipo do valor (Win32::Registry::REG_SZ) e o seu contéudo (valor), para que seja escrito o valor VersaoRuby com o conteúdo 1.8.6.

Os demais exemplos seguem a mesma lógica e os detalhes estão comentados no próprio código.

Exemplo 2: Lendo um valor

RUBY:

  1. #define o nivel de acesso da chave, apenas para leitura
  2. nivel_acesso = Win32::Registry::KEY_READ
  3.  
  4. #abre um chave
  5. Win32::Registry::HKEY_CURRENT_USER.open(chave, nivel_acesso) do |regkey|
  6.  
  7.   # o método Win32::Registry.read retorna um array,
  8.   # contendo o tipo do valor e o valor atual
  9.   tipo, valor_atual = regkey.read(nome_valor)
  10.  
  11.   #para retornar o valor atual poderia também ser utilizado:
  12.   #valor_atual = regkey[nome_valor]
  13.  
  14.   #exibe o valor lido
  15.   puts "Versao do Ruby: #{valor_atual}"
  16. end

Exemplo 3: Modificando um valor

RUBY:

  1. #definindo um novo valor a variável
  2. valor = '1.8.5'
  3.  
  4. #define o nivel de acesso da chave para escrita
  5. nivel_acesso = Win32::Registry::KEY_WRITE
  6.  
  7. #abre um chave
  8. Win32::Registry::HKEY_CURRENT_USER.open(chave, nivel_acesso) do |regkey|
  9.  
  10.   #modifica o valor
  11.   regkey.write(nome_valor, Win32::Registry::REG_SZ, valor)
  12.  
  13.   #para alterar o valor poderia também ser utilizado:
  14.   #regkey[nome_valor, Win32::Registry::REG_SZ] = valor 
  15. end

Exemplo 4: Excluindo um valor

RUBY:

  1. #define o nivel de acesso da chave para escrita
  2. nivel_acesso = Win32::Registry::KEY_WRITE
  3.  
  4. #abre um chave
  5. Win32::Registry::HKEY_CURRENT_USER.open(chave, nivel_acesso) do |regkey|
  6.   #exclui o valor
  7.   regkey.delete_value(nome_valor)
  8. end

Exemplo 5: Excluindo uma chave

1ª forma

RUBY:

  1. #true define exclusão recursiva
  2. Win32::Registry::HKEY_CURRENT_USER.delete_key(chave, true)

2ª forma

RUBY:

  1. #define o nivel de acesso da chave para escrita
  2. nivel_acesso = Win32::Registry::KEY_WRITE
  3.  
  4. #abre a chave Software
  5. Win32::Registry::HKEY_CURRENT_USER.open('Software', nivel_acesso) do |regkey|
  6.   #exclui a chave TesteRubyRegistry
  7.   regkey.delete_key('TesteRubyRegistry')
  8. end

Heroku: Plataforma online de desenvolvimento em Ruby on Rails

Postador por Tiago Damasceno

O framework Ruby on Rails (RoR) tem ganhado cada vez mais adeptos entres os desenvolvedores Web 2.0, graças a sua alta produtividade e forte integração com AJAX (essencial para a Web 2.0).

A previsão de crescimento da linguagem Ruby no Brasil para 2008 é dobro em relação a 2007, aproximadamente 33% dos desenvolvedores, segundo levantamento da Evans Data, feito com 400 desenvolvedores no Brasil, China, Índia e Europa Oriental. Esse crescimento se deve em grande parte pela popularização do RoR.

Se alguém ainda não acredita no crescimento de RoR, pode verificar a grande lista de aplicações já desenvolvidas pelo mundo.

Com a popularização do framework, várias iniciativas começaram a surgir e uma muito interessante e promissora é o Heroku.

Heroku é uma plataforma online (beta) para desenvolvimento e hospedagem de aplicações em Ruby on Rails. Você só precisa de um Navegador para ter todo o ambiente de desenvolvimento em suas mãos.

image

A plataforma possui os seguintes recursos:

  • Criação e edição online
  • Importação de aplicações desenvolvidas fora do Heroku
  • Compartilhamento de aplicações
  • Desenvolvimento colaborativo
  • Geração de código (generators e migrate)
  • Rails console
  • Sem necessidade de configuração e deployment

Para conhecer melhor cada recurso, veja os vídeos de demonstração.

Ficou interessado? Infelizmente vai ter que solicitar um convite e aguardar, pois estão limitando os acessos enquanto estiver em beta. A previsão para receber o convite é de 6 dias.

Logicamente você não terá todos os recursos de um ambiente de desenvolvimento off-line, mas com certeza é um grande iniciativa e será de grande utilidade para a divulgação de Ruby e RoR e para aqueles que desejam aprender, podendo estudar de qualquer lugar. ;)

Postador por Tiago Damasceno

Curso online gratuito de Ruby

rubyQuer aprender uma das linguagens que mais tem crescido pelo mundo com apenas poucos anos de vida e com grande previsão de crescimento para o próximo ano, sem ter que gastar nada?

O site RubyLearning.com mantido por Satish Talim, está promovendo um curso gratuito de Ruby, totalmente online. O curso está em sua 3ª edição e até o momento deste post, já possuía mais de 715 inscritos.

O curso será ministrado através do Moodle, uma aplicação opensource para ensino a distância e tem início em 07 de janeiro de 2008. Para mais detalhes e para realizar sua inscrição, acesse a página do curso.

O pré-requisito é saber inglês e já possuir alguma base de programação.

Não vá perder essa excelente oportunidade!