fotonauts-flickr_fu 0.3.2

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.
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