We got nominated! Help us out and vote for GitHub as Best Bootstrapped Startup of 2008. (You can vote once a day.) [ hide ]

public
Description: Tradução do livro Why's (Poignant) Guide to Ruby para português.
Homepage: http://poignantguide.net/ruby/
Clone URL: git://github.com/carlosbrando/poignant-br.git
revisão da 33
agaelebe (author)
Fri Nov 21 17:49:31 -0800 2008
commit  f2806c2b0f66a29970b26c629ce57f6e4a224405
tree    ba0a2f6f221f9e879b4d2385cc54661ae71ff9c2
parent  3250799eabe73cd9d18ba5c154ca22e4b61aa3ad
...
1
2
3
4
 
5
6
7
8
9
 
 
10
11
12
 
13
14
15
...
21
22
23
24
25
26
 
 
 
27
28
29
30
31
32
 
 
 
33
34
35
36
37
 
 
 
38
39
40
41
42
43
 
 
44
45
 
46
47
48
49
50
51
 
52
53
54
55
56
 
 
57
58
59
60
 
61
62
63
64
65
66
 
67
68
69
...
72
73
74
75
76
 
 
77
78
79
 
80
81
82
83
 
84
85
86
87
88
89
 
90
91
92
...
114
115
116
117
118
 
 
119
120
121
...
124
125
126
127
 
128
129
130
...
148
149
150
151
152
 
 
153
154
155
...
158
159
160
161
 
162
163
164
...
166
167
168
169
 
170
171
172
 
173
174
175
...
190
191
192
193
194
 
 
195
196
197
...
201
202
203
204
205
 
 
206
207
208
...
219
220
221
222
 
223
224
225
226
 
227
228
229
 
230
231
232
...
247
248
249
250
251
 
 
252
253
254
...
277
278
279
280
 
281
282
283
284
285
286
 
 
287
288
289
...
293
294
295
296
 
297
298
299
300
301
302
 
303
304
305
...
312
313
314
315
 
316
317
318
319
320
321
322
 
 
 
323
324
325
...
1
2
3
 
4
5
6
7
 
 
8
9
10
11
 
12
13
14
15
...
21
22
23
 
 
 
24
25
26
27
28
29
 
 
 
30
31
32
33
34
 
 
 
35
36
37
38
39
40
41
 
 
42
43
44
 
45
46
47
48
49
50
 
51
52
53
54
 
 
55
56
57
58
59
 
60
61
62
63
64
65
 
66
67
68
69
...
72
73
74
 
 
75
76
77
78
 
79
80
81
82
 
83
84
85
86
87
88
 
89
90
91
92
...
114
115
116
 
 
117
118
119
120
121
...
124
125
126
 
127
128
129
130
...
148
149
150
 
 
151
152
153
154
155
...
158
159
160
 
161
162
163
164
...
166
167
168
 
169
170
171
 
172
173
174
175
...
190
191
192
 
 
193
194
195
196
197
...
201
202
203
 
 
204
205
206
207
208
...
219
220
221
 
222
223
224
225
 
226
227
228
 
229
230
231
232
...
247
248
249
 
 
250
251
252
253
254
...
277
278
279
 
280
281
282
283
284
 
 
285
286
287
288
289
...
293
294
295
 
296
297
298
299
300
301
 
302
303
304
305
...
312
313
314
 
315
316
317
318
319
 
 
 
320
321
322
323
324
325
0
@@ -1,15 +1,15 @@
0
     - >
0
         O método @reverse@ é então usado na String que o @gets@ está devolvendo. O método @reverse@
0
         é parte da classe @String@. O que significa que *tudo que for uma string tem o método @reverse@
0
- disponível*. Mais sobre classes no próximo capítulo, por enquanto só saiba que *alguns métodos
0
+ disponível*. Mais sobre classes no próximo capítulo, por enquanto saiba apenas que *alguns métodos
0
         só estão disponíveis para certos tipos de valores*.
0
 
0
 
