Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nbulaj/mapbox-gl-rails
A gem to provide Mapbox GL JS and it's ecosystem (plugins) for Rails applications :train2:
https://github.com/nbulaj/mapbox-gl-rails
assets-pipeline mapbox-gl-js mapboxgl rails ruby-on-rails
Last synced: 6 days ago
JSON representation
A gem to provide Mapbox GL JS and it's ecosystem (plugins) for Rails applications :train2:
- Host: GitHub
- URL: https://github.com/nbulaj/mapbox-gl-rails
- Owner: nbulaj
- License: mit
- Created: 2018-01-19T08:10:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-14T08:20:32.000Z (about 1 month ago)
- Last Synced: 2024-11-07T19:01:52.609Z (13 days ago)
- Topics: assets-pipeline, mapbox-gl-js, mapboxgl, rails, ruby-on-rails
- Language: JavaScript
- Homepage:
- Size: 32.8 MB
- Stars: 36
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mapbox for Rails
[![Gem Version](https://badge.fury.io/rb/mapbox-gl-rails.svg)](http://badge.fury.io/rb/mapbox-gl-rails)
[![Build Status](https://travis-ci.org/nbulaj/mapbox-gl-rails.svg?branch=master)](https://travis-ci.org/nbulaj/mapbox-gl-rails)
[![License](http://img.shields.io/badge/license-MIT-brightgreen.svg)](#license)`mapbox-gl-rails` provides the [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) library as a Rails engine for
use with the asset pipeline. It uses the same versioning as the Mapbox GL JS.Supports Rails >= 3.2 (see [Travis build matrix]((.travis.yml))).
## Installation
Add this to your Gemfile:
```ruby
gem 'mapbox-gl-rails'
```and run `bundle install`.
## Usage
In your `application.js`, include the following:
```js
//
//*= require mapbox-gl
//= require_tree .
```In your `application.css`, include the css file:
```css
/*
*= require mapbox-gl
*/
```Then restart your webserver if it was previously running.
Congrats! You now have Mapbox GL JS on board and check out the
[Mapbox Examples](https://www.mapbox.com/mapbox-gl-js/examples).If you need to use any available plugins, then don't forget to add them to `application.js` and `application.css`:
JS:
```js
//*= require mapbox-gl-geocoder
// ...
````CSS:
```css
/*
*= require mapbox-gl-geocoder
*= require mapbox-gl-draw
*= require mapbox-gl-directions
*= require mapbox-gl-compare
...
*/
```Full list of integrated plugins you could find [here](https://github.com/nbulaj/mapbox-gl-rails/blob/master/plugins.yaml).
### Sass Support
If you prefer [SCSS](http://sass-lang.com/documentation/file.SASS_REFERENCE.html), add this to your
`application.css.scss` file:```scss
@import 'mapbox-gl';
```If you use the [Sass indented syntax](http://sass-lang.com/docs/yardoc/file.INDENTED_SYNTAX.html),
add this to your `application.css.sass` file:```sass
@import mapbox-gl
```## Misc
### Rails engines
When building a Rails engine that includes mapbox-gl-rails as a dependency,
be sure to `require "mapbox-gl-rails"` somewhere during the intialization of
your engine. Otherwise, Rails will not automatically pick up the load path of
the mapbox-gl-rails assets and helpers.### Deploying to sub-folders
It is sometimes the case that deploying a Rails application to a production
environment requires the application to be hosted at a sub-folder on the server.
This may be the case, for example, if Apache HTTPD or Nginx is being used as a
front-end proxy server, with Rails handling only requests that come in to a sub-folder
such as `http://example.com/myrailsapp`. In this case, the
MapboxRails gem (and other asset-serving engines) needs to know the sub-folder,
otherwise you can experience a problem roughly described as ["my app works
fine in development, but fails when I deploy
it"](https://github.com/bokmann/font-awesome-rails/issues/74).To fix this, set the *relative URL root* for the application. In the
environment file for the deployed version of the app, for example
`config/environments/production.rb`,
set the config option `action_controller.relative_url_root`:MyApp::Application.configure do
...# set the relative root, because we're deploying to /myrailsapp
config.action_controller.relative_url_root = "/myrailsapp"...
endThe default value of this variable is taken from `ENV['RAILS_RELATIVE_URL_ROOT']`,
so configuring the environment to define `RAILS_RELATIVE_URL_ROOT` is an alternative strategy.In addition you need to indicate the subfolder when you *precompile* the assets:
RAILS_ENV=production bundle exec rake assets:precompile RAILS_RELATIVE_URL_ROOT=/myrailsapp
### Rails 3.2
**Note:** In Rails 3.2, make sure mapbox-gl-rails is outside the bundler asset group
so that these helpers are automatically loaded in production environments.## Versioning
Versioning follows the core releases of Mapbox GL JS which follows Semantic
Versioning 2.0 as defined at . We will do our best not to
make any breaking changes until Mapbox core makes a major version bump.Additional build number can be added to fix internal gem errors (like 0.43.0.**0**).
## Releasing
1. Update gem version in `lib/mapbox-gl/rails/version.rb` to match latest MapBox GL version.
2. Run `bundle exec rake update` (this will automatically load and convert assets).
3. Commit
4. Create gem and push it to Rubygems
5. Create a GitHub release.## License
* The [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) and it's components are
licensed under [their own licenses](https://github.com/mapbox/mapbox-gl-js/blob/master/LICENSE.txt).
* The remainder of the mapbox-gl-rails project is licensed under the
[MIT License](http://opensource.org/licenses/mit-license.html).