TGViewer
DEV: Рубиновые тона DEV: Рубиновые тона @dev_in_ruby_colors · 3.28K subscribers
Post #1336 1.99K
In my restless dreams I see that code... You promised you'd refactored it but you never did... А иногда прямо хочется вернуться в те славные дни в стиле "гусарский кодинг", когда всё было легко и просто.

    module Searching
# Some black magic indeed...
# Creates a Search child class of a given class that changes the URI where the
# GET request should be sent
def self.included(klass)
klass.const_set(:Search,
Class.new(klass) do |*_args|
def api_path
"#{super}/search"
end
end)

# The actual method to perform searching
# Instantiates a Search class with the given search params
# and send a GET request to the proper URI (defined above)
klass.define_singleton_method :search do |params|
klass.const_get(:Search).new(params)
end
end
end


Захотел - да и объявил константу класса (а то и наследуемый класс) при подключении модуля, а то и метод класса заодно, который на лету что-то читает. А чего - один раз ведь живём!

Сейчас, конечно, тоже не сильно сложно, но не так весело. Метапрограммирование всегда добавляло перчинку в скучную жизнь. Как говорил Джек Воробей - мир остался прежним, стало меньше содержимого (да, я уже помню, что *капитан* Джек Воробей, можно не поправлять 👍) https://github.com/bodrovis/ChgkRating/blob/master/lib/chgk_rating/concerns/searching.rb
  • 🔥 6
  • ❤ 5
More from @dev_in_ruby_colors
  1. Sep 22, 2026А тем временем сказ о ведьмаке, потерявшем память, уже доступен в виде аудиокниги. Целых 1…
  2. Sep 20, 2026В этом уроке по абстрактной алгебре продолжаем говорить о кольцах: в частности о subrings…
  3. Sep 17, 2026Сделал обзор актуальных библиотек JS для сбора данных, 10 штук бодрых решений на все случа…
  4. Sep 13, 2026В общем, мне тут особо было нечего делать и я подумал создать небольшой скрипт для решения…
  5. Sep 12, 2026Oh shit here we go again https://x.com/thlarsen/status/2098544270361964576
  6. Sep 7, 2026Гугл проказничает опять. На сей раз они начали менять то, как выглядят ссылки в поисковой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →