From 3c145a48faf0018f27b31e5d10e31eddb60b06f3 Mon Sep 17 00:00:00 2001 From: "M. Simon Borg" Date: Sun, 6 Aug 2017 03:21:02 -0400 Subject: [PATCH] extract filter matching to module method --- lib/allowable/allowable.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/allowable/allowable.rb b/lib/allowable/allowable.rb index 9b3dcbe..3d7b108 100644 --- a/lib/allowable/allowable.rb +++ b/lib/allowable/allowable.rb @@ -18,13 +18,17 @@ # # hash # => {} module Allowable + def self.filter_match?(obj, key, val) + Array(val).include?(obj[key]) || val == obj[key] + end + def allow(filters = {}) dup.allow!(filters) end def allow!(filters = {}) filters.each do |key, val| - delete(key) unless Array(val).include?(self[key]) || val == self[key] + delete(key) unless Allowable.filter_match?(self, key, val) end self end @@ -35,7 +39,7 @@ def forbid(filters = {}) def forbid!(filters = {}) filters.each do |key, val| - delete(key) if Array(val).include?(self[key]) || val == self[key] + delete(key) if Allowable.filter_match?(self, key, val) end self end