Awesome
.oooooo. ooooo ooooo ooooooooooooo
d8P' `Y8b `888' `888' 8' 888 `8
888 888 888 888
888 888 888 888
888 ooooo 888 888 888
`88. .88' 888 888 o 888
`Y8bood8P' o888o o888ooood8 o888o
gilt
is a Ruby library for v1 of the Gilt Public API.
It's written with the Weary framework, so it gets the features of that library out of the box, like:
- Full Rack integration. The Client to the library is a Rack application.
- Fully asynchronous.
gilt
makes liberal use of futures and Weary::Deferred.
Examples
active_sales = Gilt::Sale.active :apikey => "your-api-key"
womens_sales = sales.select {|sale| sale.store == Gilt::Stores::WOMEN }
sales.first.products.map(&:name)
Above, the call to sales.products
returns a list of Weary::Deferred objects wrapping Gilt::Product objects. This means that fetching the product is asynchronous, and only blocks when accessed.
Get a list of active Sales:
Gilt::Sale.active :apikey => "your-api-key", :affid => "your-affiliate-id"
Get a list of active Sales in a particular store:
Gilt::Sale.active_in_store :apikey => "your-api-key", :affid => "your-affiliate-id", :store => Gilt::Stores::WOMEN
Or upcoming sales:
Gilt::Sale.upcoming :apikey => "your-api-key", :affid => "your-affiliate-id"
Get a particular sale:
Gilt::Sale.detail :apikey => "your-key", :store => Gilt::Stores::WOMEN, :sale_key => "m-missoni-5228"
Here's a fun one, for all active sales in the Women store, create a hash of Sale Name => [Product Name,...]
:
require "pp"
active_sales = Gilt::Sale.active_in_store :apikey => "my-api-key", :store => Gilt::Stores::WOMEN
pp Hash[active_sales.map {|sale| [sale.name, sale.products.map(&:name)] }] # This could take a while
With Rack
Since Gilt is built on Weary (which in turn is built on Rack), you can quickly create a proxy to the Gilt API and insert whatever middleware your heart desires.
# config.ru
client = Gilt::Client::Product
client.use Rack::Runtime
run client
After rackup
:
curl "http://localhost:9292/sales/active.json?apikey=my-api-key"
Installation
gem install gilt
Copyright
Copyright (c) 2012 Mark Wunsch. Licensed under the MIT License.