Создайте свой собственный модуль / библиотеку, которую вы включаете в область действия, когда вам это необходимо для выполнения этой задачи.
Например, "requre 'unitCoversions'"
И есть вероятность, что кто-то уже сделал это, если вы посмотрите достаточно усердно:)
Однако НЕ попробуйте изменить собственный базовый класс, который закончится только Misery.
(Кроме того, класс, который вы хотите расширить, это «числовой», который будет применяться как к целым числам, так и к числам с плавающей точкой :))
Не совсем понятно, почему я не должен этого делать ... Rails делает это со строковым классом с большим успехом.
Поскольку это может быть сделано, это не значит, что должно быть сделано. «Обезьянье исправление», как известно, может иметь всевозможные странные побочные эффекты, и может быть эпическим провалом, если сделано неправильно.
Делайте это, когда нет хорошей альтернативы.
Потому что, если вы действительно хотите сделать что-то глупое, вы можете создать целую инфраструктуру, которая ALL сделала бы обезьяньим патчем основные классы.
Например, переверните базу данных по голове.
5.getArtist();
10.getEvent();
100.getTrack();
и т. Д. И т. Д. Нет предела тому, как много плохих способов сделать это.
"Bob".createUser();
несчастье в чашке.
Если вы хотите сделать что-то практичное, иметь класс или функцию Convert,
convert( 3 , { :from=>:miles, :to=>:meters });
по крайней мере, вы не загрязняете глобальное пространство имен и основные функции таким образом, и это имеет более логичный смысл.