Last active
December 11, 2015 22:18
-
-
Save gbaptista/4668533 to your computer and use it in GitHub Desktop.
Métodos de instância, são métodos acessíveis apenas por instâncias da classe. O mesmo vale para variáveis.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
class InstanceMethods | |
attr_accessor :instance_var | |
def demo_instance_method | |
'instance_method' | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
# Ajuda para os comentários e termos: | |
# http://blog.gbaptista.com/2013/01/29/comentarios-metodos-variaveis-classe-instancia/ | |
require 'test/unit' | |
require './instance_methods' | |
class InstanceMethodsTest < Test::Unit::TestCase | |
def test_instance_methods | |
# Criando uma instância da classe. | |
instance_methods = InstanceMethods.new | |
# Métodos [instance public] são acessíveis por uma instância da classe. | |
assert_equal('instance_method', instance_methods.demo_instance_method) | |
# Variáveis [instance public] são setáveis por uma instância da classe. | |
assert_equal('instance_var', instance_methods.instance_var=('instance_var')) | |
# Variáveis [instance public] são acessíveis por uma instância da classe. | |
assert_equal('instance_var', instance_methods.instance_var) | |
# Métodos [instance public] não são acessíveis diretamente sem instanciar a classe. | |
assert_match(/undefined method/, assert_raise(NoMethodError){ | |
InstanceMethods.demo_instance_method | |
}.message) | |
# Variáveis [instance public] não são setáveis diretamente sem instanciar a classe. | |
assert_match(/undefined method/, assert_raise(NoMethodError){ | |
InstanceMethods.instance_var=('instance_var') | |
}.message) | |
# Variáveis [instance public] não são acessíveis diretamente sem instanciar a classe. | |
assert_match(/undefined method/, assert_raise(NoMethodError){ | |
InstanceMethods.instance_var | |
}.message) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment