Sha256: f9158ca90eb961de20d96f994d527700b3c12851e6a495e4f41652ddc54a8c29
Contents?: true
Size: 932 Bytes
Versions: 39
Compression:
Stored size: 932 Bytes
Contents
# frozen_string_literal: true module Geet module Utils class StringMatchingSelection def select_entry(entry_type, entries, pattern, name_method: nil) entries_found = entries.select do |entry| entry = entry.send(name_method) if name_method entry.downcase == pattern.downcase end case entries_found.size when 1 entries_found.first when 0 raise "No entry found for #{entry_type} pattern: #{pattern.inspect}" else raise "Multiple entries found for #{entry_type} pattern #{pattern.inspect}: #{entries_found}" end end def select_entries(entry_type, entries, raw_patterns, name_method: nil) patterns = raw_patterns.split(',') patterns.map do |pattern| # Haha. select_entry(entry_type, entries, pattern, name_method: name_method) end end end end end
Version data entries
39 entries across 39 versions & 1 rubygems