To jest dla już istniejącego publicznego interfejsu API, którego nie mogę złamać, ale chcę go przedłużyć.Elegancki sposób pisania, symboli i tablic kaczych?
Obecnie metoda pobiera ciąg lub symbol lub cokolwiek innego, co ma sens, gdy przeszedł jako pierwszy parametr do send
chciałbym dodać możliwość wysyłania listę ciągów, symbole, et cetera . Mógłbym po prostu użyć is_a? Array
, ale istnieją inne sposoby wysyłania list, a to nie jest bardzo ruby.
Będę nazywać map
na liście, więc pierwszą zmianą będzie użycie respond_to? :map
. Ale ciąg odpowiada również na :map
, więc to nie zadziała.
Nie ma nic wspólnego z twoim pytaniem, ale mam nadzieję, że przeprowadzasz pewne testy, zanim wprowadzisz dane użytkownika do metody wysyłania! Yikes. –
dobry punkt. W naszym przypadku dokumenty wyraźnie stwierdzają, że parametr jest nazwą metody. To wystarczająco głęboki interfejs API, który powinien wystarczyć ... –
To nie jest kwestia dokumentacji - to dziura w bezpieczeństwie. Jeśli przejdą one w odsłonie, drugi parametr wysyłania zostanie uruchomiony w powłoce. Czy to naprawdę chcesz? Lepiej przeanalizuj dane wejściowe w instrukcji sprawy, a następnie wyślij symbole swojej konstrukcji. –