flickr-objects 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/README.md +167 -0
  2. data/lib/flickr/api/flickr.rb +40 -0
  3. data/lib/flickr/api/media.rb +63 -0
  4. data/lib/flickr/api/person.rb +70 -0
  5. data/lib/flickr/api/photo.rb +11 -0
  6. data/lib/flickr/api/set.rb +70 -0
  7. data/lib/flickr/api/video.rb +11 -0
  8. data/lib/flickr/api.rb +50 -0
  9. data/lib/flickr/api_caller.rb +95 -0
  10. data/lib/flickr/client/methods_client.rb +22 -0
  11. data/lib/flickr/client/middleware/retry.rb +38 -0
  12. data/lib/flickr/client/middleware.rb +42 -0
  13. data/lib/flickr/client/upload_client.rb +75 -0
  14. data/lib/flickr/client.rb +57 -0
  15. data/lib/flickr/configuration.rb +23 -0
  16. data/lib/flickr/helpers/base_58.rb +15 -0
  17. data/lib/flickr/helpers/boolean.rb +4 -0
  18. data/lib/flickr/helpers/core_ext.rb +5 -0
  19. data/lib/flickr/helpers/inheritable_attr_accessor.rb +18 -0
  20. data/lib/flickr/object/attribute/converter.rb +49 -0
  21. data/lib/flickr/object/attribute/finder.rb +32 -0
  22. data/lib/flickr/object/attribute.rb +45 -0
  23. data/lib/flickr/object.rb +39 -0
  24. data/lib/flickr/objects/attribute_values/collection.rb +10 -0
  25. data/lib/flickr/objects/attribute_values/location.rb +14 -0
  26. data/lib/flickr/objects/attribute_values/media.rb +70 -0
  27. data/lib/flickr/objects/attribute_values/note.rb +11 -0
  28. data/lib/flickr/objects/attribute_values/permissions.rb +12 -0
  29. data/lib/flickr/objects/attribute_values/person.rb +23 -0
  30. data/lib/flickr/objects/attribute_values/photo.rb +19 -0
  31. data/lib/flickr/objects/attribute_values/set.rb +21 -0
  32. data/lib/flickr/objects/attribute_values/tag.rb +9 -0
  33. data/lib/flickr/objects/attribute_values/upload_ticket.rb +11 -0
  34. data/lib/flickr/objects/attribute_values/video.rb +27 -0
  35. data/lib/flickr/objects/attribute_values/visibility.rb +10 -0
  36. data/lib/flickr/objects/collection.rb +58 -0
  37. data/lib/flickr/objects/location.rb +26 -0
  38. data/lib/flickr/objects/media.rb +74 -0
  39. data/lib/flickr/objects/note.rb +14 -0
  40. data/lib/flickr/objects/permissions.rb +14 -0
  41. data/lib/flickr/objects/person.rb +42 -0
  42. data/lib/flickr/objects/photo.rb +48 -0
  43. data/lib/flickr/objects/set.rb +33 -0
  44. data/lib/flickr/objects/tag.rb +17 -0
  45. data/lib/flickr/objects/upload_ticket.rb +18 -0
  46. data/lib/flickr/objects/video.rb +24 -0
  47. data/lib/flickr/objects/visibility.rb +12 -0
  48. data/lib/flickr/objects.rb +28 -0
  49. data/lib/flickr/version.rb +3 -0
  50. data/lib/flickr-objects.rb +2 -0
  51. data/lib/flickr.rb +21 -0
  52. metadata +212 -0
