Method: Hash#filter
- Defined in:
- lib/origen/core_ext/hash.rb
#filter(filter) ⇒ Object
Filter a hash by a key filter of various types
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/origen/core_ext/hash.rb', line 26 def filter(filter) filtered_hash = {} select_logic = case filter when String then 'k[Regexp.new(filter)]' when (Fixnum || Integer || Float || Numeric) then "k[Regexp.new('#{filter}')]" when Regexp then 'k[filter]' when Symbol then 'k == filter' when NilClass then true else true end # rubocop:disable UnusedBlockArgument filtered_hash = select do |k, v| [TrueClass, FalseClass].include?(select_logic.class) ? select_logic : !!eval(select_logic) end filtered_hash end |