0
- Eu não acho que o @reverse@ vai dar muito certo. As autoridades só precisam por um espelho na frente
0
- de "airégiN ad elortnoc o emoT." Prenderão a gente quando as starmonkeys começarem a pousar em Lagos.
0
+ Eu não acho que o @reverse@ dará muito certo. As autoridades só precisam por um espelho na frente
0
+ de "airégiN ad elortnoc o emoT." Prenderão a gente quando os macacoestrelas começarem a pousar em Lagos.
0
 
0
 
0
- As letras maiúsculas estão entregando o ouro. Talvez se nós passássemos todas as letras na string
0
+ As letras maiúsculas estão nos entregando. Talvez se passássemos todas as letras na string
0
         para maiúsculas antes de inverter.
0
 
0
     
0
@@ -21,49 +21,49 @@
0
         h3. Sua Repetitividade Compensa
0
 
0
 
0
- Você me entrega um bloco de notas, cheio de garranchos ilegíveis. Analisando ele, eu começo a notar
0
- padrões. Notar que você parece usar as mesmas palavras repetidamente in your musings.
0
- Palavras como _macacoestrela_, _Nigéria_, _bomba_. Algumas frases até. _Put the kabosh on._
0
+ Você me entrega um bloco de notas, cheio de garranchos ilegíveis. Analisando ele, começo a notar
0
+ padrões. Notar que você parece usar as mesmas palavras repetidamente em suas reflexões.
0
+ Palavras como _macacoestrela_, _Nigéria_, _bomba_. Algumas frases até. _Ponha um fim nisso._
0
         Que são ditas toda hora.
0
 
0
 
0
- Vamos disfarçar estes termos bobos, meu irmão. Vamos ofuscá-los de olhos comichantes que
0
- choram para saber nossos delicados planos e para nos impedir de ter grande prazer e muitos karts.
0
- Vamos trocá-los por linguagem inocente. Novas palavras com significado secreto.
0
+ Vamos disfarçar estes termos bobos, meu irmão. Vamos ofuscá-los de olhos ardentes que
0
+ choram para saber nossos delicados planos e para nos demover de termos grande prazer e muitos karts.
0
+ Vamos trocá-los pela mais inocente linguagem. Novas palavras com significado secreto.
0
 
0
 
0
- Eu comecei uma lista de palavras, uma @Hash@ do Ruby, que contém estas suas palavras tão freqüentes e perigosas.
0
- Na Hash, cada palavra perigosa é comparada contra uma palavra código (ou frase). A palavra código então
0
- será trocada pela palavra real.
0
+ Eu comecei uma lista de palavras, um @Hash@ do Ruby, que contém estas suas palavras tão freqüentes e perigosas.
0
+ No Hash, cada palavra perigosa é comparada contra uma palavra código (ou frase). A palavra código
0
+ será então trocada pela palavra real.
0
 
0
 
0
         <pre>
0
          palavras_codigo = {
0
- 'macacosestrela' => 'Phil e Pete, those prickly chancellors of the New Reich',
0
- 'catapulta' => 'chucky go-go', 'bomba' => 'Heat-Assisted Living',
0
+ 'macacosestrela' => 'Phil e Pete, aqueles chanceleres de pavio curto do Novo Reich',
0
+ 'catapulta' => 'chucky go-go', 'bomba' => 'Vida Assistida por Calor',
0
            'Nigeria' => "Ny e Jerry's Lavagem a Seco (com Donuts)",
0
- 'Put the kabosh on' => 'Put the cable box on'
0
+ 'Ponha um fim nisso' => 'Ponha um fio nisso'
0
          }
0
         </pre>
0
 
0
 
0
         As palavras que são colocadas antes da seta são chamadas *chaves*. As palavras depois
0
- das setas, as definições, geralmente são chamadas de *valores* simplesmente.
0
+ das setas, as definições, geralmente são simplesmente chamadas de *valores*.
0
 
0
 
0
         Note as aspas duplas em volta de @Ny e Jerry's Lavagem a Seco (com Donuts)@. Já que nas
