benschwarz-flickr-rest 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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