Ruby gem for working with Geckoboard's Push API.
Features:
- Uses Faraday gem for HTTP. You can easily swapout adapters
- Designed for use with non-blocking requests (EventMachine)
- Allows for multiple widget keys per widget object. Useful for updating widgets on multiple dashboards at once
Installation
Add this line to your application's Gemfile:
gem 'gecko'
Recommended for use with Eventmachine. Add these to your Gemfile
gem 'eventmachine'
gem 'em-http-request'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gecko
Usage
Configuration
# Configuration
Gecko.config do |c|
# Your Geckoboard API key
c.api_key = '123456'
# block invoked by Faraday#new
# Set your http adapter here, otherwise Faraday.default_adapter is used
c.http_builder { |builder|
# use EventMachine Http adapter for non-blocking updates
builder.adapter :em_http
}
end
Update Widgets
# Update widget
text_widget = Gecko::Widget::Text.new("1234-widget-key")
text_widget.add("some info")
text_widget.add("this is the text", :alert)
text_widget.update { |success, result, widget_key|
puts success ? "Updated" : "Error updating #{widget_key}: #{result.error}"
}
# Update widget using #config!
text_widget = Gecko::Widget::Text.new("1234-widget-key").on_update do |success, result, widget_key|
# this block is executed on every update
puts success ? "Updated" : "Error updating #{widget_key}: #{result.error}"
end
text_widget.config! do |widget|
text_widget.add("some info")
text_widget.add("this is the text", :alert)
end
# Update multiple widgets at once - useful for same widget on various dashboards
text_widget = Gecko::Widget::Text.new("1234-widget-key", "1234-second-widget-key").on_update do |success, result, widget_key|
# this block is executed TWICE every update since there are two widgets being updated
puts success ? "Updated" : "Error updating #{widget_key}: #{result.error}"
end
text_widget.config! do |widget|
text_widget.add("some info")
text_widget.add("this is the text", :alert)
end
Reset widget values
widget = Gecko::Widget::Text.new("1234-abcdefg")
# reset clear out previous items
widget.reset.config! do |w|
widget.add("text alert", :alert)
end
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request