геттеры и сеттеры
допустим, наш обьект имеет несколько свойств, которые задаются в initialize
по умолчанию эти свойства нельзя ни получить ни изменить
class User
def initialize(options)
@name = options[:name] # с собачкой пишется инстансная переменная
@age = options[:age]
end
def name # геттер
@name
end
def name=(n) # сеттер
@name = n
end
def age
@age
end
def age=(a)
@age = a
end
endно такой способ, имхо, неудобен/ т.к если много свойств, которые нужно получить и записать, будет очень много кода
есть способ проще:
class User
def initialize(options)
@name = options[:name]
@age = options[:age]
@weight = options[:weight] # третье свойство для полноты примера
end
attr_reader :name # позволяет читать свойство @name
attr_writer :weight # позволяет перезаписать @weight
attribute_accessor :age # позволяет и считать и записать @age
end