2017-09-10 5 views
1

Je travaille avec une classe qui est une collection de lignes contenant des données. J'ai créé une méthodeCondition en tant que paramètre d'une méthode dans ruby ​​

range#selection!(field, condition) 

pour réduire les lignes contenues qui ne correspondent pas à la condition.

Pendant un certain temps, il suffisait de fournir une expression régulière comme condition d'éliminer toutes les lignes où un champ avait des valeurs ne convient pas à ... regex

Maintenant je besoin de comparer les valeurs de champ dans un sens mathématique < = ,> =, plus pire je besoin de filtrer les champs qui contiennent une date postérieure à une date spécifiée ...

def selection!(field) {value<=3} 
value = 4 
if yield then 
... 
end 

Ceci est de toute évidence ne fonctionne pas, mais il est ce que je besoin d'une certaine façon ... passer seulement condition que je peux le plus tôt évaluer quand "la valeur" a une vallée à l'intérieur de la méthode. mais en évitant de déplacer tous les [...] dans un bloc que je réécris encore et encore

idées?

Marc

Répondre

0

si vous passez un bloc à votre méthode et votre méthode vous utilisez select/reject_if avec ce bloc pour filtrer votre collection?