1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-03-16 04:10:01 +01:00

[Ruby/pt-rb] Add modules explanation as in main file (#1827)

* Update - Modules. Brazilian portuguese translation according to the main version

Signed-off-by: demonkart <alanpcsilva@gmail.com>

* Remove conflict remainings, finally

* Change transaltors order
This commit is contained in:
DemonKart 2016-10-27 10:13:37 +02:00 committed by ven
parent a0978c90d6
commit 06bfdc28b0

View File

@ -7,6 +7,7 @@ contributors:
- ["Jean Matheus Souto", "http://jeanmatheussouto.github.io"] - ["Jean Matheus Souto", "http://jeanmatheussouto.github.io"]
translators: translators:
- ["Katyanna Moura", "https://twitter.com/amelie_kn"] - ["Katyanna Moura", "https://twitter.com/amelie_kn"]
- ["Alan Peterson Carvalho Silva", "https://twitter.com/DemonKart"]
--- ---
```ruby ```ruby
@ -382,12 +383,65 @@ end
Humano.bar # 0 Humano.bar # 0
Doutor.bar # nil Doutor.bar # nil
---
module ModuloDeExemplo
def foo
'foo'
end
end
# Incluir (include) módulos conecta seus métodos às instâncias da classe
# Herdar (extend) módulos conecta seus métodos à classe em si
class Pessoa
include ExemploDeModulo
end
class Livro
extend ExemploDeModulo
end
Pessoa.foo # => NoMethodError: undefined method `foo' for Pessoa:Class
Pessoa.new.foo # => 'foo'
Livro.foo # => 'foo'
Livro.new.foo # => NoMethodError: undefined method `foo'
# Callbacks são executados ao incluir e herdar um módulo
module ExemploDeConceito
def self.included(base)
base.extend(MetodosDeClasse)
base.send(:include, MetodosDeInstancia)
end
module MetodosDeClasse
def bar
'bar'
end
end
module MetodosDeInstancia
def qux
'qux'
end
end
end
class Algo
include ExemploDeConceito
end
Algo.bar # => 'bar'
Algo.qux # => NoMethodError: undefined method `qux'
Algo.new.bar # => NoMethodError: undefined method `bar'
Algo.new.qux # => 'qux'
``` ```
## Mais sobre Ruby ## Recursos adicionais
- [Documentação oficial](http://www.ruby-doc.org/core-2.1.1/)
- [Aprenda Ruby com desafios](http://www.learneroo.com/modules/61/nodes/338) - Uma coleção de desafios para testar a linguagem. - [Aprenda Ruby com desafios](http://www.learneroo.com/modules/61/nodes/338) - Uma coleção de desafios para testar a linguagem.
- [Documentação oficial](http://www.ruby-doc.org/core-2.1.1/)
- [Ruby a partir de outras linguagens](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/) - [Ruby a partir de outras linguagens](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/)
- [Programming Ruby](http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/)- Um mais antigo [free edition](http://ruby-doc.com/docs/ProgrammingRuby/) e tambem uma versão online disponível. - [Programming Ruby](http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/)- Um mais antigo [free edition](http://ruby-doc.com/docs/ProgrammingRuby/) e tambem uma versão online disponível.
- [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide) - Uma versão colaborativa de um *style-guide* - [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide) - Uma versão colaborativa de um *style-guide*