tomk32-flickr_fu 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -170,6 +170,20 @@ token_cache: "token_cache.yml"
170
170
 
171
171
  photos = flickr.photos.search(:user_id => 'your_user_id_here')
172
172
 
173
+ == Authenticatd Search Example
174
+
175
+ For a few searches you will need to authenticate. E.g. to receive the original_url
176
+ staight away (and thus saving an extra getInfo call), or to search for the private
177
+ photos of a user. In order to do so you need to pass the user's token and his
178
+ flickr_nsid (though the API docs also suggest 'me', both work fine).
179
+
180
+ This example appends the :url_o to the extras, mapping it to :original_url:
181
+
182
+ flickr.photos.extras << {:url_o => :original_url}
183
+ photos = flickr.photos.search(:per_page => 5, :page => 1,
184
+ :user_id => 'me', :privacy_filter => 5, :auth_token => user_token,
185
+ :safe_search => 3))
186
+
173
187
  == Patch Contributers
174
188
 
175
189
  Chris Ledet
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 3
4
- :patch: 0
4
+ :patch: 1
@@ -1,17 +1,14 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
5
2
 
6
3
  Gem::Specification.new do |s|
7
4
  s.name = %q{tomk32-flickr_fu}
8
- s.version = "0.3.0"
5
+ s.version = "0.3.1"
9
6
 
10
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ben Wyrosdick", "Maciej Bilas"]
12
- s.date = %q{2009-11-08}
8
+ s.authors = ["Ben Wyrosdick", "Maciej Bilas", "Thomas R. Koll"]
9
+ s.date = %q{2010-04-17}
13
10
  s.description = %q{Provides a ruby interface to flickr via the REST api}
14
- s.email = %q{ben@commonthread.com}
11
+ s.email = %q{tomk32@gmx.de}
15
12
  s.extra_rdoc_files = [
16
13
  "README"
17
14
  ]
@@ -21,7 +18,7 @@ Gem::Specification.new do |s|
21
18
  "README",
22
19
  "Rakefile",
23
20
  "VERSION.yml",
24
- "tomk32-flickr_fu.gemspec",
21
+ "flickr_fu.gemspec",
25
22
  "lib/flickr/auth.rb",
26
23
  "lib/flickr/base.rb",
27
24
  "lib/flickr/comment.rb",
@@ -84,22 +81,22 @@ Gem::Specification.new do |s|
84
81
  "spec/spec.opts",
85
82
  "spec/spec_helper.rb"
86
83
  ]
