Novo OS 2.0 traz email integrado e aplicativos Android para o PlayBook
Boatos: Microsoft pode ter Office para iPad
Guia de salários: carreira em e-commerce pode pagar até R$ 16 mil
Google ignora controles de privacidade do IE, diz Microsoft
iPad 3 terá SoC Apple A5X
Lista de falhas: iPad 2 é mais seguro que Kindle Fire
Fundador do Megaupload é solto pela justiça
Anonymous: conheça os 10 principais fatos do grupo
Anônimos, trolls e fakes: dicas de etiqueta para lidar na internet
Especial Carreiras em TI: entenda o que faz um arquiteto de solução
Solução capta e reporta falhas em softwares
Guia de salários: profissionais de help desk ganham até R$ 16,7 mil

Dando continuidade ao post “Um pouco sobre classes”, vamos incrementar a classe que criamos com acessores e modificadores de atributos.
Primeiro vamos relembrar como ficou nossa classe Dog:
Depois que criamos uma instância de Dog, passando um nome e uma raça, não conseguimos recuperar esses valores individualmente.
Para fazer isso, vamos criar método acessores que irão retornar os valores das variáveis de instância @name e @breed.
E então chamamos os novos métodos:
Agora, além de recuperar, queremos também configurar o nome e a raça, criando mais dois novos métodos que atribuem valores para as variáveis de instância @name e @breed:
E chamando os novos métodos:
Um tanto estranho essas chamadas de método, não? Vamos melhorar um pouco. Primeiro vamos omitir os parentêses:
Agora colocar um espaço antes do “=”:
Bem melhor, não? Dessa forma a impressão que temos é que os valores estão sendo atribuídos diretamente para name ou breed, quando na verdade continuamos chamando os mesmos métodos anteriores. Mas como é possível chamar os métodos dessa forma?
Para facilitar a legibilidade do código em Ruby, há algumas exceções de sintaxe, conhecidas como Syntatic Sugar. Uma delas é poder chamar um método que termine com “=” colocando um espaço entre o nome do método e o “=”. E como os parentêses são opcionais nas chamadas de métodos, ao invés de:
Podemos usar:
Como a criação desses métodos acessores e modificadores (getters and setters) é bastante comum, Ruby fornece um recurso para automatizá-la. Os métodos attr_reader e attr_accessor podem ser chamados dentro da definição de uma classe. Eles recebem um ou mais nomes de métodos no formato de símbolos como parâmetro.
O attr_reader irá criar método acessor do atributo e o attr_accessor irá criar tanto o método acessor quanto o modificador do atributo. Esses dois métodos também irão criar variáveis de instância para os atributos passados.
Na nossa classe Dog, vamos utilizar o attr_accessor para name e breed:
E o uso dos métodos criados:
Para finalizar, o código completo de como ficou a classe Dog:
Desenvolvedor sênior na Locaweb, empresa na qual está desde 2007, Fernando Hamasaki de Amorim trabalha desde a criação até a arquitetura, modelagem, análise e integração de sistemas e aplicativos na companhia. Graduado em Tecnologia em Informática pela UniSant'Anna, o profissional possui pós-graduação em Tecnologias Web com Ênfase em Java pela Fiap. Já atuou em diversas outras companhias, tais como a TV Online, empresa brasileira pioneira em transmissões ao vivo e SAC Sistemas, que desenvolve ERP. Neste espaço, abordará temas envolvendo o desenvolvimento por meio da linguagem Ruby.
Inovação, tecnologia e futurismo
Bráulio Medina
SIRI, MAJEL, EVI - Colhemos os frutos da semântica e inteligência artificial
Mundo RIA
Zaedy Sayão
Construindo Mobile Apps com Sencha Touch e Phonegap - Parte 1
Conversando sobre Tecnologia
Anderson Rocha
Transpondo Fronteiras da Multidisciplinaridade para Lidar Com Falsificações de Imagens e Vídeos no Século XXI*
Mídias Sociais e Negócios - Direto do Vale do Silício
Marcio Saito
7 Ações em Mídia Social para quem tem mais o que fazer
Expedição WDC: o diário do sinal de internet no Brasil
Expedição WDC
Pegue uma carona na Expedição WDC/Abranet