.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.
giltmakes 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::WOMENOr 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 whileWith 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 clientAfter 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.