Mam uruchomioną aplikację w języku Ruby, którą chcę udostępnić użytkownikowi, aby udostępnił kod, który będzie działał jako filtr w części procesu. Zasadniczo, aplikacja robi to:Skryptuj aplikację wiersza polecenia ruby; najlepszy sposób to zrobić?
- odczytu w niektórych danych
- Jeśli filtr jest określony, używać go do filtrowania danych
- przetwarzać dane
Chcę proces filtrowania (etap 2) być jak najbardziej elastycznym.
Moje myślenie było to, że użytkownik może dostarczyć plik Ruby, które wyróżniają znana stała się wskazywać na przedmiot wdrożenie interfejsu zdefiniować, np
# user's filter
class MyFilter
def do_filter(array_to_filter)
filtered_array = Array.new
# do my filtering on array_to_filter
filtered_array
end
FILTER = MyFilter.new
moja aplikacja Kod będzie wtedy zrobić coś takiego:
array_that_might_get_filtered = get_my_array()
if (options.filter_file)
require options.filter_file
array_that_might_get_filtered = FILTER.do_filter(array_that_might_get_filtered)
end
ile to będzie działać, to czuje się tandetnie i wydaje się, że powinien być lepszy sposób to zrobić. Uważałem też, że filtr powinien być w postaci dodania znanej klasy metody znanej nazwy, ale to też nie wydaje się być słuszne.
Czy istnieje lepszy język w tym języku?
O wiele bardziej praktyczna niż moja ogólna odpowiedź. +1 – VonC