tomk32-flickr_fu 0.3.2 → 0.3.3

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