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:
parent
a0978c90d6
commit
06bfdc28b0
@ -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*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user