Skip to content

Instantly share code, notes, and snippets.

@PsixokoT
Created April 16, 2018 21:04
Show Gist options
  • Save PsixokoT/65e97524e375c7e7e9464766e31ea2c6 to your computer and use it in GitHub Desktop.
Save PsixokoT/65e97524e375c7e7e9464766e31ea2c6 to your computer and use it in GitHub Desktop.
why self private method different private setter
class Example
def initialize(name)
@name = name
end
def test_equal_private(ex)
self.private_property == ex.private_property
end
def test_equal_protected(ex)
self.protected_property == ex.protected_property
end
def private_setter(value)
self.private_property = value
end
def private_getter_print
puts private_property
end
def print_name
puts @name
end
private
def private_property
@name
end
def private_property=(value)
@name = value
end
protected
def protected_property
@name
end
def protected_property=(value)
@name = value
end
end
e1 = Example.new('e1')
e2 = Example.new('e2')
# puts e1.test_equal_private(e2) #(NoMethodError)
puts e1.test_equal_protected(e2) #false
e1.private_setter('wtf')
e1.print_name()
e1.private_getter_print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment