Sha256: 24beda01e249ad6496fd7f12a6d097e7be9b6f9881171b8f052308a9364cb4a0

Contents?: true

Size: 1.19 KB

Versions: 8

Compression:

Stored size: 1.19 KB

Contents

module Picky

  module Wrappers

    module Sources

      # Should this actually just be a tokenizer?
      #
      class Location < Base

        attr_reader :calculation

        def initialize source, grid, precision = 1
          super source
          @calculation = Calculations::Location.new grid, precision
        end

        # Yield the data (id, text for id) for the given category.
        #
        def harvest category
          minimum = 1.0/0

          # Cache.
          #
          locations = []

          # 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

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
picky-3.4.3 lib/picky/wrappers/sources/location.rb
picky-3.4.2 lib/picky/wrappers/sources/location.rb
picky-3.4.1 lib/picky/wrappers/sources/location.rb
picky-3.4.0 lib/picky/wrappers/sources/location.rb
picky-3.3.3 lib/picky/wrappers/sources/location.rb
picky-3.3.2 lib/picky/wrappers/sources/location.rb
picky-3.3.1 lib/picky/wrappers/sources/location.rb
picky-3.3.0 lib/picky/wrappers/sources/location.rb