Sha256: 432ba17a0c516a3b98429c6278fe99c98cfa84aedf29cb99bd5465d149faebd8

Contents?: true

Size: 1.74 KB

Versions: 16

Compression:

Stored size: 1.74 KB

Contents

module Picky

    module Wrappers

      module Bundle

        # A location calculation recalculates a location to the Picky internal location.
        #
        class Location < Calculation

          def initialize bundle, options = {}
            super bundle

            user_grid  = options[:grid]      || raise("Gridsize needs to be given for location #{bundle.identifier}.")
            anchor     = options[:anchor]    || 0.0
            precision  = options[:precision] || 1

            @calculation = Calculations::Location.new user_grid, anchor, precision
          end

          #
          #
          def calculate float
            @calculation.calculate float
          end

          # Recalculates the added location.
          #
          def add id, location, where = :unshift
            @calculation.calculated_range(location.to_s.to_f).each do |new_location|
              bundle.add id, new_location.to_s, where
            end
          end

          # Do not generate a partial.
          #
          def add_partialized does_not, matter, at_all
            # Nothing
          end

          # Save the config, then dump normally.
          #
          def dump
            bundle[:location_anchor] = @calculation.anchor

            bundle.dump
          end

          # Load first the bundle, then extract the config.
          #
          def load
            bundle.load

            # TODO Symbols (of the location_anchor!!!).
            #      It should always be a Symbol.
            #
            @calculation.anchor = bundle['location_anchor'] && bundle['location_anchor'].to_f || raise("Configuration 'location_anchor' for #{bundle.identifier} missing. Did you run rake index already?")
          end

        end

      end

  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
picky-3.6.16 lib/picky/wrappers/bundle/location.rb
picky-3.6.15 lib/picky/wrappers/bundle/location.rb
picky-3.6.14 lib/picky/wrappers/bundle/location.rb
picky-3.6.13 lib/picky/wrappers/bundle/location.rb
picky-3.6.12 lib/picky/wrappers/bundle/location.rb
picky-3.6.11 lib/picky/wrappers/bundle/location.rb
picky-3.6.10 lib/picky/wrappers/bundle/location.rb
picky-3.6.9 lib/picky/wrappers/bundle/location.rb
picky-3.6.8 lib/picky/wrappers/bundle/location.rb
picky-3.6.7 lib/picky/wrappers/bundle/location.rb
picky-3.6.6 lib/picky/wrappers/bundle/location.rb
picky-3.6.4 lib/picky/wrappers/bundle/location.rb
picky-3.6.3 lib/picky/wrappers/bundle/location.rb
picky-3.6.2 lib/picky/wrappers/bundle/location.rb
picky-3.6.1 lib/picky/wrappers/bundle/location.rb
picky-3.6.0 lib/picky/wrappers/bundle/location.rb