@@ -0,0 +1,58 @@
1
+ require_relative "attribute_values/collection"
2
+
3
+ class Flickr
4
+ class Collection < Object
5
+ include Enumerable
6
+
7
+ attribute :current_page, Integer
8
+ attribute :per_page, Integer
9
+ attribute :total_pages, Integer
10
+ attribute :total_entries, Integer
11
+
12
+ def initialize(collection, klass, hash, client)
13
+ unless klass == Media
14
+ objects = collection.map! do |hash|
15
+ klass.new(hash, client)
16
+ end
17
+ else
18
+ objects = collection.map! do |hash|
19
+ klass = Flickr.const_get(hash["media"].capitalize)
20
+ klass.new(hash, client)
21
+ end
22
+ end
23
+
24
+ @hash = hash
25
+ @objects = objects
26
+ end
27
+
28
+ def find(id = nil)
29
+ if block_given?
30
+ super
31
+ else
32
+ if id.is_a?(Array)
33
+ ids = id.map(&:to_s)
34
+ select { |object| ids.include?(object.id) }
35
+ else
36
+ super() { |object| object.id == id.to_s }
37
+ end
38
+ end
39
+ end
40
+
41
+ def each(&block)
42
+ @objects.each(&block)
43
+ end
44
+
45
+ def empty?
46
+ @objects.empty?
47
+ end
48
+
49
+ def select!(*args, &block)
50
+ @objects.select!(*args, &block)
51
+ self
52
+ end
53
+
54
+ def select(*args, &block)
55
+ dup.select!(*args, &block)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,26 @@
1
+ require_relative "attribute_values/location"
2
+
3
+ class Flickr
4
+ class Location < Object
5
+
6
+ class Area < Object
7
+ attribute :name, String
8
+ attribute :place_id, String
9
+ attribute :woe_id, String
10
+ end
11
+
12
+ attribute :latitude, Float
13
+ attribute :longitude, Float
14
+ attribute :accuracy, Integer
15
+ attribute :context, Integer
16
+ attribute :place_id, String
17
+ attribute :woe_id, String
18
+
19
+ attribute :neighbourhood, Area
20
+ attribute :locality, Area
21
+ attribute :county, Area
22
+ attribute :region, Area
23
+ attribute :country, Area
24
+
25
+ end
26
+ end
@@ -0,0 +1,74 @@
1
+ require_relative "attribute_values/media"
2
+ require "flickr/api/media"
3
+ require "flickr/helpers/base_58"
4
+
5
+ class Flickr
6
+ class Media < Object
7
+ include Base58
8
+
9
+ attribute :id, String
10
+ attribute :secret, String
11
+ attribute :server, String
12
+ attribute :farm, Integer
13
+ attribute :title, String
14
+ attribute :description, String
15
+ attribute :license, Integer
16
+ attribute :visibility, Visibility
17
+ attribute :safety_level, Integer
18
+
19
+ attribute :owner, Person
20
+
21
+ attribute :uploaded_at, Time
22
+ attribute :posted_at, Time
23
+ attribute :taken_at, Time
24
+ attribute :taken_at_granularity, Integer
25
+ attribute :updated_at, Time
26
+
27
+ attribute :views_count, Integer
28
+ attribute :comments_count, Integer
29
+
30
+ attribute :editability, Permissions
31
+ attribute :public_editability, Permissions
32
+ attribute :usage, Permissions
33
+
34
+ attribute :notes, Array(Note)
35
+ attribute :tags, Array(Tag)
36
+
37
+ attribute :has_people?, Boolean
38
+ attribute :favorite?, Boolean
39
+
40
+ attribute :path_alias
41
+
42
+ attribute :location, Location
43
+ attribute :location_visibility, Visibility
44
+
45
+ attribute :largest_size, String
46
+
47
+ SIZES = {
48
+ "Square 75" => "sq",
49
+ "Thumbnail" => "t",
50
+ "Square 150" => "q",
51
+ "Small 240" => "s",
52
+ "Small 320" => "n",
53
+ "Medium 500" => "m",
54
+ "Medium 640" => "z",
55
+ "Medium 800" => "c",
56
+ "Large 1024" => "l",
57
+ "Large 1600" => "h",
58
+ "Large 2048" => "k",
59
+ "Original" => "o"
60
+ }
61
+
62
+ def safe?; safety_level <= 1 end
63
+ def moderate?; safety_level == 2 end
64
+ def restricted?; safety_level == 3 end
65
+
66
+ def url
67
+ "http://www.flickr.com/photos/#{owner.id}/#{id}/" if owner
68
+ end
69
+
70
+ def short_url
71
+ "http://flic.kr/p/#{to_base58(id)}"
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "attribute_values/note"
2
+
3
+ class Flickr
4
+ class Note < Object
5
+
6
+ attribute :id, String
7
+ attribute :author, Person
8
+ attribute :coordinates, Array(Integer)
9
+ attribute :width, Integer
10
+ attribute :height, Integer
11
+ attribute :content, String
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "attribute_values/permissions"
2
+
3
+ class Flickr
4
+ class Permissions < Object
5
+
6
+ attribute :can_comment?, Boolean
7
+ attribute :can_add_meta?, Boolean
8
+ attribute :can_download?, Boolean
9
+ attribute :can_blog?, Boolean
10
+ attribute :can_print?, Boolean
11
+ attribute :can_share?, Boolean
12
+
13
+ end
14
+ end
@@ -0,0 +1,42 @@
1
+ require_relative "attribute_values/person"
2
+ require "flickr/api/person"
3
+
4
+ class Flickr
5
+ class Person < Object
6
+
7
+ attribute :id, String
8
+ attribute :nsid, String
9
+ attribute :username, String
10
+ attribute :real_name, String
11
+ attribute :location, String
12
+ attribute :time_zone, Hash
13
+ attribute :description, String
14
+ attribute :has_pro_account?, Boolean
15
+
16
+ attribute :icon_server, Integer
17
+ attribute :icon_farm, Integer
18
+
19
+ attribute :photos_url, String, aliases: [:videos_url, :media_url]
20
+ attribute :profile_url, String
21
+ attribute :mobile_url, String
22
+
23
+ attribute :first_photo_taken, Time, aliases: [:first_video_taken, :first_media_taken]
24
+ attribute :first_photo_uploaded, Time, aliases: [:first_video_uploaded, :first_media_uploaded]
25
+
26
+ attribute :photos_count, Integer, aliases: [:videos_count, :media_count]
27
+ attribute :photo_views_count, Integer, aliases: [:video_views_count, :media_views_count]
28
+
29
+ attribute :path_alias, String
30
+
31
+ def buddy_icon_url
32
+ if icon_farm && icon_server && id
33
+ if icon_server > 0
34
+ "http://farm#{icon_farm}.staticflickr.com/#{icon_server}/buddyicons/#{id}.jpg"
35
+ else
36
+ "http://www.flickr.com/images/buddyicon.jpg"
37
+ end
38
+ end
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,48 @@
1
+ require_relative "attribute_values/photo"
2
+ require "flickr/api/photo"
3
+
4
+ class Flickr
5
+ class Photo < Media
6
+
7
+ attribute :rotation, Integer
8
+
9
+ attribute :source_url, String
10
+ attribute :height, Integer
11
+ attribute :width, Integer
12
+
13
+ # This creates size methods. For example:
14
+ #
15
+ # small_photo = photo.square150
16
+ # small_photo.size #=> "Square 150"
17
+ # small_photo.source_url #=> URL to the "Square 150" version
18
+ #
19
+ # You can also put the number in the parameter, if you like that version better:
20
+ #
21
+ # photo.square(150)
22
+ # photo.square("150")
23
+ #
24
+ # You also get the bang versions, which change the receiver:
25
+ #
26
+ # photo.square150!
27
+ # photo.square!(150)
28
+ #
29
+ SIZES.keys.each do |size|
30
+ size_name, size_number = size.split(" ").map(&:downcase)
31
+
32
+ define_method("#{size_name}#{size_number}!") { @size = size; self }
33
+ define_method("#{size_name}#{size_number}") { dup.send("#{size_name}#{size_number}!") }
34
+
35
+ if size_number
36
+ define_method("#{size_name}!") {|size_number| send("#{size_name}#{size_number}!") }
37
+ define_method("#{size_name}") {|size_number| send("#{size_name}#{size_number}") }
38
+ end
39
+ end
40
+
41
+ def size
42
+ @size
43
+ end
44
+
45
+ def largest!; @size = largest_size; self end
46
+ def largest; dup.largest! end
47
+ end
48
+ end
@@ -0,0 +1,33 @@
1
+ require_relative "attribute_values/set"
2
+ require "flickr/api/set"
3
+
4
+ class Flickr
5
+ class Set < Object
6
+
7
+ attribute :id, String
8
+ attribute :secret, String
9
+ attribute :server, String
10
+ attribute :farm, Integer
11
+ attribute :url, String
12
+ attribute :title, String
13
+ attribute :description, String
14
+
15
+ attribute :owner, Person
16
+
17
+ attribute :media_count, Integer
18
+ attribute :views_count, Integer
19
+ attribute :comments_count, Integer
20
+ attribute :photos_count, Integer
21
+ attribute :videos_count, Integer
22
+
23
+ attribute :permissions, Permissions
24
+
25
+ attribute :created_at, Time
26
+ attribute :updated_at, Time
27
+
28
+ attribute :primary_media, Media
29
+ attribute :primary_photo, Photo
30
+ attribute :primary_video, Video
31
+
32
+ end
33
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "attribute_values/tag"
2
+
3
+ class Flickr
4
+ class Tag < Object
5
+
6
+ attribute :id, String
7
+ attribute :author, Person
8
+ attribute :raw, String
9
+ attribute :content, String
10
+ attribute :machine_tag?, Boolean
11
+
12
+ def to_s
13
+ content
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ require_relative "attribute_values/upload_ticket"
2
+
3
+ class Flickr
4
+ class UploadTicket < Object
5
+
6
+ attribute :id, String
7
+ attribute :status, Integer
8
+ attribute :invalid?, Boolean
9
+
10
+ attribute :media, Media
11
+ attribute :photo, Photo
12
+ attribute :video, Video
13
+
14
+ def complete?; status == 1 end
15
+ def failed?; status == 2 end
16
+
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ require_relative "attribute_values/video"
2
+ require "flickr/api/video"
3
+
4
+ class Flickr
5
+ class Video < Media
6
+
7
+ attribute :ready?, Boolean
8
+ attribute :failed?, Boolean
9
+ attribute :pending?, Boolean
10
+
11
+ attribute :duration, Integer
12
+ attribute :width, Integer
13
+ attribute :height, Integer
14
+
15
+ attribute :thumbnail_url, String
16
+ attribute :thumbnail_width, Integer
17
+ attribute :thumbnail_height, Integer
18
+
19
+ attribute :source_url, String
20
+ attribute :download_url, String
21
+ attribute :mobile_download_url, String
22
+
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ require_relative "attribute_values/visibility"
2
+
3
+ class Flickr
4
+ class Visibility < Object
5
+
6
+ attribute :public?, Boolean
7
+ attribute :friends?, Boolean
8
+ attribute :family?, Boolean
9
+ attribute :contacts?, Boolean
10
+
11
+ end
12
+ end
@@ -0,0 +1,28 @@
1
+ require "flickr/object"
2
+
3
+ class Flickr
4
+ # Official objects
5
+ class Person < Object; end
6
+ class Media < Object; end
7
+ class Photo < Media; end
8
+ class Video < Media; end
9
+ class Set < Object; end
10
+
11
+ # Meta objects
12
+ class Visibility < Object; end
13
+ class Permissions < Object; end
14
+ class Note < Object; end
15
+ class Tag < Object; end
16
+ class Location < Object; end
17
+ class UploadTicket < Object; end
18
+
19
+ class Collection < Object; end
20
+ end
21
+
22
+ Flickr::Object.children.each do |klass|
23
+ underscored_name = klass.name.split("::").last.sub(/(?<=\w)(?=[A-Z])/, "_").downcase
24
+ begin
25
+ require "flickr/objects/#{underscored_name}"
26
+ rescue LoadError
27
+ end
28
+ end
@@ -0,0 +1,3 @@
1
+ class Flickr
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,2 @@
1
+ require "flickr"
2
+ require "flickr/version"
data/lib/flickr.rb ADDED
@@ -0,0 +1,21 @@
1
+ require "flickr/helpers/core_ext"
2
+ require "flickr/configuration"
3
+
4
+ class Flickr
5
+ def self.configuration
6
+ @configuration ||= Configuration.new
7
+ end
8
+
9
+ def self.configure
10
+ yield configuration if block_given?
11
+ @client = @upload_client = nil
12
+ configuration
13
+ end
14
+
15
+ def self.api_methods
16
+ @api_methods ||= Hash.new { |hash, key| hash[key] = [] }
17
+ end
18
+ end
19
+
20
+ require "flickr/objects"
21
+ require "flickr/api"
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flickr-objects
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Janko Marohnić
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.7.6
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.7.6
30
+ - !ruby/object:Gem::Dependency
31
+ name: faraday_middleware
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0.8'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0.8'
46
+ - !ruby/object:Gem::Dependency
47
+ name: simple_oauth
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '0.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ - !ruby/object:Gem::Dependency
63
+ name: multi_xml
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '0.4'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '0.4'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '2.0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '2.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: vcr
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '2.0'
126
+ description: This gem is an object-oriented wrapper for the Flickr API.
127
+ email:
128
+ - janko.marohnic@gmail.com
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - README.md
134
+ - lib/flickr/api/flickr.rb
135
+ - lib/flickr/api/media.rb
136
+ - lib/flickr/api/person.rb
137
+ - lib/flickr/api/photo.rb
138
+ - lib/flickr/api/set.rb
139
+ - lib/flickr/api/video.rb
140
+ - lib/flickr/api.rb
141
+ - lib/flickr/api_caller.rb
142
+ - lib/flickr/client/methods_client.rb
143
+ - lib/flickr/client/middleware/retry.rb
144
+ - lib/flickr/client/middleware.rb
145
+ - lib/flickr/client/upload_client.rb
146
+ - lib/flickr/client.rb
147
+ - lib/flickr/configuration.rb
148
+ - lib/flickr/helpers/base_58.rb
149
+ - lib/flickr/helpers/boolean.rb
150
+ - lib/flickr/helpers/core_ext.rb
151
+ - lib/flickr/helpers/inheritable_attr_accessor.rb
152
+ - lib/flickr/object/attribute/converter.rb
153
+ - lib/flickr/object/attribute/finder.rb
154
+ - lib/flickr/object/attribute.rb
155
+ - lib/flickr/object.rb
156
+ - lib/flickr/objects/attribute_values/collection.rb
157
+ - lib/flickr/objects/attribute_values/location.rb
158
+ - lib/flickr/objects/attribute_values/media.rb
159
+ - lib/flickr/objects/attribute_values/note.rb
160
+ - lib/flickr/objects/attribute_values/permissions.rb
161
+ - lib/flickr/objects/attribute_values/person.rb
162
+ - lib/flickr/objects/attribute_values/photo.rb
163
+ - lib/flickr/objects/attribute_values/set.rb
164
+ - lib/flickr/objects/attribute_values/tag.rb
165
+ - lib/flickr/objects/attribute_values/upload_ticket.rb
166
+ - lib/flickr/objects/attribute_values/video.rb
167
+ - lib/flickr/objects/attribute_values/visibility.rb
168
+ - lib/flickr/objects/collection.rb
169
+ - lib/flickr/objects/location.rb
170
+ - lib/flickr/objects/media.rb
171
+ - lib/flickr/objects/note.rb
172
+ - lib/flickr/objects/permissions.rb
173
+ - lib/flickr/objects/person.rb
174
+ - lib/flickr/objects/photo.rb
175
+ - lib/flickr/objects/set.rb
176
+ - lib/flickr/objects/tag.rb
177
+ - lib/flickr/objects/upload_ticket.rb
178
+ - lib/flickr/objects/video.rb
179
+ - lib/flickr/objects/visibility.rb
180
+ - lib/flickr/objects.rb
181
+ - lib/flickr/version.rb
182
+ - lib/flickr-objects.rb
183
+ - lib/flickr.rb
184
+ homepage: http://janko-m.github.com/flickr-objects/
185
+ licenses:
186
+ - MIT
187
+ post_install_message:
188
+ rdoc_options: []
189
+ require_paths:
190
+ - lib
191
+ required_ruby_version: !ruby/object:Gem::Requirement
192
+ none: false
193
+ requirements:
194
+ - - ! '>='
195
+ - !ruby/object:Gem::Version
196
+ version: 1.9.2
197
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
200
+ - - ! '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ segments:
204
+ - 0
205
+ hash: 41965126813317572
206
+ requirements: []
207
+ rubyforge_project:
208
+ rubygems_version: 1.8.23
209
+ signing_key:
210
+ specification_version: 3
211
+ summary: This gem is an object-oriented wrapper for the Flickr API.
212
+ test_files: []