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

Version Path
geet-0.22.0 lib/geet/utils/string_matching_selection.rb
geet-0.21.0 lib/geet/utils/string_matching_selection.rb
geet-0.19.0 lib/geet/utils/string_matching_selection.rb
geet-0.18.0 lib/geet/utils/string_matching_selection.rb
geet-0.17.0 lib/geet/utils/string_matching_selection.rb
geet-0.16.0 lib/geet/utils/string_matching_selection.rb
geet-0.15.0 lib/geet/utils/string_matching_selection.rb
geet-0.14.0 lib/geet/utils/string_matching_selection.rb
geet-0.13.0 lib/geet/utils/string_matching_selection.rb
geet-0.12.0 lib/geet/utils/string_matching_selection.rb
geet-0.11.0 lib/geet/utils/string_matching_selection.rb
geet-0.10.0 lib/geet/utils/string_matching_selection.rb
geet-0.9.0 lib/geet/utils/string_matching_selection.rb
geet-0.8.0 lib/geet/utils/string_matching_selection.rb
geet-0.7.0 lib/geet/utils/string_matching_selection.rb
geet-0.6.0 lib/geet/utils/string_matching_selection.rb
geet-0.5.0 lib/geet/utils/string_matching_selection.rb
geet-0.4.4 lib/geet/utils/string_matching_selection.rb
geet-0.4.3 lib/geet/utils/string_matching_selection.rb
geet-0.4.2 lib/geet/utils/string_matching_selection.rb