Вы можете сделать
class String
def namechanger
puts "This is the name to change: #{self}"
end
end
Разница в том, что ваш первый пример - это метод, который (в основном) определен глобально, который принимает строку и работает с ней.Этот код выше, однако, определяет метод с именем «namechanger», который не принимает параметров, и определяет его непосредственно в классе String.Таким образом, любой и все строки в вашем приложении будут иметь этот метод.
Но, как сказал pst, вам, вероятно, не стоит углубляться в этот стиль программирования, пока вы не познакомитесь немного с Ruby, чтобы вы могли большелегко увидеть все плюсы и минусы такого обезьяноподготовки.Одним из соображений является то, что у вас, вероятно, есть много строк, которые не представляют имен, и для этих строк не имеет большого смысла иметь метод с именем namechanger.
Тем не менее, если ваша цельэто просто немного повеселиться с Руби, посмотреть, что вы можете сделать, пойти на это, но не забывайте быть более осторожным в проектах, которые будут иметь более длительный срок службы.