Archive for ‘Ruby’ Category
Browse:
Ruby »
Description:

Exemplos de ruby

Subcategories:

Sinatra + GoogleCharts Parceria perfeita

datePosted on 11:09, agosto 20th, 2010 by Carlos Eugênio

Caros amigos ,
Gerar gráficos sempre foram um problema para mim como começei programar em java os “malditos” gráficos utilizando o JfreeChart me tiraram diversas noites de sono.
Desde que iniciei minha curva de aprendizado em ruby fico surpreso a cada dia como as coisas podem ser mais fáceis neste novo mundo.
Me deparei com a necessidade de gerar gráficos utilizando ruby e pensei “tô ferrado” relambrando minhas noites mal dormidas.

Foi quando achei este projeto no rubyforge : http://googlecharts.rubyforge.org
Com uma facilidade a criação de relatórios se tornou a tarefa até que prazeirosa.

Read the rest of this entry »

E ai Rubystas ,

Trabalhar com a estrutura por traz de um site usando ruby on rails não é fácil … Passenger APACHE e afins trabalham muito bem mas as vezes ocorrem alguns erros intrigantes que me fazem pensar em voltar para a estrutura java que conheço muito bem .

Ontem tive o seguinte problema :

Comando :

Ao executar o comando : rails -v


/usr/lib/ruby/site_ruby/1.8/rubygems.rb:777:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
	from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:211:in `activate'
	from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:1056:in `gem'
	from /usr/bin/rails:18

Poxa o rails tá instalado na máquina o que tá faltando :


gem list rails
*** LOCAL GEMS ***
rails (2.3.8)
rails-settings (1.0.0)

Tive a grande idéia :


gem install rubygems-update

Resultado:


Successfully installed rubygems-update-1.3.7
1 gem installed
Installing ri documentation for rubygems-update-1.3.7...
Installing RDoc documentation for rubygems-update-1.3.7...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README

Ao testar novamente :


rails -v
Rails 2.3.8

Vualllaaaaaaaa!!!

Heroku a new approach to deploying web applications [FREE]

datePosted on 10:21, maio 17th, 2010 by Carlos Eugênio

Galera após ter visto um artigo de locais onde podemos colocar nossas aplicações rubyonrails na faixa resolvi testar o heroku no qual ouvi boas recomendações , realmente é excelente e tem apenas algumas limitações.
Seguem os passos que fiz para utilizar este serviço :

Instalando a gem do heroku


gem install heroku --no-ri --no-rdoc

Inicializando seu projeto no git


git init
git add .
git commit -m "Mensagem de commit inicial"

Criando a aplicação no heroku


heroku create aplicacao

Resultado:
Creating aplicacao..... done
Created http://aplicacao.heroku.com/ | git@heroku.com:aplicacao.git

Trocando chaves com o servidor do heroku para enviar a aplicação.


heroku keys --add ~/.ssh/id_rsa.pub

Caso não tenha chave crie-a em sua máquina linux com este comando:


ssh-keygen 

E insira os dados solicitados.

Enviando o projeto para o heroku


git push heroku master

Seguem alguns comandos que você precisará utilizar no heroku

Para inserir um email para receber informações


heroku sharing:add seuemail@dominio

Para adicionar um domínio para sua aplicação


heroku domains:add novodominio.com

Para criar as tabelas


heroku rake:db migrate

Para push do banco


heroku db:push

Para utilizar o memcache na app
heroku addons:add memcached

GEM_HOME – Instalando a gem em diretório diferente do padrão

datePosted on 19:48, março 10th, 2010 by Carlos Eugênio

Precisei criar uma aplicação independente em minha arquitetura , que utilizasse versões específicas e que não impactasse em minha aplicação de produção.
A forma de fazer isto de forma mais tranquila foi a seguinte :

export GEM_HOME=”/home/usuario/.gems”
export GEM_PATH=”$GEM_HOME”
export PATH=”$HOME/bin:$HOME/.gems/bin:$PATH”

Depois disso é só instalar com gem install

[Tuesday with Ruby] Controle de acesso – Métodos

datePosted on 07:03, outubro 20th, 2009 by Carlos Eugênio

E ai Pessoal , depois da RailsSummit 2009 resolvi dar uma revisão em meus conhecimentos de Ruby e nada melhor que seguir o tutorial do Eustáquio Rangel http://www.eustaquiorangel.com/downloads/tutorialruby.pdf que apesar de ser de 2005 é excelente material de estudo.

Tuesday é dia do Ruby em Foco :
ruby copy

Seguem algumas classes para testar métodos , protected , private e public .

Classe usando protected

