tomk32-flickr_fu 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 3
4
- :patch: 2
4
+ :patch: 3
data/lib/flickr/base.rb CHANGED
@@ -86,7 +86,7 @@ module Flickr
86
86
  sign_request(options)
87
87
 
88
88
  rsp = request_over_http(options, http_method, endpoint)
89
-
89
+ puts rsp.inspect
90
90
  rsp = '<rsp stat="ok"></rsp>' if rsp == ""
91
91
  xm = XmlMagic.new(rsp)
92
92
 
data/lib/flickr/photo.rb CHANGED
@@ -2,7 +2,6 @@
2
2
  class Flickr::Photos::Photo
3
3
  attr_accessor :id, :owner, :secret, :server, :farm, :title, :is_public, :is_friend, :is_family # standard attributes
4
4
  attr_accessor :license_id, :uploaded_at, :taken_at, :owner_name, :icon_server, :original_format, :updated_at, :geo, :tags, :machine_tags, :o_dims, :views, :media # extra attributes
5
- attr_accessor :info_added, :description, :original_secret, :owner_username, :owner_realname, :url_photopage, :notes # info attributes
6
5
  attr_accessor :comments # comment attributes
7
6
 
8
7
  # create a new instance of a flickr photo.
@@ -24,11 +23,6 @@ class Flickr::Photos::Photo
24
23
  end
25
24
  end
26
25
 
27
- # Alias to image_url method
28
- def url(size = :medium)
29
- image_url(size)
30
- end
31
-
32
26
  # returns an instance of Flickr::Photos::Size for the required size
33
27
  #
34
28
  # Params
@@ -60,23 +54,24 @@ class Flickr::Photos::Photo
60
54
  # :original - original image, either a jpg, gif or png, depending on source format
61
55
  #
62
56
  def image_url(size = :medium)
63
- # It turns out that flickr always stores all the sizes of the picture even when getSizes call returns otherwise.
64
- # Not calling getSizes is also very important for performance reasons.
65
- # Retrieving 30 search results means calling the API 31 times if you call getSizes every time.
66
- # Mind that you still need to call getSizes if you go out for the original image.
67
- if size == :original
68
- return original_url if respond_to?(:original_url) and !original_url.blank?
69
- size_hash[size.to_s].source if size_hash.has_key? size.to_s
70
- else
71
- key = "_#{size_key(size.to_sym)}"
72
- key = "" if key == "_"
73
- "http://farm#{farm}.static.flickr.com/#{server}/#{id}_#{secret}#{key}.jpg"
74
- end
57
+ # It turns out that flickr always stores all the sizes of the picture even when getSizes call returns otherwise.
58
+ # Not calling getSizes is also very important for performance reasons.
59
+ # Retrieving 30 search results means calling the API 31 times if you call getSizes every time.
60
+ # Mind that you still need to call getSizes if you go out for the original image.
61
+ if size == :original
62
+ return original_url if respond_to?(:original_url) and !original_url.blank?
63
+ size_hash[size.to_s].source if size_hash.has_key? size.to_s
64
+ else
65
+ key = "_#{size_key(size.to_sym)}"
66
+ key = "" if key == "_"
67
+ "http://farm#{farm}.static.flickr.com/#{server}/#{id}_#{secret}#{key}.jpg"
68
+ end
75
69
  end
70
+ alias :url :image_url
76
71
 
77
72
  def photopage_url
78
- # Keeping the same convention as image_url (foo_url)
79
- url_photopage
73
+ # Keeping the same convention as image_url (foo_url)
74
+ url_photopage
80
75
  end
81
76
 
82
77
  def video_url
@@ -203,16 +198,6 @@ class Flickr::Photos::Photo
203
198
  @flickr.send_request('flickr.photos.licenses.setLicense', {:photo_id => self.id, :license_id => license_id}, :post)
204
199
  true
205
200
  end
206
-
207
- def description # :nodoc:
208
- attach_info
209
- @description
210
- end
211
-
212
- def original_secret # :nodoc:
213
- attach_info
214
- @original_secret
215
- end
216
201
 
