API for generating custom highchart images to be embedded in emails.
Ruby JavaScript Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
db
doc
lib
public
script
spec
test
.buildpacks
.gitignore
.rspec
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
config.ru

README.md

highcharts-image-api

Rails API for generating highchart charts on the server side. Useful for embedding highcharts into emails or anywhere else where javascript is not an option. Leverages the highchart-convert.js script as outlined developed here.

Requires ruby 1.9.3 and phantomjs.

Getting Started Locally

Clone the project

git clone git://github.com/kbaum/highchart-image-api.git

Install gems

cd highchart-image-api
gem install bundler
bundle

Install phantomjs

gem install brew
brew install phantomjs

Start up the server

rails server

Generate a chart using curl

HIGHCHART_OBJECT=`cat ./spec/fixtures/input.json`
curl -X POST -d "input=$HIGHCHART_OBJECT" http://localhost:3000/chart_images -o ./chart.png

Or optionally with width:

curl -X POST -d "input=$HIGHCHART_OBJECT&width=900" http://localhost:3000/chart_images -o ./chart.png

Deploying to Heroku

This project is made to deploy to heroku. It is using the heroku-buildingpack-multi depending including both phantomjs and ruby. Just create a new project within heroku and push it like you know how.

Calling API from ruby

Using httparty:

require 'httparty'

chart_object_js = File.read('spec/fixtures/input.json')
response = HTTParty.post('http://localhost:3000/chart_images', body: {input: chart_object_js, width:550})
File.open('./chart.png', 'wb'){ |file| file << response.body }

Where chart_object_js is a string value that can be passed into the Highcharts.Chart constructor.