87
- s.homepage = %q{http://github.com/commonthread/flickr_fu}
84
+ s.homepage = %q{http://github.com/tomk32/flickr_fu}
88
85
  s.rdoc_options = ["--main", "README"]
89
86
  s.require_paths = ["lib"]
90
- s.rubygems_version = %q{1.3.5}
87
+ s.rubygems_version = %q{1.3.3}
91
88
  s.summary = %q{Provides a ruby interface to flickr via the REST api}
92
89
  s.test_files = [
93
- "spec/flickr/base_spec.rb",
90
+ "spec/spec_helper.rb",
91
+ "spec/flickr/test_spec.rb",
92
+ "spec/flickr/geo_spec.rb",
94
93
  "spec/flickr/contacts_spec.rb",
94
+ "spec/flickr/urls_spec.rb",
95
95
  "spec/flickr/errors_spec.rb",
96
- "spec/flickr/geo_spec.rb",
96
+ "spec/flickr/base_spec.rb",
97
97
  "spec/flickr/photo_spec.rb",
98
- "spec/flickr/photos_spec.rb",
99
98
  "spec/flickr/photosets_spec.rb",
100
- "spec/flickr/test_spec.rb",
101
- "spec/flickr/urls_spec.rb",
102
- "spec/spec_helper.rb"
99
+ "spec/flickr/photos_spec.rb"
103
100
  ]
104
101
 
105
102
  if s.respond_to? :specification_version then
@@ -118,4 +115,3 @@ Gem::Specification.new do |s|
118
115
  s.add_dependency(%q<xml-magic>, ["> 0.0.0"])
119
116
  end
120
117
  end
121
-
data/lib/flickr/base.rb CHANGED
@@ -84,8 +84,9 @@ module Flickr
84
84
  def send_request(method, options = {}, http_method = :get, endpoint = REST_ENDPOINT)
85
85
  options.merge!(:api_key => @api_key, :method => method)
86
86
  sign_request(options)
87
-
88
87
  rsp = request_over_http(options, http_method, endpoint)
88
+ puts y options
89
+ puts y rsp
89
90
 
90
91
  rsp = '<rsp stat="ok"></rsp>' if rsp == ""
91
92
  xm = XmlMagic.new(rsp)
data/lib/flickr/photo.rb CHANGED
@@ -15,6 +15,11 @@ class Flickr::Photos::Photo
15
15
  def initialize(flickr, attributes)
16
16
  @flickr = flickr
17
17
  attributes.each do |k,v|
18
+ # necessary for anything that comes via 'extras' or of course
19
+ # possible future changes in the api returns
20
+ if ! respond_to?(k)
21
+ self.class.send(:attr_accessor, k)
22
+ end
18
23
  send("#{k}=", v)
19
24
  end
20
25
  end
data/lib/flickr/photos.rb CHANGED
@@ -1,17 +1,34 @@
1
1
  class Flickr::Photos < Flickr::Base
2
+ attr_accessor :extras
2
3
  def initialize(flickr)
3
4
  @flickr = flickr
5
+ self.extras ||= {
6
+ # flickr => flickr_fu
7
+ :license => :license_id,
8
+ :date_upload => :date_upload,
9
+ :datetaken => :taken_at,
10
+ :ownername => :owner_name,
11
+ :icon_server => :icon_server,
12
+ :originalformat => :original_format,
13
+ :lastupdate => :updated_at,
14
+ :machine_tags => :machine_tags,
15
+ :geo => :geo,
16
+ :tags => :tags,
17
+ :o_dims => :o_dims,
18
+ :views => :views,
19
+ :media => :media
20
+ }
4
21
  end
5
22
 
6
- # Return a list of photos matching some criteria. Only photos visible to the calling user will be returned. To return private or semi-private photos,
7
- # the caller must be authenticated with 'read' permissions, and have permission to view the photos. Unauthenticated calls will only return public photos.
8
- #
23
+ # Return a list of photos matching some criteria. Only photos visible to the calling user will be returned. To return private or semi-private photos,
24
+ # the caller must be authenticated with 'read' permissions (by passing :auth_token), and have permission to view the photos. Unauthenticated calls will only return public photos.
25
+ #
9
26
  # == Authentication
10
27
  # This method does not require authentication.
11
- #
28
+ #
12
29
  # == Options
13
30
  # * user_id (Optional)
14
- # The NSID of the user who's photo to search. If this parameter isn't passed then everybody's public photos will be searched. A value of "me" will
31
+ # The NSID of the user who's photo to search. If this parameter isn't passed then everybody's public photos will be searched. A value of "me" will
15
32
  # search against the calling user's photos for authenticated calls.
16
33
  # * tags (Optional)
17
34
  # A comma-delimited list of tags. Photos with one or more of the tags listed will be returned.
@@ -30,7 +47,7 @@ class Flickr::Photos < Flickr::Base
30
47
  # * license (Optional)
31
48
  # The license id for photos (for possible values see the flickr.photos.licenses.getInfo method). Multiple licenses may be comma-separated.
32
49
  # * sort (Optional)
33
- # The order in which to sort returned photos. Deafults to date-posted-desc. The possible values are: date-posted-asc, date-posted-desc, date-taken-asc,
50
+ # The order in which to sort returned photos. Deafults to date-posted-desc. The possible values are: date-posted-asc, date-posted-desc, date-taken-asc,
34
51
  # date-taken-desc, interestingness-desc, interestingness-asc, and relevance.
35
52
  # * privacy_filter (Optional)
36
53
  # Return photos only matching a certain privacy level. This only applies when making an authenticated call to view photos you own. Valid values are:
@@ -40,18 +57,18 @@ class Flickr::Photos < Flickr::Base
40
57
  # 4 private photos visible to friends & family
41
58
  # 5 completely private photos
42
59
  # * bbox (Optional)
43
- # A comma-delimited list of 4 values defining the Bounding Box of the area that will be searched.
44
- #
45
- # The 4 values represent the bottom-left corner of the box and the top-right corner, minimum_longitude, minimum_latitude, maximum_longitude, maximum_latitude.
46
- #
47
- # Longitude has a range of -180 to 180 , latitude of -90 to 90. Defaults to -180, -90, 180, 90 if not specified.
48
- #
49
- # Unlike standard photo queries, geo (or bounding box) queries will only return 250 results per page.
50
- #
51
- # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
52
- # for queries without a geo component.
53
- #
54
- # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters — If no limiting factor is passed we
60
+ # A comma-delimited list of 4 values defining the Bounding Box of the area that will be searched.
61
+ #
62
+ # The 4 values represent the bottom-left corner of the box and the top-right corner, minimum_longitude, minimum_latitude, maximum_longitude, maximum_latitude.
63
+ #
64
+ # Longitude has a range of -180 to 180 , latitude of -90 to 90. Defaults to -180, -90, 180, 90 if not specified.
65
+ #
66
+ # Unlike standard photo queries, geo (or bounding box) queries will only return 250 results per page.
67
+ #
68
+ # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
69
+ # for queries without a geo component.
70
+ #
71
+ # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters — If no limiting factor is passed we
55
72
  # return only photos added in the last 12 hours (though we may extend the limit in the future).
56
73
  # * accuracy (Optional)
57
74
  # Recorded accuracy level of the location information. Current range is 1-16 :
@@ -85,27 +102,27 @@ class Flickr::Photos < Flickr::Base
85
102
  # Find photos that have a title, in any namespace : "machine_tags" => "*:title="
86
103
  # Find photos that have a title, in any namespace, whose value is "mr. camera" : "machine_tags" => "*:title=\"mr. camera\""
87
104
  # Find photos, in the 'dc' namespace whose value is "mr. camera" : "machine_tags" => "dc:*=\"mr. camera\""
88
- # Multiple machine tags may be queried by passing a comma-separated list. The number of machine tags you can pass in a single query depends on
105
+ # Multiple machine tags may be queried by passing a comma-separated list. The number of machine tags you can pass in a single query depends on
89
106
  # the tag mode (AND or OR) that you are querying with. "AND" queries are limited to (16) machine tags. "OR" queries are limited to (8).
90
107
  # * machine_tag_mode (Required)
91
108
  # Either 'any' for an OR combination of tags, or 'all' for an AND combination. Defaults to 'any' if not specified.
92
109
  # * group_id (Optional)
93
110
  # The id of a group who's pool to search. If specified, only matching photos posted to the group's pool will be returned.
94
111
  # * woe_id (Optional)
95
- # A 32-bit identifier that uniquely represents spatial entities. (not used if bbox argument is present). Experimental.
96
- #
97
- # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
98
- # for queries without a geo component.
99
- #
100
- # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters &emdash; If no limiting factor is passed
112
+ # A 32-bit identifier that uniquely represents spatial entities. (not used if bbox argument is present). Experimental.
113
+ #
114
+ # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
115
+ # for queries without a geo component.
116
+ #
117
+ # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters &emdash; If no limiting factor is passed
101
118
  # we return only photos added in the last 12 hours (though we may extend the limit in the future).
102
119
  # * place_id (Optional)
103
- # A Flickr place id. (not used if bbox argument is present). Experimental.
104
- #
105
- # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
106
- # for queries without a geo component.
107
- #
108
- # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters &emdash; If no limiting factor is passed
120
+ # A Flickr place id. (not used if bbox argument is present). Experimental.
121
+ #
122
+ # Geo queries require some sort of limiting agent in order to prevent the database from crying. This is basically like the check against "parameterless searches"
123
+ # for queries without a geo component.
124
+ #
125
+ # A tag, for instance, is considered a limiting agent as are user defined min_date_taken and min_date_upload parameters &emdash; If no limiting factor is passed
109
126
  # we return only photos added in the last 12 hours (though we may extend the limit in the future).
110
127
  # * per_page (Optional)
111
128
  # Number of photos to return per page. If this argument is omitted, it defaults to 100. The maximum allowed value is 500.
@@ -113,9 +130,12 @@ class Flickr::Photos < Flickr::Base
113
130
  # The page of results to return. If this argument is omitted, it defaults to 1.
114
131
  # * media (Optional)
115
132
  # The type of media to search for. 'photo', 'video', or 'both' are allowed arguments, with 'both' being the default.
116
- #
133
+ # * extras (Optional)
134
+ # Any extra fields of information you want. The default extra fields are defined
135
+ # in Flickr::Photos.extras and can be overwritten
136
+ #
117
137
  def search(options)
118
- options.merge!({:extras => "license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo,tags,machine_tags,o_dims,views,media"})
138
+ options[:extras] ||= self.extras.keys.join(',')
119
139
 
120
140
  rsp = @flickr.send_request('flickr.photos.search', options)
121
141
 
@@ -134,12 +154,12 @@ class Flickr::Photos < Flickr::Base
134
154
  end if rsp.photos.photo
135
155
  end
136
156
  end
137
-
157
+
138
158
  # Returns a list of the latest public photos uploaded to flickr.
139
- #
159
+ #
140
160
  # == Authentication
141
161
  # This method does not require authentication.
142
- #
162
+ #
143
163
  # == Options
144
164
  # * per_page (Optional)
145
165
  # Number of photos to return per page. If this argument is omitted, it defaults to 100. The maximum allowed value is 500.
@@ -147,9 +167,9 @@ class Flickr::Photos < Flickr::Base
147
167
  # The page of results to return. If this argument is omitted, it defaults to 1.
148
168
  # * media (Optional)
149
169
  # The type of media to search for. 'photo', 'video', or 'both' are allowed arguments, with 'both' being the default.
150
- #
170
+ #
151
171
  def get_recent(options = {})
152
- options.merge!({:extras => "license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo,tags,machine_tags,o_dims,views,media"})
172
+ options[:extras] ||= self.extras.keys.join(',')
153
173
 
154
174
  rsp = @flickr.send_request('flickr.photos.getRecent', options)
155
175
 
@@ -167,9 +187,9 @@ class Flickr::Photos < Flickr::Base
167
187
  end if rsp.photos.photo
168
188
  end
169
189
  end
170
-
190
+
171
191
  def interesting(options)
172
- options.merge!({:extras => "license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo,tags,machine_tags,o_dims,views,media"})
192
+ options[:extras] ||= self.extras.keys.join(',')
173
193
 
174
194
  rsp = @flickr.send_request('flickr.interestingness.getList', options)
175
195
 
@@ -189,11 +209,11 @@ class Flickr::Photos < Flickr::Base
189
209
  end if rsp.photos.photo
190
210
  end
191
211
  end
192
-
212
+
193
213
  def licenses
194
214
  @licenses ||= begin
195
215
  rsp = @flickr.send_request('flickr.photos.licenses.getInfo')
196
-
216
+
197
217
  returning Hash.new do |licenses|
198
218
  rsp.licenses.license.each do |license|
199
219
  licenses[license[:id].to_i] = Flickr::Photos::License.new(:id => license[:id].to_i, :name => license[:name], :url => license[:url])
@@ -206,72 +226,44 @@ class Flickr::Photos < Flickr::Base
206
226
  def geo
207
227
  @geo ||= Flickr::Photos::Geo.new(@flickr)
208
228
  end
209
-
229
+
210
230
  # Returns a Flickr::Photos::Photo object of the given id.
211
231
  # Raises an error if photo not found
212
232
  def find_by_id(photo_id)
213
233
  rsp = @flickr.send_request('flickr.photos.getInfo', :photo_id => photo_id)
214
-
215
- tags = []
216
- machine_tags = []
217
-
218
- if rsp.photo.tags.tag
219
- rsp.photo.tags.tag.each do |tag|
220
- if tag[:machine_tag] == '1'
221
- machine_tags << tag[:raw]
222
- else
223
- tags << tag[:raw]
224
- end
225
- end
226
- end
227
-
228
- Photo.new(@flickr,
229
- :id => rsp.photo[:id].to_i,
230
- :owner => rsp.photo.owner,
231
- :secret => rsp.photo[:secret],
232
- :server => rsp.photo[:server].to_i,
233
- :farm => rsp.photo[:farm],
234
- :title => rsp.photo.title.to_s,
235
- :is_public => rsp.photo.visibility[:ispublic],
236
- :is_friend => rsp.photo.visibility[:isfriend],
237
- :is_family => rsp.photo.visibility[:isfamily],
238
- :license_id => rsp.photo[:license].to_i,
239
- :uploaded_at => (Time.at(rsp.photo[:dateuploaded].to_i) rescue nil),
240
- :taken_at => (Time.parse(rsp.photo.dates[:taken]) rescue nil),
241
- :owner_name => rsp.photo.owner[:username],
242
- :icon_server => rsp.photo[:icon_server],
243
- :original_format => rsp.photo[:originalformat],
244
- :updated_at => (Time.at(rsp.photo.dates[:lastupdate].to_i) rescue nil),
245
- :tags => tags,
246
- :machine_tags => machine_tags,
247
- :views => rsp.photo[:views].to_i,
248
- :media => rsp.photo[:media])
234
+ Photo.new(@flickr, :id => rsp.photo[:id].to_i, :owner => rsp.photo.owner,
235
+ :secret => rsp.photo[:secret], :server => rsp.photo[:server].to_i, :farm => rsp.photo[:farm],
236
+ :title => rsp.photo.title,
237
+ :is_public => rsp.photo.visibility[:public], :is_friend => rsp.photo.visibility[:is_friend], :is_family => rsp.photo.visibility[:is_family])
249
238
  end
250
-
239
+
251
240
  protected
252
241
  def create_attributes(photo)
253
- {:id => photo[:id],
254
- :owner => photo[:owner],
255
- :secret => photo[:secret],
256
- :server => photo[:server],
257
- :farm => photo[:farm],
258
- :title => photo[:title],
259
- :is_public => photo[:ispublic],
260
- :is_friend => photo[:isfriend],
261
- :is_family => photo[:isfamily],
242
+ attributes = {}
243
+
244
+ # map all attributes from flickr to `attributes`
245
+ {
246
+ # flickr -> flickr_fu
247
+ :id => :id,
248
+ :owner => :owner,
249
+ :secret => :secret,
250
+ :server => :server,
251
+ :farm => :farm,
252
+ :title => :title,
253
+ :ispublic => :is_public,
254
+ :isfriend => :is_friend,
255
+ :isfamily => :is_family
256
+ }.merge(self.extras).each do |flickr_key, photo_key|
257
+ attributes[photo_key] = photo[flickr_key]
258
+ end
259
+
260
+ # and a few conversions
261
+ attributes.merge({
262
262
  :license_id => photo[:license].to_i,
263
263
  :uploaded_at => (Time.at(photo[:dateupload].to_i) rescue nil),
264
264
  :taken_at => (Time.parse(photo[:datetaken]) rescue nil),
265
- :owner_name => photo[:ownername],
266
- :icon_server => photo[:icon_server],
267
- :original_format => photo[:originalformat],
268
265
  :updated_at => (Time.at(photo[:lastupdate].to_i) rescue nil),
269
- :geo => photo[:geo],
270
- :tags => photo[:tags],
271
- :machine_tags => photo[:machine_tags],
272
- :o_dims => photo[:o_dims],
273
- :views => photo[:views].to_i,
274
- :media => photo[:media]}
266
+ :views => photo[:views].to_i
267
+ })
275
268
  end
276
-
277
269
  end
data/lib/flickr_fu.rb CHANGED
@@ -39,13 +39,10 @@ end
39
39
 
40
40
  include CommonThread::XML
41
41
 
42
- # Rails' ActiveSupport also contains this, we don't want to override it in that case.
43
- unless defined?(Object::returning)
44
- class Object
45
- # returning allows you to pass an object to a block that you can manipulate returning the manipulated object
46
- def returning(value)
47
- yield(value)
48
- value
49
- end
42
+ class Object
43
+ # returning allows you to pass an object to a block that you can manipulate returning the manipulated object
44
+ def returning(value)
45
+ yield(value)
46
+ value
50
47
  end
51
48
  end
metadata CHANGED
@@ -1,40 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomk32-flickr_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 1
9
+ version: 0.3.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - Ben Wyrosdick
8
13
  - Maciej Bilas
14
+ - Thomas R. Koll
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2009-11-08 00:00:00 +01:00
19
+ date: 2010-04-17 00:00:00 +02:00
14
20
  default_executable:
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
17
23
  name: mime-types
18
- type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
21
26
  requirements:
22
27
  - - ">"
23
28
  - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
31
+ - 0
32
+ - 0
24
33
  version: 0.0.0
25
- version:
34
+ type: :runtime
35
+ version_requirements: *id001
26
36
  - !ruby/object:Gem::Dependency
27
37
  name: xml-magic
28
- type: :runtime
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
31
40
  requirements:
32
41
  - - ">"
33
42
  - !ruby/object:Gem::Version
43
+ segments:
44
+ - 0
45
+ - 0
46
+ - 0
34
47
  version: 0.0.0
35
- version:
48
+ type: :runtime
49
+ version_requirements: *id002
36
50
  description: Provides a ruby interface to flickr via the REST api
37
- email: ben@commonthread.com
51
+ email: tomk32@gmx.de
38
52
  executables: []
39
53
 
40
54
  extensions: []
@@ -47,7 +61,7 @@ files:
47
61
  - README
48
62
  - Rakefile
49
63
  - VERSION.yml
50
- - tomk32-flickr_fu.gemspec
64
+ - flickr_fu.gemspec
51
65
  - lib/flickr/auth.rb
52
66
  - lib/flickr/base.rb
53
67
  - lib/flickr/comment.rb
@@ -110,7 +124,7 @@ files:
110
124
  - spec/spec.opts
111
125
  - spec/spec_helper.rb
112
126
  has_rdoc: true
113
- homepage: http://github.com/commonthread/flickr_fu
127
+ homepage: http://github.com/tomk32/flickr_fu
114
128
  licenses: []
115
129
 
116
130
  post_install_message:
@@ -123,29 +137,31 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
137
  requirements:
124
138
  - - ">="
125
139
  - !ruby/object:Gem::Version
140
+ segments:
141
+ - 0
126
142
  version: "0"
127
- version:
128
143
  required_rubygems_version: !ruby/object:Gem::Requirement
129
144
  requirements:
130
145
  - - ">="
131
146
  - !ruby/object:Gem::Version
147
+ segments:
148
+ - 0
132
149
  version: "0"
133
- version:
134
150
  requirements: []
135
151
 
136
152
  rubyforge_project:
137
- rubygems_version: 1.3.5
153
+ rubygems_version: 1.3.6
138
154
  signing_key:
139
155
  specification_version: 3
140
156
  summary: Provides a ruby interface to flickr via the REST api
141
157
  test_files:
142
- - spec/flickr/base_spec.rb
158
+ - spec/spec_helper.rb
159
+ - spec/flickr/test_spec.rb
160
+ - spec/flickr/geo_spec.rb
143
161
  - spec/flickr/contacts_spec.rb
162
+ - spec/flickr/urls_spec.rb
144
163
  - spec/flickr/errors_spec.rb
145
- - spec/flickr/geo_spec.rb
164
+ - spec/flickr/base_spec.rb
146
165
  - spec/flickr/photo_spec.rb
147
- - spec/flickr/photos_spec.rb
148
166
  - spec/flickr/photosets_spec.rb
149
- - spec/flickr/test_spec.rb
150
- - spec/flickr/urls_spec.rb
151
- - spec/spec_helper.rb
167
+ - spec/flickr/photos_spec.rb