217
202
  def public?
218
203
  is_public == "1"
@@ -225,21 +210,6 @@ class Flickr::Photos::Photo
225
210
  def family?
226
211
  is_family == "1"
227
212
  end
228
-
229
- def owner_username # :nodoc:
230
- attach_info
231
- @owner_username
232
- end
233
-
234
- def owner_realname # :nodoc:
235
- attach_info
236
- @owner_realname
237
- end
238
-
239
- def url_photopage # :nodoc:
240
- attach_info
241
- @url_photopage
242
- end
243
213
 
244
214
  def comments # :nodoc:
245
215
  @comments ||= begin
@@ -277,9 +247,11 @@ class Flickr::Photos::Photo
277
247
  end
278
248
  end
279
249
 
280
- def notes # :nodoc:
281
- attach_info
282
- @notes
250
+ def method_missing(method, *args, &block)
251
+ if [:description, :original_secret, :owner_username, :owner_realname, :url_photopage, :notes].include?(method.to_sym)
252
+ @attach_info ||= attach_info
253
+ return @attach_info[method.to_sym]
254
+ end
283
255
  end
284
256
 
285
257
  protected
@@ -311,29 +283,28 @@ class Flickr::Photos::Photo
311
283
 
312
284
  # loads photo info when a field is requested that requires additional info
313
285
  def attach_info
314
- unless self.info_added
315
- rsp = @flickr.send_request('flickr.photos.getInfo', :photo_id => self.id, :secret => self.secret)
316
-
317
- self.info_added = true
318
- self.description = rsp.photo.description.to_s.strip
319
- self.original_secret = rsp.photo[:originalsecret]
320
- self.owner_username = rsp.photo.owner[:username]
321
- self.owner_realname = rsp.photo.owner[:realname]
322
- self.url_photopage = rsp.photo.urls.url.to_s
323
- self.comment_count = rsp.photo.comments.to_s.to_i
286
+ rsp = @flickr.send_request('flickr.photos.getInfo', :photo_id => self.id, :secret => self.secret)
324
287
 
325
- self.notes = []
326
-
327
- rsp.photo.notes.note.each do |note|
328
- self.notes << Flickr::Photos::Note.new(:id => note[:id],
329
- :note => note.to_s,
330
- :author => note[:author],
331
- :author_name => note[:authorname],
332
- :x => note[:x],
333
- :y => note[:y],
334
- :width => note[:w],
335
- :height => note[:h])
336
- end if rsp.photo.notes.note
288
+ if rsp.photo.notes.note
289
+ notes = rsp.photo.notes.note.collect do |note|
290
+ Flickr::Photos::Note.new(:id => note[:id],
291
+ :note => note.to_s,
292
+ :author => note[:author],
293
+ :author_name => note[:authorname],
294
+ :x => note[:x],
295
+ :y => note[:y],
296
+ :width => note[:w],
297
+ :height => note[:h])
298
+ end
337
299
  end
300
+ return {
301
+ :description => rsp.photo.description.to_s.strip,
302
+ :original_secret => rsp.photo[:originalsecret],
303
+ :owner_username => rsp.photo.owner[:username],
304
+ :owner_realname => rsp.photo.owner[:realname],
305
+ :url_photopage => rsp.photo.urls.url.to_s,
306
+ :comment_count => rsp.photo.comments.to_s.to_i,
307
+ :notes => notes
308
+ }
338
309
  end
339
310
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tomk32-flickr_fu}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ben Wyrosdick", "Maciej Bilas", "Thomas R. Koll"]
12
- s.date = %q{2010-04-18}
12
+ s.date = %q{2010-04-22}
13
13
  s.description = %q{Provides a ruby interface to flickr via the REST api}
14
14
  s.email = %q{tomk32@gmx.de}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 2
9
- version: 0.3.2
8
+ - 3
9
+ version: 0.3.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ben Wyrosdick
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-04-18 00:00:00 +02:00
19
+ date: 2010-04-22 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency