fotonauts-flickr_fu 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.gitignore +13 -0
  2. data/LICENSE +22 -0
  3. data/README +147 -0
  4. data/Rakefile +73 -0
  5. data/VERSION.yml +4 -0
  6. data/flickr_fu.gemspec +117 -0
  7. data/lib/flickr/auth.rb +76 -0
  8. data/lib/flickr/base.rb +151 -0
  9. data/lib/flickr/comment.rb +16 -0
  10. data/lib/flickr/contact.rb +16 -0
  11. data/lib/flickr/contacts.rb +55 -0
  12. data/lib/flickr/errors.rb +20 -0
  13. data/lib/flickr/geo.rb +42 -0
  14. data/lib/flickr/license.rb +24 -0
  15. data/lib/flickr/location.rb +15 -0
  16. data/lib/flickr/note.rb +16 -0
  17. data/lib/flickr/people.rb +54 -0
  18. data/lib/flickr/person.rb +82 -0
  19. data/lib/flickr/photo.rb +321 -0
  20. data/lib/flickr/photo_response.rb +37 -0
  21. data/lib/flickr/photos.rb +252 -0
  22. data/lib/flickr/photoset.rb +37 -0
  23. data/lib/flickr/photosets.rb +39 -0
  24. data/lib/flickr/size.rb +16 -0
  25. data/lib/flickr/status.rb +19 -0
  26. data/lib/flickr/test.rb +31 -0
  27. data/lib/flickr/token.rb +22 -0
  28. data/lib/flickr/uploader.rb +162 -0
  29. data/lib/flickr/urls.rb +44 -0
  30. data/lib/flickr_fu.rb +48 -0
  31. data/spec/fixtures/flickr/contacts/get_list-fail-99.xml +4 -0
  32. data/spec/fixtures/flickr/contacts/get_public_list-0.xml +7 -0
  33. data/spec/fixtures/flickr/photos/geo/get_location-0.xml +11 -0
  34. data/spec/fixtures/flickr/photos/geo/get_location-fail-2.xml +4 -0
  35. data/spec/fixtures/flickr/photos/get_info-0.xml +41 -0
  36. data/spec/fixtures/flickr/photos/get_info-1.xml +19 -0
  37. data/spec/fixtures/flickr/photos/get_sizes-0.xml +10 -0
  38. data/spec/fixtures/flickr/photos/get_sizes-1.xml +8 -0
  39. data/spec/fixtures/flickr/photos/licenses/get_info.xml +12 -0
  40. data/spec/fixtures/flickr/photosets/get_list-0.xml +13 -0
  41. data/spec/fixtures/flickr/photosets/get_photos-0.xml +7 -0
  42. data/spec/fixtures/flickr/test/echo-0.xml +5 -0
  43. data/spec/fixtures/flickr/test/null-fail-99.xml +4 -0
  44. data/spec/fixtures/flickr/urls/get_group-0.xml +4 -0
  45. data/spec/fixtures/flickr/urls/get_group-fail-1.xml +4 -0
  46. data/spec/fixtures/flickr/urls/get_user_photos-0.xml +4 -0
  47. data/spec/fixtures/flickr/urls/get_user_photos-fail-1.xml +4 -0
  48. data/spec/fixtures/flickr/urls/get_user_photos-fail-2.xml +4 -0
  49. data/spec/fixtures/flickr/urls/get_user_profile-0.xml +4 -0
  50. data/spec/fixtures/flickr/urls/get_user_profile-fail-1.xml +4 -0
  51. data/spec/fixtures/flickr/urls/get_user_profile-fail-2.xml +4 -0
  52. data/spec/fixtures/flickr/urls/lookup_group-0.xml +6 -0
  53. data/spec/fixtures/flickr/urls/lookup_group-fail-1.xml +4 -0
  54. data/spec/fixtures/flickr/urls/lookup_user-0.xml +6 -0
  55. data/spec/fixtures/flickr/videos/get_info-0.xml +31 -0
  56. data/spec/fixtures/flickr/videos/get_sizes-0.xml +13 -0
  57. data/spec/flickr/base_spec.rb +97 -0
  58. data/spec/flickr/contacts_spec.rb +47 -0
  59. data/spec/flickr/errors_spec.rb +21 -0
  60. data/spec/flickr/geo_spec.rb +20 -0
  61. data/spec/flickr/photo_spec.rb +140 -0
  62. data/spec/flickr/photos_spec.rb +50 -0
  63. data/spec/flickr/photosets_spec.rb +49 -0
  64. data/spec/flickr/test_spec.rb +34 -0
  65. data/spec/flickr/urls_spec.rb +99 -0
  66. data/spec/spec.opts +4 -0
  67. data/spec/spec_helper.rb +20 -0
  68. metadata +176 -0
