Gecko
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
= Gecko::Widget::Text.new("1234-widget-key")
.add("some info")
.add("this is the text", :alert)
.update { |success, result, |
puts success ? "Updated" : "Error updating #{}: #{result.error}"
}
# Update widget using #config!
= Gecko::Widget::Text.new("1234-widget-key").on_update do |success, result, |
# this block is executed on every update
puts success ? "Updated" : "Error updating #{}: #{result.error}"
end
.config! do ||
.add("some info")
.add("this is the text", :alert)
end
# Update multiple widgets at once - useful for same widget on various dashboards
= Gecko::Widget::Text.new("1234-widget-key", "1234-second-widget-key").on_update do |success, result, |
# this block is executed TWICE every update since there are two widgets being updated
puts success ? "Updated" : "Error updating #{}: #{result.error}"
end
.config! do ||
.add("some info")
.add("this is the text", :alert)
end
Reset widget values
= Gecko::Widget::Text.new("1234-abcdefg")
# reset clear out previous items
.reset.config! do |w|
.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