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"]
|
||||
translators:
|
||||
- ["Katyanna Moura", "https://twitter.com/amelie_kn"]
|
||||
- ["Alan Peterson Carvalho Silva", "https://twitter.com/DemonKart"]
|
||||
---
|
||||
|
||||
```ruby
|
||||
@ -382,12 +383,65 @@ end
|
||||
Humano.bar # 0
|
||||
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.
|
||||
- [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/)
|
||||
- [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*
|
||||
|
Loading…
x
Reference in New Issue
Block a user