геттеры и сеттеры
допустим, наш обьект имеет несколько свойств, которые задаются в 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
             
                        
         
            
            
            
                Koenig,  про def тебе сказали , а option это, грубо говоря ассоциативный массив            
                        
         
            
            
            
                No-Tactic,  собака это типо $this->            
                        
         
            
            
            
                Fenixrus,  я только на PHP и JS нормально код могу писать.
Остальное так, поверхностно. Т.е практика мало или вовсе нет.            
                        
         
            
            
            
                No-Tactic,  я понимаю код любого языка, почти весь, все же они примерно из одного и того же состоят            
                        
         
            
            
            
                L!MP,  тогда я, знаешь, сколько языков знаю?