class TesteProtegido
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
protected :diga_oi
end
class TesteProtegidoFilha < TesteProtegido
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
pro1 = TesteProtegido::new
pro2 = TesteProtegido::new
filha = TesteProtegidoFilha::new
estr = ClasseEstranha::new
pro1.cumprimente(pro2)
filha.novo_oi
estr.cumprimente(pro1)

Classe usando private


class TestePrivado
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
private :diga_oi
end
class TestePrivadoFilha < TestePrivado
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
priv1 = TestePrivado::new
priv2 = TestePrivado::new
filha = TestePrivadoFilha::new
estr = ClasseEstranha::new
priv1.cumprimente(priv2)
filha.novo_oi
estr.cumprimente(priv1)

Classe usando public

class TestePublico
def diga_oi
"oi!"
end
def cumprimente(outra)
puts "Eu cumprimento:" +diga_oi
puts "A outra classe cumprimenta: "+outra.diga_oi
end
public :diga_oi
end
class TestePublicoFilha < TestePublico
def novo_oi
puts "Filha cumprimenta: "+diga_oi
end
end
class ClasseEstranha
def cumprimente(outra)
puts "Classe estranha acessando: "+outra.diga_oi
end
end
pub1 = TestePublico::new
pub2 = TestePublico::new
filha = TestePublicoFilha::new
estr = ClasseEstranha::new
pub1.cumprimente(pub2)
filha.novo_oi
estr.cumprimente(pub1)

Resolving Couldn’t find ‘spec’ generator

datePosted on 11:18, setembro 22nd, 2009 by Carlos Eugênio

Ao executar o comando  script/generate rspec estava sendo apresentada a mensagem  :  Couldn’t find ‘spec’ generator

Solution :

gem install rspec

gem install rspec-rails

Aprendendo RSPEC

datePosted on 22:07, setembro 21st, 2009 by Carlos Eugênio

carro.rb

class Carro < ActiveRecord::Base
attr_accessor :preco
def calcula_comissao
preco * 0.05
end
def novo?
true
end
end

require File.expand_path(File.dirname(__FILE__) + ‘/../spec_helper’)

carro_rspec.rb
module CarroSpec
class Calcula
def initialize(comissao)
@comissao = comissao
end

def matches?(bloco)
bloco.call == @comissao
end

def failure_message
“esperado que comissao nao fosse negativo: #{@comissao}”
end

def negative_failure_message
“esperado que comissao nao fosse negativo :#{@comissao}”
end
end
def ter_valor(comissao)
Calcula.new(comissao)
end

end

############################################

describe Carro do
include CarroSpec

before do
@carro = Carro.new
end

it “deveria ser novo” do
@carro.should be_novo
end

it “deveria ter uma comissao de 5% do valor” do

@carro.preco=32000
@carro.calcula_comissao.should be == 1600.0
end
it do
Carro.new.should_not be_an_instance_of(Moto)
end

it “deveria calcular a comissao” do
@carro.preco = 32000
@comissao =  1600.0
lambda {
@carro.calcula_comissao
}.should ter_valor(@comissao)
end

end

Send email with ruby

datePosted on 17:26, setembro 4th, 2009 by Carlos Eugênio

Name archive : email.rb


require 'rubygems'
require 'action_mailer'

class Emailer < ActionMailer::Base
def testa_email(email_address, email_body)
recipients(email_address)
from "conta@dominio"
body email_body
end
end
Emailer.deliver_testa_email('carlos@cedugenio.locaweb.com.br', 'Testando o envio das mensagens!')

Executing example : ruby -w email.rb

[Rails] Application for specific rails version

datePosted on 16:23, setembro 3rd, 2009 by Carlos Eugênio

Para criar uma aplicação para versão específica do rails instalado na máquina siga os passos :

1 – Para verificar as versões de gem instalada na máquina
gem list
2 – Criando a aplicação : rails _versao_ nomedaaplicacao
Exemplo:
rails _2.2.2_ aplicacao

Tem espaço entre o rails e _2.2.2_ e o nomedaaplicacao

[Ruby] – Find and count words

datePosted on 08:44, agosto 7th, 2009 by Carlos Eugênio

class Array
def count_of(item)
grep(item).size
#inject(0) {|count,each_item| item == each_item ? count+1 :count }
end
end

def most_common_words(input, limit=25)
freq =  Hash.new()
sample = input.downcase.split(/\W/)
sample.uniq.each do |word|
freq[word] = sample.count_of(word) unless word == ”
end

words = freq.keys.sort_by do |word|
freq[word]
end.reverse.map do |word|
“#{word} #{freq[word]}”
end
return words[0, limit]
end

puts most_common_words(readlines.to_s).join(“\n”)

12Next