@@ -0,0 +1,50 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Flickr::Photos do
4
+
5
+ before :each do
6
+ @flickr = SpecHelper.flickr
7
+ end
8
+
9
+ describe ".licenses" do
10
+ before :all do
11
+ @licenses_xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/photos/licenses/get_info.xml")
12
+ @valid_licenses = {
13
+ 0 => Flickr::Photos::License.new(:id => 0, :name => "All Rights Reserved", :url => ""),
14
+ 4 => Flickr::Photos::License.new(:id => 4, :name => "Attribution License", :url => "http://creativecommons.org/licenses/by/2.0/"),
15
+ 6 => Flickr::Photos::License.new(:id => 6, :name => "Attribution-NoDerivs License", :url => "http://creativecommons.org/licenses/by-nd/2.0/"),
16
+ 3 => Flickr::Photos::License.new(:id => 3, :name => "Attribution-NonCommercial-NoDerivs License", :url => "http://creativecommons.org/licenses/by-nc-nd/2.0/"),
17
+ 2 => Flickr::Photos::License.new(:id => 2, :name => "Attribution-NonCommercial License", :url => "http://creativecommons.org/licenses/by-nc/2.0/"),
18
+ 1 => Flickr::Photos::License.new(:id => 1, :name => "Attribution-NonCommercial-ShareAlike License", :url => "http://creativecommons.org/licenses/by-nc-sa/2.0/"),
19
+ 5 => Flickr::Photos::License.new(:id => 5, :name => "Attribution-ShareAlike License", :url => "http://creativecommons.org/licenses/by-sa/2.0/")
20
+ }
21
+ end
22
+
23
+ it "should return all valid licenses" do
24
+ @flickr.should_receive(:request_over_http).and_return(@licenses_xml)
25
+ @flickr.photos.licenses.should == @valid_licenses
26
+ end
27
+
28
+ it "should not not call Flickr API more than once" do
29
+ @flickr.should_receive(:request_over_http).once.and_return(@licenses_xml)
30
+ @flickr.photos.licenses
31
+ @flickr.photos.licenses
32
+ end
33
+ end
34
+
35
+ describe ".find_by_id" do
36
+ it "should return a photo when a valid id is given" do
37
+ photo_id = 2984637736
38
+ #photo_upload_date = 1225297614
39
+ info_xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/photos/get_info-0.xml")
40
+ @flickr.should_receive(:request_over_http).and_return(info_xml)
41
+
42
+ photo = @flickr.photos.find_by_id(photo_id)
43
+ photo.id.should == photo_id
44
+ end
45
+
46
+ it "should raise an error when no id is given"
47
+
48
+ it "should raise an error when the photo does not exist"
49
+ end
50
+ end
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Flickr::Photosets do
4
+ before :all do
5
+ @get_list_xml = File.read(File.dirname(__FILE__) +
6
+ "/../fixtures/flickr/photosets/get_list-0.xml")
7
+ @get_photos_xml = File.read(File.dirname(__FILE__) +
8
+ "/../fixtures/flickr/photosets/get_photos-0.xml")
9
+ end
10
+
11
+ before :each do
12
+ @flickr = SpecHelper.flickr
13
+ end
14
+
15
+
16
+ describe ".get_list" do
17
+ it "should call flickr.photosets.getList" do
18
+ @flickr.should_receive(:send_request).with("flickr.photosets.getList", {})
19
+ @flickr.photosets.get_list
20
+ end
21
+
22
+ it "should return an array of photoset objects" do
23
+ @flickr.stub!(:request_over_http).and_return(@get_list_xml)
24
+ photosets = @flickr.photosets.get_list
25
+
26
+ photosets[0].should be_an_instance_of(Flickr::Photosets::Photoset)
27
+ photosets[0].title.should == 'Test'
28
+ end
29
+ end
30
+
31
+ describe ".get_photos" do
32
+ before :each do
33
+ @photoset = Flickr::Photosets::Photoset.new(@flickr,{:id=>4})
34
+ end
35
+
36
+ it "should call flickr.photosets.getPhotos" do
37
+ @flickr.should_receive(:send_request).with("flickr.photosets.getPhotos",{:photoset_id=>4})
38
+ @photoset.get_photos
39
+ end
40
+
41
+ it "should return an array of photo objects" do
42
+ @flickr.stub!(:request_over_http).and_return(@get_photos_xml)
43
+ photos = @photoset.get_photos
44
+
45
+ photos.should_not be_nil
46
+ photos[0].should be_an_instance_of(Flickr::Photos::Photo)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Flickr::Test do
4
+
5
+ # Before all should be sufficient here. If not it should be safe to change it to
6
+ # before :each
7
+ before :all do
8
+ @flickr = SpecHelper.flickr
9
+ end
10
+
11
+ describe ".echo" do
12
+ it "should return all parameters back in the response" do
13
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/test/echo-0.xml")
14
+ @flickr.should_receive(:request_over_http).and_return(xml)
15
+ actual = @flickr.test.echo("foo" => "bar")
16
+ actual.strip_api_params!
17
+ actual.should == {:method => "flickr.test.echo", "foo" => "bar"}
18
+ end
19
+ end
20
+
21
+ # FIXME Hm... we should have a better way of testing if a user is authenticated or not after all
22
+ describe ".null" do
23
+ it "should fail if not authenticated with read permissions" do
24
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/test/null-fail-99.xml")
25
+ @flickr.should_receive(:request_over_http).and_return(xml)
26
+ lambda { @flickr.test.null }.should raise_error(Flickr::Error, /^99:/)
27
+ end
28
+
29
+ it "should return true unless there is an error" do
30
+ @flickr.should_receive(:request_over_http).and_return("")
31
+ @flickr.test.null.should == true
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,99 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Flickr::Urls do
4
+ before :all do
5
+ @flickr = SpecHelper.flickr
6
+ end
7
+
8
+
9
+ describe ".get_group" do
10
+ it "should return the url to a group's page if the group_id is valid" do
11
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_group-0.xml")
12
+ @flickr.should_receive(:request_over_http).and_return(xml)
13
+ @flickr.urls.get_group("34427469792@N01").should == "http://www.flickr.com/groups/central/"
14
+ end
15
+
16
+ it "should raise an error if the group_id is not valid (Group not found error raised)" do
17
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_group-fail-1.xml")
18
+ @flickr.should_receive(:request_over_http).and_return(xml)
19
+ lambda { @flickr.urls.get_group("foo") }.should raise_error(Flickr::Error, /^1:/)
20
+ end
21
+ end
22
+
23
+ describe ".get_user_photos" do
24
+ it "should return the url to a user's photos if the user_id is valid" do
25
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_photos-0.xml")
26
+ @flickr.should_receive(:request_over_http).and_return(xml)
27
+ @flickr.urls.get_user_photos("80755658@N00").should == "http://www.flickr.com/photos/lvizard/"
28
+ end
29
+
30
+ it "should raise an error if the user_id is not valid (User not found error raised)" do
31
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_photos-fail-1.xml")
32
+ @flickr.should_receive(:request_over_http).and_return(xml)
33
+ lambda { @flickr.urls.get_user_photos("foo") }.should raise_error(Flickr::Error, /^1:/)
34
+ end
35
+
36
+ it "should raise an error if the user_id is not specified (No user specified error raised)" do
37
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_photos-fail-2.xml")
38
+ @flickr.should_receive(:request_over_http).and_return(xml)
39
+ lambda { @flickr.urls.get_user_photos(nil) }.should raise_error(Flickr::Error, /^2:/)
40
+ end
41
+ end
42
+
43
+ describe ".get_user_profile" do
44
+ it "should return the url to a user's profile if the user_id is valid" do
45
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_profile-0.xml")
46
+ @flickr.should_receive(:request_over_http).and_return(xml)
47
+ @flickr.urls.get_user_profile("80755658@N00").should == "http://www.flickr.com/people/lvizard/"
48
+ end
49
+
50
+ it "should raise an error if the user_id is not valid (User not found error raised)" do
51
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_profile-fail-1.xml")
52
+ @flickr.should_receive(:request_over_http).and_return(xml)
53
+ lambda { @flickr.urls.get_user_profile("foo") }.should raise_error(Flickr::Error, /^1:/)
54
+ end
55
+
56
+ it "should raise an error if the user_id is not specified (No user specified error raised)" do
57
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/get_user_profile-fail-2.xml")
58
+ @flickr.should_receive(:request_over_http).and_return(xml)
59
+ lambda { @flickr.urls.get_user_profile(nil) }.should raise_error(Flickr::Error, /^2:/)
60
+ end
61
+ end
62
+
63
+ describe ".lookup_group" do
64
+ it "should return a group NSID, given the url to a group's page"
65
+
66
+ it "should return a group NSID, given the url to a group's photo pool"
67
+
68
+ it "should raise an error if the group_id is not valid (Group not found error raised)"
69
+ end
70
+
71
+ describe ".lookup_user" do
72
+ it "should return a user NSID, given the url to a user's photos"
73
+
74
+ it "should return a user NSID, given the url to a user's profile"
75
+
76
+ it "should raise an error if the user_id is not valid (User not found error raised)"
77
+
78
+ it "should raise an error if the user_id is not specified (No user specified error raised)"
79
+
80
+ describe "valid return value" do
81
+ before :all do
82
+ @valid_lookup_user_xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/lookup_user-0.xml")
83
+ end
84
+
85
+
86
+ it "should be kind of a String" do
87
+ @flickr.should_receive(:request_over_http).and_return(@valid_lookup_user_xml)
88
+ @flickr.urls.lookup_user("htp://www.flickr.com/photos/lvizard").should be_kind_of String
89
+ end
90
+
91
+ it "should have a username attribute containing the user's name" do
92
+ xml = File.read(File.dirname(__FILE__) + "/../fixtures/flickr/urls/lookup_user-0.xml")
93
+ @flickr.should_receive(:request_over_http).and_return(@valid_lookup_user_xml)
94
+ @flickr.urls.lookup_user("htp://www.flickr.com/photos/lvizard").username.should == "Maciej Biłas"
95
+ end
96
+ end
97
+ end
98
+
99
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,20 @@
1
+ require 'rubygems'
2
+ gem 'rspec'
3
+ require 'spec'
4
+
5
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
6
+ require 'flickr_fu'
7
+
8
+ class SpecHelper
9
+ def self.flickr
10
+ Flickr.new(:key => "2f7bf3aceba0ca2f11f9ad46e7552459", :secret => "17b59864beb29370")
11
+ end
12
+ end
13
+
14
+ class Hash
15
+ def strip_api_params!
16
+ delete :api_sig
17
+ delete :api_key
18
+ delete :api_token
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fotonauts-flickr_fu
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 2
10
+ version: 0.3.2
11
+ platform: ruby
12
+ authors:
13
+ - Ben Wyrosdick
14
+ - Maciej Bilas
15
+ - Fotonauts
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2009-05-19 00:00:00 +00:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: mime-types
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">"
30
+ - !ruby/object:Gem::Version
31
+ hash: 31
32
+ segments:
33
+ - 0
34
+ - 0
35
+ - 0
36
+ version: 0.0.0
37
+ type: :runtime
38
+ version_requirements: *id001
39
+ - !ruby/object:Gem::Dependency
40
+ name: xml-magic
41
+ prerelease: false
42
+ requirement: &id002 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">"
46
+ - !ruby/object:Gem::Version
47
+ hash: 31
48
+ segments:
49
+ - 0
50
+ - 0
51
+ - 0
52
+ version: 0.0.0
53
+ type: :runtime
54
+ version_requirements: *id002
55
+ description: Provides a ruby interface to flickr via the REST api
56
+ email: ben@commonthread.com
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - README
63
+ files:
64
+ - .gitignore
65
+ - LICENSE
66
+ - README
67
+ - Rakefile
68
+ - VERSION.yml
69
+ - flickr_fu.gemspec
70
+ - lib/flickr/auth.rb
71
+ - lib/flickr/base.rb
72
+ - lib/flickr/comment.rb
73
+ - lib/flickr/contact.rb
74
+ - lib/flickr/contacts.rb
75
+ - lib/flickr/errors.rb
76
+ - lib/flickr/geo.rb
77
+ - lib/flickr/license.rb
78
+ - lib/flickr/location.rb
79
+ - lib/flickr/note.rb
80
+ - lib/flickr/people.rb
81
+ - lib/flickr/person.rb
82
+ - lib/flickr/photo.rb
83
+ - lib/flickr/photo_response.rb
84
+ - lib/flickr/photos.rb
85
+ - lib/flickr/photoset.rb
86
+ - lib/flickr/photosets.rb
87
+ - lib/flickr/size.rb
88
+ - lib/flickr/status.rb
89
+ - lib/flickr/test.rb
90
+ - lib/flickr/token.rb
91
+ - lib/flickr/uploader.rb
92
+ - lib/flickr/urls.rb
93
+ - lib/flickr_fu.rb
94
+ - spec/fixtures/flickr/contacts/get_list-fail-99.xml
95
+ - spec/fixtures/flickr/contacts/get_public_list-0.xml
96
+ - spec/fixtures/flickr/photos/geo/get_location-0.xml
97
+ - spec/fixtures/flickr/photos/geo/get_location-fail-2.xml
98
+ - spec/fixtures/flickr/photos/get_info-0.xml
99
+ - spec/fixtures/flickr/photos/get_info-1.xml
100
+ - spec/fixtures/flickr/photos/get_sizes-0.xml
101
+ - spec/fixtures/flickr/photos/get_sizes-1.xml
102
+ - spec/fixtures/flickr/photos/licenses/get_info.xml
103
+ - spec/fixtures/flickr/photosets/get_list-0.xml
104
+ - spec/fixtures/flickr/photosets/get_photos-0.xml
105
+ - spec/fixtures/flickr/test/echo-0.xml
106
+ - spec/fixtures/flickr/test/null-fail-99.xml
107
+ - spec/fixtures/flickr/urls/get_group-0.xml
108
+ - spec/fixtures/flickr/urls/get_group-fail-1.xml
109
+ - spec/fixtures/flickr/urls/get_user_photos-0.xml
110
+ - spec/fixtures/flickr/urls/get_user_photos-fail-1.xml
111
+ - spec/fixtures/flickr/urls/get_user_photos-fail-2.xml
112
+ - spec/fixtures/flickr/urls/get_user_profile-0.xml
113
+ - spec/fixtures/flickr/urls/get_user_profile-fail-1.xml
114
+ - spec/fixtures/flickr/urls/get_user_profile-fail-2.xml
115
+ - spec/fixtures/flickr/urls/lookup_group-0.xml
116
+ - spec/fixtures/flickr/urls/lookup_group-fail-1.xml
117
+ - spec/fixtures/flickr/urls/lookup_user-0.xml
118
+ - spec/fixtures/flickr/videos/get_info-0.xml
119
+ - spec/fixtures/flickr/videos/get_sizes-0.xml
120
+ - spec/flickr/base_spec.rb
121
+ - spec/flickr/contacts_spec.rb
122
+ - spec/flickr/errors_spec.rb
123
+ - spec/flickr/geo_spec.rb
124
+ - spec/flickr/photo_spec.rb
125
+ - spec/flickr/photos_spec.rb
126
+ - spec/flickr/photosets_spec.rb
127
+ - spec/flickr/test_spec.rb
128
+ - spec/flickr/urls_spec.rb
129
+ - spec/spec.opts
130
+ - spec/spec_helper.rb
131
+ has_rdoc: true
132
+ homepage: http://github.com/commonthread/flickr_fu
133
+ licenses: []
134
+
135
+ post_install_message:
136
+ rdoc_options:
137
+ - --main
138
+ - README
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ hash: 3
156
+ segments:
157
+ - 0
158
+ version: "0"
159
+ requirements: []
160
+
161
+ rubyforge_project:
162
+ rubygems_version: 1.3.7
163
+ signing_key:
164
+ specification_version: 3
165
+ summary: Provides a ruby interface to flickr via the REST api
166
+ test_files:
167
+ - spec/spec_helper.rb
168
+ - spec/flickr/test_spec.rb
169
+ - spec/flickr/geo_spec.rb
170
+ - spec/flickr/contacts_spec.rb
171
+ - spec/flickr/urls_spec.rb
172
+ - spec/flickr/errors_spec.rb
173
+ - spec/flickr/base_spec.rb
174
+ - spec/flickr/photo_spec.rb
175
+ - spec/flickr/photosets_spec.rb
176
+ - spec/flickr/photos_spec.rb