Ruby добавляет метод! (С восклицательным знаком) в строку - PullRequest
2 голосов
/ 22 октября 2011

Я нашел много ресурсов, как сделать, чтобы добавить «обычный» метод в String.

т.е. Добавление пользовательского метода в строковый объект

Но я не нашел никакой информации о том, как добавить "разрушительный" метод с восклицательным знаком в класс String.

Может ли кто-нибудь переписать этот метод на «разрушительный»?

def nextval
  case self
  when "A"
    return "B"
  when "B"
    return "C"
  # etc
  end
end

[этот пример очень прост, я хочу добавить более сложный метод в строку]

Я хочу достичьчто-то вроде sub и sub! методов.

Ответы [ 2 ]

4 голосов
/ 22 октября 2011

Просто используйте разрушительные методы, уже предоставленные String.

def nextval!
  case self
  when "A"
    replace("B")
  when "B"
    replace("C")
  # etc
  end
end
1 голос
/ 22 октября 2011

Есть такой метод - String # next!

a = "foo"
a.next! # => "fop"
puts a  # => "fop"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...