Sha256: 0fd552529e22a35f5e078d3b1a56ce178bb25aa5c14b318f9dc9932fcef7cf87
Contents?: true
Size: 1.01 KB
Versions: 9
Compression:
Stored size: 1.01 KB
Contents
# encoding: utf-8 require 'net/http' require 'json' module Slideoff class FlickrAPIException < Exception def initialize(code, message) @code = code @message = message end def self.from_json(json) new(json['code'], json['message']) end def to_s "#{@message} [Code: #{@code}]" end end class FlickrAPI ENDPOINT = "https://api.flickr.com/services/rest/" DEFAULT_PARAMS = { :api_key => CONFIG.flickr_api_key, :format => :json, :nojsoncallback => 1 } def initialize(params = {}) raise "Please specify your Flickr API key in presentation.json" unless CONFIG.flickr_api_key @params = params end def uri _uri = URI(ENDPOINT) _uri.query = URI.encode_www_form(DEFAULT_PARAMS.merge(@params)) _uri end def json @json ||= begin _json = JSON.parse(Net::HTTP.get(uri)) raise FlickrAPIException.from_json(_json) unless _json['stat'] == 'ok' _json end end end end
Version data entries
9 entries across 9 versions & 1 rubygems