Mappable provides geo distance-based filters and distance calculation functionality for model.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec use jeweler for gem management Aug 31, 2010
.document
.gitignore
LICENSE
README.rdoc
Rakefile
VERSION
sequel_mappable.gemspec

README.rdoc

About

Mappable provides geo distance-based filters and distance calculation functionality for model. It requires the geokit gem and was heavily inspired by the geokit-rails gem.

Install

Simply install it as any other gem:

gem install sequel_mappable

Or when using bundler, add it got your Gemfile:

gem sequel_mappable

This should also install the geokit gem.

Quick Start

In your model:

class User < Sequel::Model
  plugin :mappable
end

In your migrations:

class AddGeoDataToUser < Sequel::Migration
  def up
    alter_table :users do
      add_column :lng, Float
      add_column :lat, Float
    end
  end

  def down
    alter_table :users do
      drop_column :lng
      drop_column :lat
    end
  end
end

Now add some records with valid geo data.

In your controller you can then do:

def index
  users_near_to_me = User.f_origin(User[1], 10)
end

Filters

Please have a look at the source to get a full list of all available functionality.

Todo

  • Source documentation (rdoc)

  • Source cleanup (no hardcoding of column names)

  • Better support for :km, :miles, :sphere, :flat, etc.

  • Tests

Contributing

If you'd like to contribute a feature or bugfix: Thanks! To make sure your fix/feature has a high chance of being included, please read the following guidelines:

  1. Fork the project.

  2. Make your feature addition or bug fix.

  3. Add tests for it. This is important so we don’t break anything in a future version unintentionally.

  4. Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  5. Send me a pull request. Bonus points for topic branches.