benschwarz-flickr-rest 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -10,9 +10,14 @@ If you want a flickr api wrapper, use the flickr gem.
10
10
 
11
11
  require 'flickr-rest'
12
12
  Flickr::Query::CONFIG_PATH = '/path/to/flickr.yml'
13
- flickr = Flickr::Query.new
13
+ flickr = Flickr::Query.new('flickr.test.echo')
14
14
 
15
- flickr.request('flickr.test.echo')
15
+ # Raw JSON response (String)
16
+ flickr.raw
17
+ => '{"api_key":{"_content":"2b60171843b346aa104e3a38d0129e5e"}, "format":{"_content":"json"}, "nojsoncallback":{"_content":"1"}, "method":{"_content":"flickr.test.echo"}, "stat":"ok"}'
16
18
 
19
+ # A clean, tidy ruby object
20
+ flickr.parsed
21
+ => {:api_key=>"2b60171843b346aa104e3a38d0129e5e", :format=>"json", :method=>"flickr.test.echo", :nojsoncallback=>"1"}
17
22
 
18
23
 
data/flickr-rest.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "flickr-rest"
3
- s.version = "0.2.2"
3
+ s.version = "0.2.3"
4
4
  s.date = "2008-11-17"
5
5
  s.summary = "A light interface to call flickr 'restful' api methods"
6
6
  s.email = "ben@germanforblack.com"
data/lib/flickr-rest.rb CHANGED
@@ -4,34 +4,41 @@ require 'open-uri'
4
4
 
5
5
  module Flickr
6
6
  class Query
7
- VERSION = "0.2.2".freeze
7
+ VERSION = "0.2.3".freeze
8
8
  API_BASE = "http://api.flickr.com/services/rest/".freeze
9
9
 
10
+ attr_reader :raw
11
+
10
12
  class Failure < StandardError; end
11
13
 
12
14
  # @param api_method eg: flickr.test.echo
13
15
  # @param params={} eg: :photo_id => 2929112139
14
- def initialize
16
+ def initialize(method, params={})
15
17
  @@config ||= YAML::load(File.open(CONFIG_PATH))
18
+ @method, @params = method, params
19
+ request
16
20
  rescue NameError
17
21
  raise Failure, "set your flickr API key and shared secret with a YAML file and point it to Flickr::Query.CONFIG_PATH = 'my-config.yml'"
18
22
  end
19
-
20
- def request(api_method, params = {})
21
- response = JSON.parse(open(build_query(api_method, params)).read)
22
- raise Failure, response["message"] if response.delete("stat") == "fail"
23
- r = mash(response)
24
- unnest(r)
23
+
24
+ def parsed
25
+ json = JSON.parse(@raw)
26
+ raise Failure, json["message"] if json.delete("stat") == "fail"
27
+ return unnest(mash(json))
25
28
  end
26
29
 
27
30
  private
28
- def build_query(method, params={})
31
+ def request
32
+ @raw = open(build_query).read
33
+ end
34
+
35
+ def build_query
29
36
  url = []
30
37
  opts = {
31
- :method => method,
38
+ :method => @method,
32
39
  :nojsoncallback => 1,
33
40
  :format => "json"
34
- }.merge(params).merge(@@config).each do |key, value|
41
+ }.merge(@params).merge(@@config).each do |key, value|
35
42
  url << "#{key}=#{value}" unless value.nil?
36
43
  end
37
44
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benschwarz-flickr-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Schwarz