Sha256: bd174fa40df13fd9be8b6c740ed63e443aca0fbc515a551740aa4b22b6af947d
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
module Heft class Key attr_reader :id, :type def initialize(opts={}) @id = opts[:id] || fail("You must supply :id") @type = opts[:type] || fail("You must supply :type") end end class DataItem attr_reader :key, :value def initialize(opts={}) @key = opts[:key] || fail("You must supply :key") @value = opts[:value] || fail("You must supply :value") end end class Data # http://docs.hoi.io/data/overview/api/data-api class << self def save(item) reply = hoist.post( :uri => earl(item.key), :body => item.value ) fail "Failed to save item. #{reply.body}" if reply.code > 299 end def get(key) reply = hoist.get :uri => earl(key) return nil if reply.code === 404 fail "Failed to fetch item with key <#{key}>. #{reply.body}" if reply.code > 299 JSON.parse reply.body end def delete(key) reply = hoist.delete :uri => earl(key) fail "Failed delete item with key <#{key}>. #{reply.body}" if reply.code > 299 end private def earl(key) "https://data.hoi.io/#{URI.escape(key.type)}/#{URI.escape(key.id)}" end def hoist Heft::Internal::HoistConnection.new :internet => internet, :api_key => ENV['APIKEY'] end def internet Adapters::Internet.new end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
heft-0.0.2 | lib/heft/data.rb |