Sha256: 20d3f829d6b63f6f674408b8afd24e9e4518d737c8f7bc6026abe18efa6603fd

Contents?: true

Size: 765 Bytes

Versions: 1

Compression:

Stored size: 765 Bytes

Contents

require 'textpow'

module Coloration

  module Readers

    class ItemsLookup

      def initialize(items)
        @items = items
      end

      def [](keys)
        keys.split(",").each do |key|
          best_selector = nil
          best_score = 0

          @items.keys.each do |selector|
            score = score_manager.score(selector, key)
            if score > best_score
              best_score, best_selector = score, selector
            end
          end

          return @items[best_selector] if best_selector
        end

        nil
      end

      private

      # @return [Textpow::ScoreManager]
      def score_manager
        @score_manager ||= Textpow::ScoreManager.new
      end

    end # ItemsLookup

  end # Readers

end # Coloration

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coloration-0.4.0 lib/coloration/support/items_lookup.rb