Sha256: 133fff639c024ba72e783e029da74e4b012c0940f96432493cb209141a581232

Contents?: true

Size: 1.57 KB

Versions: 9

Compression:

Stored size: 1.57 KB

Contents

module SpatialExtensions
  private

  def abstract_refresh_geometry_action(models)
    Array.wrap(models).each do |model|
      model.failed_feature_update_jobs.destroy_all
      model.delay_update_features!
    end
  end

  def abstract_proximity_action(scope, target, distance, &block)
    @nearby_records = scope_for_search(scope).within_buffer(target, distance, :distance => true, :intersection_area => true).order('distance_in_meters ASC, intersection_area_in_square_meters DESC, id ASC')
    @target = target

    if block_given?
      block.call(@nearby_records)
    else
      respond_to do |format|
        format.html { render :template => 'shared/spatial/feature_proximity', :layout => false }
        format.kml { render :template => 'shared/spatial/feature_proximity' }
      end
    end
  end

  def abstract_venn_polygons_action(scope, target, &block)
    @venn_polygons = SpatialFeatures.venn_polygons(scope_for_search(scope).intersecting(target), target.class.where(:id => target), :target => target)
    @klass = klass_for_search(scope)
    @target = target

    if block_given?
      block.call(@venn_polygons)
    else
      respond_to do |format|
        format.kml { render :template => 'shared/spatial/feature_venn_polygons' }
      end
    end
  end

  def klass_for_search(scope_or_class)
    scope_or_class.is_a?(ActiveRecord::Relation) ? scope_or_class.klass : scope_or_class
  end

  def scope_for_search(scope)
    if params.key?(:ids)
      ids = params[:ids]
      ids = ids.split(/\D/) if ids.is_a?(String)
      scope.where(:id => ids)
    else
      scope
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spatial_features-3.4.2 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.4.1 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.4.0 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.3.0 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.2.0 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.1.0 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.0.2 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.0.1 lib/spatial_features/controller_helpers/spatial_extensions.rb
spatial_features-3.0.0 lib/spatial_features/controller_helpers/spatial_extensions.rb