10.11. Metaprogramowanie z użyciem ewaluacji łańcuchów
Problem
Tworzymy pewien kod, wykorzystując metodę define_method
, jednak związana z tym intensywność posługiwania się odzwierciedleniami sprawia, że kod staje się mało czytelny i niezrozumiały, samo zaś metaprogramowanie wydaje się równie nużące jak tworzenie całego kodu „na piechotę”.
Rozwiązanie
Drugą, obok wykorzystywania metody define_method
, oficjalnie zalecaną techniką metaprogramowania jest ewaluacja łańcuchów: zawartość łańcucha zostaje potraktowana jak kod w języku Ruby i wykonana.
Powróćmy na chwilę do przykładu z poprzedniej receptury, wykorzystującego metodę define_method
:
class Numeric [['add', '+'], ['subtract', '-'], ['multiply', '*',], ['divide', '/']].each do |method, ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.