0
- aspas está sendo usado um apóstrofo, nós não podemos usar aspas simples em torno
0
- da string. (Todavia, você pode usar aspas simples se você colocar uma barra invertida antes
0
+ aspas está sendo usado um apóstrofo (aspas simples), nós não podemos usar aspas simples em torno
0
+ da string. (Todavia, você pode usar aspas simples se colocar uma barra invertida antes
0
         do apóstrofo como em: @'Ny e Jerry\'s Lavagem a Seco (com Donuts)'@.)
0
 
0
 
0
- Se você precisar procurar por uma palavra em específico, você pode usar o método das *chaves*.
0
+ Se você precisar procurar por uma palavra em específico, pode usar o método dos *colchetes*.
0
 
0
 
0
         bq. @palavras_codigo['catapulta']@ irá responder com a string @'chucky go-go'@.
0
         
0
 
0
- Olhe as chaves como se elas fossem paletes de madeira nas quais as palavras estão em cima.
0
+ Olhe os colchetes como se elas fossem paletas de madeira nas quais as palavras estão em cima.
0
         Uma empilhadeira poderia usar suas pás em cada lado da palete e a trazer da prateleira
0
         de volta ao depósito. A palavra na palete é chamada de _indexador_.
0
         Estamos pedido para a empilhadeira achar o indexador pra gente e nos trazer de volta
0
@@ -72,21 +72,21 @@
0
 
0
         Se você nunca esteve num depósito, você pode ver as chaves como alças.
0
         Imagine um trabalhador industrial colocando suas luvas e levando o index de volta à
0
- sua custódia. Se você nunca usou uma alça, ou te dar cerca de
0
- trinta segundo pra achar uma e usar antes que eu fique nervoso.
0
+ sua custódia. Se você nunca usou uma alça, vou lhe dar cerca de
0
+ trinta segundos para achar uma e usar antes que eu estoure meus miolos.
0
 
0
 
0
- Assim como os vários operadores que você viu recentemente, as chaves indexadoras são
0
+ Assim como os vários operadores que você viu recentemente, os colchetes indexadoras são
0
         simplesmente um atalho para um método.
0
 
0
 
0
- bq. @palavras_codigo.[]( 'catapulta' )@ irá responder com a string @'chucky go-go'@.
0
+ bq. @palavras_codigo.[]( 'catapulta' )@ responderá com a string @'chucky go-go'@.
0
 
0
 
0
         h3. Fazendo a Troca
0
 
0
         
0
- Eu me adiantei e salvei a Hash de código em um arquivo chamado *listadepalavras.rb*.
0
+ Eu me adiantei e salvei o Hash de código em um arquivo chamado *listadepalavras.rb*.
0
 
0
 
0
         <pre>
0
@@ -114,8 +114,8 @@
0
 
0
 
0
         Depois disso, há duas seções. Estou marcando estas seções com comentários, as linhas que começam
0
- com o símbolo *cerquilha #*. Comentários são *notas úteis* que acompanham seu código. Colegas que
0
- vierem ver seu código vão apreciar tal ajuda. Você mesmo, quando vier no seu código novamente
0
+ com o símbolo *cerquilha (jogo-da-velha) #*. Comentários são *notas úteis* que acompanham seu código. Colegas que
0
+ vierem ver seu código vão apreciar tal ajuda. Você mesmo, quando olhar para seu código novamente
0
         depois de algum tempo, comentários vão te ajudar a retomar o fio da meada. E ainda existe
0
         softwares por aí que pegam seus comentários e fazem documentação à partir deles. (RDoc e Ri --
0
         veja o Pacote de Expansão #1!)
0
@@ -124,7 +124,7 @@
0
         Eu gosto de comentários porque posso passar os olhos por uma grande pilha de código e identificar pontos importantes.
0
 
0
 
0
- Como os comentários nos dizem, a primeira seção de pergunta uma idéia maléfica e a troca por uma
0
+ Como os comentários nos dizem, a primeira seção pergunta por uma idéia maléfica e a troca por uma
0
         palavra código. A segunda seção salva a idéia codificada num novo arquivo de texto.
0
 
0
 
0
@@ -148,8 +148,8 @@
0
         que tomará o lugar como segundo argumento*.
0
 
0
 
0
- Por que nós não estamos we hanging on to the answer from @gsub@? Doesn't @gsub@ give us an answer back that
0
- we should keep? You'd think the line would read:
0
+ Por que nós não estamos aguardando a resposta do @gsub@? O @gsub@ não nos dá um resposta que devemos guardar?
0
+ Você acha que a linha deveria ser assim:
0
 
0
 
0
         <pre>
0
@@ -158,7 +158,7 @@
0
 
0
 
0
         Sim, com @gsub@ nós temos que ficar com a resposta. Estamos usando uma variação do @gsub@ que é
0
- totalmente hyper. Notou a *exclamação* no @gsub!@ usada dentro de cada bloco @each@? A
0
+ totalmente hiper. Notou a *exclamação* no @gsub!@ usada dentro de cada bloco @each@? A
0
         exclamação é um sinal de que @gsub!@ é meio radical. Veja, @gsub!@ vai mais longe e
0
         *troca as palavras em @ideia@ diretamente*. Quando ele termina @ideia@ vai conter a nova string
0
         alterada e você não vai mais achar a string velha.
0
@@ -166,10 +166,10 @@
0
 
0
         Pode chamar @gsub!@ de *método destrutivo*. Ele faz suas modificações no valor diretamente. Enquanto @gsub@
0
         deixa o valor intacto, apenas respondendo com uma nova string que contém as alterações.
0
- (Why must @gsub!@ scream when he descends upon his prey? Merciless assailant!)
0
+ (Por que o @gsub!@ tem que gritar quando ataca sua presa? Assaltante cruel!)
0
 
0
 
0
- h3. Arquivo de Texto de um Homem Louco
0
+ h3. Arquivos de Texto de um Louco
0
 
0
 
0
         Vamos salvar a idéia codificada em um arquivo.
0
@@ -190,8 +190,8 @@
0
 
0
 
0
         O método @strip@ serve pra todas strings. Este método *corta espaços e linhas vazias* do *começo
0
- e fim* de uma string. Isto irá remover o _Enter_ no fim da string que você digitou.
0
- E também irá remover espaços caso você tenha acidentalmente deixado algum.
0
+ e fim* de uma string. Isto removerá o _Enter_ no fim da string que você digitou.
0
+ E também removerá espaços caso você tenha acidentalmente deixado algum.
0
 
0
 
0
         Depois que temos o nome da idéia, vamos abrir um novo arquivo de texto em branco. O nome do arquivo é
0
@@ -201,8 +201,8 @@
0
 
0
 
0
         Estamos usando o método de classe @File::open@ para criar um novo arquivo. Até agora, nós usamos
0
- vários métodos do kernel para fazer nosso serviço. Nós damos uma string pro método @print@ e ele a
0
- imprime na nossa tela. Um segredo sobre método do kernel como @print@: eles são na verdade
0
+ vários métodos do kernel para fazer nosso serviço. Nós damos uma string para o método @print@ e ele a
0
+ imprime na nossa tela. Um segredo sobre métodos do kernel como o @print@: eles são na verdade
0
         *métodos de classe*.
0
 
0
 
0
@@ -219,14 +219,14 @@
0
         renomeiam, ou deletam arquivos. Eles estão todos organizados dentro da classe @File@.
0
 
0
 
0
- bq. @File::read( "ideia-mostarda-mais-codeine.txt" )@ vai responder uma com uma string
0
+ bq. @File::read( "ideia-mostarda-mais-codeina.txt" )@ responderá com uma string
0
         contendo todo o texto do seu arquivo de idéias. (Read significa ler.)
0
 
0
 
0
- bq. @File::rename( "aquivd_antigo.txt", "aquivo_novo.txt" )@ irá renomear o @aquivo_antigo.txt@.
0
+ bq. @File::rename( "aquivd_antigo.txt", "aquivo_novo.txt" )@ renomeará o @aquivo_antigo.txt@.
0
 
0
 
0
- bq. @File::delete( "aquivo_novo.txt" )@ irá explodir o novo arquivo.
0
+ bq. @File::delete( "aquivo_novo.txt" )@ explodirá o novo arquivo.
0
 
0
 
0
         Estes métodos File estão todos *dentro do Ruby*. Estão apenas armazenados num
0
@@ -247,8 +247,8 @@
0
         arquivo. (Outras opções são: @'r'@ para ler o arquivo ou @'a'@ para adicionar no fim do arquivo.)
0
 
0
 
0
- O arquivo está aberto para escrita e nos é dado na forma de variável @f@, que pode ser vista
0
- *descendo a calha pra dentro do nosso block*. Dentro do bloco, nós escrevemos no arquivo. Quando
0
+ O arquivo está aberto para escrita e nos é dado na forma da variável @f@, que pode ser vista
0
+ *descendo a calha para dentro do nosso bloco*. Dentro do bloco, nós escrevemos no arquivo. Quando
0
         o bloco se fecha com @end@, nosso arquivo é fechado também.
0
 
0
 
0
@@ -277,13 +277,13 @@
0
         </pre>
0
 
0
 
0
- Nessa altura, você já deve estar sabendo o que este exemplo faz. Não vou te incomodar com
0
+ A esta altura, você já deve estar sabendo o que este exemplo faz. Não vou te incomodar com
0
         detalhes mundanos. Veja se você consegue entender sozinho como isso funciona.
0
 
0
 
0
         Contudo, temos um método de classe interessante aqui. O método @Dir::[]@ procura num diretório (alguns
0
- de vocês podem chamá-los de "pastas"). Assim como você viu com as Hashes, os colchetes indexadores
0
- pode ser métodos de Classe. (Começando a ver a brilhante, glinting gorgeousness of Ruby?)
0
+ de vocês podem chamá-los de "pastas"). Assim como você viu com os Hashes, os colchetes indexadores
0
+ podem ser métodos de Classe. (Começando a ver a brilhante, glinting gorgeousness of Ruby?)
0
 
0
 
0
         Então nós estamos usando a empilhadeira para pegar os arquivos no diretório que coincidem @'ideia-*.txt'@. The
0
@@ -293,13 +293,13 @@
0
 
0
 
0
         Esta *lista de arquivos* vem na forma de @Array@ a Centopéia, com uma @String@ para cada
0
- arquivo. Se você está curioso e que brincar com @Dir::[]@, tente isso:
0
+ arquivo. Se você está curioso e quer brincar com @Dir::[]@, tente isto:
0
 
0
 
0
         bq. @p Dir['ideia-*.txt']@ irá imprimir:
0
 
0
 
0
- bq. @['ideia-mostarda-mais-codeine.txt']@ (_um Array de nomes de arquivos!_)
0
+ bq. @['ideia-mostarda-mais-codeina.txt']@ (_um Array de nomes de arquivos!_)
0
 
0
 
0
         Sim, o método @p@ funciona igual @print@. Mas @print@ é para se imprimir strings,
0
@@ -312,14 +312,14 @@
0
         bq. @["send", "display", "name", "exist?", "split",@ ... _a lista completa dos nomes dos métodos!_ @]@
0
 
0
 
0
-# h3. Extra Credit: PStore
0
+# h3. Creditó Extra: PStore
0
 #
0
 #
0
 # <pre>
0
 # require 'pstore'
0
-# journal = PStore.new( 'journal.p' )
0
-# journal.transaction do
0
-# journal.
0
+# jornal = PStore.new( 'jornal.p' )
0
+# jornal.transaction do
0
+# jornal.
0
 # end
0
 # </pre>
0
 

Comments

    No one has commented yet.