Sha256: 43379b412055287cdbaf32d11a81a77b5b14d9840661e1b680a15ec413ebd911

Contents?: true

Size: 974 Bytes

Versions: 1

Compression:

Stored size: 974 Bytes

Contents

module Tokenizers

  class Location < Base

    attr_reader :calculation

    def initialize options = {}
      super options

      grid      = options[:grid]
      precision = options[:precision] || 1

      @calculation = Calculations::Location.new grid, precision

      @minimum = 1.0 / 0

      @locations = []
    end

    #
    #
    def tokenize text

      # Gather min/max.
      #
      source.harvest category do |indexed_id, location|
        location = location.to_f
        minimum = location if location < minimum
        locations << [indexed_id, location]
      end

      calculation.minimum = minimum

      # Recalculate locations.
      #
      locations.each do |indexed_id, location|
        calculation.recalculated_range(location).each do |new_location|
          yield indexed_id, new_location.to_s
        end
      end

      # TODO Move to the right place.
      #
      category.indexing_exact[:location_minimum] = minimum
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
picky-2.7.0 lib/picky/tokenizers/location.rb