flickr-rest 0.1.1

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 ADDED
@@ -0,0 +1,23 @@
1
+ # Introduction
2
+
3
+ flickr-rest is a stab at removing all the stuff that you don't really
4
+ want to do. There are no specific photo methods, community. Nothing.
5
+
6
+ Simply use it to query the bits you want.
7
+ If you want a flickr api wrapper, use the flickr gem.
8
+
9
+ # Usage
10
+
11
+ require 'flickr-rest'
12
+
13
+ # My API key has been set as the default. Flickr probably won't like that.
14
+
15
+ Flickr::Query::API_KEY = 'your-api-key-here'
16
+ flickr = Flickr::Query.new 'your-user-id-here'
17
+
18
+ flickr.execute('flickr.test.echo')
19
+
20
+ => #<Hpricot::Doc{} *snip*
21
+
22
+ Then use simple Hpricot selectors to traverse through the tree.
23
+
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "flickr-rest"
3
+ s.version = "0.1.1"
4
+ s.date = "2008-11-17"
5
+ s.summary = "A light interface to call flickr 'restful' api methods"
6
+ s.email = "ben@germanforblack.com"
7
+ s.homepage = "http://github.com/benschwarz/flickr-rest"
8
+ s.description = "A light interface to call flickr 'restful' api methods"
9
+ s.authors = ["Ben Schwarz"]
10
+ s.files = ["README.markdown", "flickr-rest.gemspec", "lib/flickr-rest.rb"]
11
+ s.require_path = "lib"
12
+
13
+ # Deps
14
+ s.add_dependency("hpricot", ">= 0.6")
15
+ end
@@ -0,0 +1,51 @@
1
+ begin
2
+ require 'minigems'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ end
6
+
7
+ require 'hpricot'
8
+ require 'open-uri'
9
+
10
+ module Flickr
11
+ class Query
12
+ VERSION = '0.1.1'
13
+ API_BASE = "http://api.flickr.com/services/rest/"
14
+
15
+ class Failure < StandardError; end
16
+ class ApiKeyRequired < StandardError; end
17
+
18
+ # @param user_id - Your flickr user id
19
+ def initialize(user_id)
20
+ @user_id = user_id
21
+ end
22
+
23
+ # @param api_method eg: flickr.test.echo
24
+ # @param params={} eg: :photo_id => 2929112139
25
+ def execute(api_method, params={})
26
+ raise ApiKeyRequired, "set your flickr API key using Flickr::Query.API_KEY = ''" if API_KEY.nil?
27
+
28
+ dispatch(build_query(api_method, params))
29
+ end
30
+
31
+ private
32
+ def dispatch(query)
33
+ response = Hpricot.XML(open(query).read)
34
+ raise Failure, response.at(:err)['msg'] unless response.search(:err).empty?
35
+ return response
36
+ end
37
+
38
+ def build_query(method, params={})
39
+ url = []
40
+ opts = {
41
+ :method => method,
42
+ :api_key => API_KEY,
43
+ :user_id => @user_id
44
+ }.merge(params).each do |key, value|
45
+ url << "#{key}=#{value}" unless value.nil?
46
+ end
47
+
48
+ return API_BASE + "?" + url.join("&")
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flickr-rest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Ben Schwarz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-11-17 00:00:00 +11:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hpricot
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.6"
24
+ version:
25
+ description: A light interface to call flickr 'restful' api methods
26
+ email: ben@germanforblack.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - README.markdown
35
+ - flickr-rest.gemspec
36
+ - lib/flickr-rest.rb
37
+ has_rdoc: false
38
+ homepage: http://github.com/benschwarz/flickr-rest
39
+ post_install_message:
40
+ rdoc_options: []
41
+
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ version:
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ requirements: []
57
+
58
+ rubyforge_project:
59
+ rubygems_version: 1.3.1
60
+ signing_key:
61
+ specification_version: 2
62
+ summary: A light interface to call flickr 'restful' api methods
63
+ test_files: []
64
+