Sha256: 0821ed6c8be0e46fef0781d4a02bfd13943a1be201e0441ea23996b6e0e569af

Contents?: true

Size: 1.06 KB

Versions: 29

Compression:

Stored size: 1.06 KB

Contents

module Picky

  module Tokenizers

    class Location < Picky::Tokenizer # TODO Still needed?

      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.exact[:location_minimum] = minimum
      end

    end

  end

end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
picky-3.6.16 lib/picky/tokenizers/location.rb
picky-3.6.15 lib/picky/tokenizers/location.rb
picky-3.6.14 lib/picky/tokenizers/location.rb
picky-3.6.13 lib/picky/tokenizers/location.rb
picky-3.6.12 lib/picky/tokenizers/location.rb
picky-3.6.11 lib/picky/tokenizers/location.rb
picky-3.6.10 lib/picky/tokenizers/location.rb
picky-3.6.9 lib/picky/tokenizers/location.rb
picky-3.6.8 lib/picky/tokenizers/location.rb
picky-3.6.7 lib/picky/tokenizers/location.rb
picky-3.6.6 lib/picky/tokenizers/location.rb
picky-3.6.4 lib/picky/tokenizers/location.rb
picky-3.6.3 lib/picky/tokenizers/location.rb
picky-3.6.2 lib/picky/tokenizers/location.rb
picky-3.6.1 lib/picky/tokenizers/location.rb
picky-3.6.0 lib/picky/tokenizers/location.rb
picky-3.5.4 lib/picky/tokenizers/location.rb
picky-3.5.3 lib/picky/tokenizers/location.rb
picky-3.5.2 lib/picky/tokenizers/location.rb
picky-3.5.1 lib/picky/tokenizers/location.rb