flickr-objects 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/README.md +55 -85
  2. data/lib/flickr/api/api_methods/flickr.rb +0 -1
  3. data/lib/flickr/api/api_methods/person.rb +3 -3
  4. data/lib/flickr/api/api_methods/photo.rb +12 -1
  5. data/lib/flickr/api/api_methods/set.rb +6 -5
  6. data/lib/flickr/api/flickr.rb +9 -9
  7. data/lib/flickr/api/person.rb +13 -29
  8. data/lib/flickr/api/photo.rb +51 -4
  9. data/lib/flickr/api/set.rb +20 -25
  10. data/lib/flickr/api/upload_ticket.rb +4 -2
  11. data/lib/flickr/api.rb +0 -2
  12. data/lib/flickr/api_caller.rb +5 -11
  13. data/lib/flickr/client/upload_client.rb +4 -16
  14. data/lib/flickr/client.rb +1 -1
  15. data/lib/flickr/configuration.rb +2 -0
  16. data/lib/flickr/errors.rb +19 -0
  17. data/lib/flickr/middleware.rb +63 -0
  18. data/lib/flickr/oauth.rb +109 -0
  19. data/lib/flickr/object/attribute/finder.rb +2 -2
  20. data/lib/flickr/object/attribute.rb +8 -8
  21. data/lib/flickr/object.rb +13 -2
  22. data/lib/flickr/objects/attribute_values/{collection.rb → list.rb} +1 -1
  23. data/lib/flickr/objects/attribute_values/photo.rb +81 -16
  24. data/lib/flickr/objects/attribute_values/set.rb +1 -5
  25. data/lib/flickr/objects/attribute_values/upload_ticket.rb +3 -5
  26. data/lib/flickr/objects/list.rb +86 -0
  27. data/lib/flickr/objects/location.rb +2 -0
  28. data/lib/flickr/objects/note.rb +3 -1
  29. data/lib/flickr/objects/permissions.rb +2 -0
  30. data/lib/flickr/objects/person.rb +8 -5
  31. data/lib/flickr/objects/photo.rb +98 -30
  32. data/lib/flickr/objects/set.rb +4 -5
  33. data/lib/flickr/objects/tag.rb +2 -0
  34. data/lib/flickr/objects/upload_ticket.rb +8 -6
  35. data/lib/flickr/objects/visibility.rb +2 -0
  36. data/lib/flickr/objects.rb +2 -7
  37. data/lib/flickr/version.rb +1 -1
  38. data/lib/flickr.rb +5 -0
  39. metadata +60 -32
  40. data/lib/flickr/api/api_methods/collection.rb +0 -4
  41. data/lib/flickr/api/api_methods/location.rb +0 -4
  42. data/lib/flickr/api/api_methods/media.rb +0 -14
  43. data/lib/flickr/api/api_methods/note.rb +0 -4
  44. data/lib/flickr/api/api_methods/permissions.rb +0 -4
  45. data/lib/flickr/api/api_methods/tag.rb +0 -4
  46. data/lib/flickr/api/api_methods/video.rb +0 -4
  47. data/lib/flickr/api/api_methods/visibility.rb +0 -4
  48. data/lib/flickr/api/collection.rb +0 -4
  49. data/lib/flickr/api/location.rb +0 -4
  50. data/lib/flickr/api/media.rb +0 -52
  51. data/lib/flickr/api/note.rb +0 -4
  52. data/lib/flickr/api/permissions.rb +0 -4
  53. data/lib/flickr/api/tag.rb +0 -4
  54. data/lib/flickr/api/video.rb +0 -11
  55. data/lib/flickr/api/visibility.rb +0 -4
  56. data/lib/flickr/client/middleware/retry.rb +0 -29
  57. data/lib/flickr/client/middleware.rb +0 -42
  58. data/lib/flickr/helpers/inheritable_attr_accessor.rb +0 -18
  59. data/lib/flickr/objects/attribute_values/media.rb +0 -70
  60. data/lib/flickr/objects/attribute_values/video.rb +0 -27
  61. data/lib/flickr/objects/collection.rb +0 -56
  62. data/lib/flickr/objects/media.rb +0 -72
  63. data/lib/flickr/objects/video.rb +0 -21
@@ -1,45 +1,113 @@
1
+ require_relative "attribute_values/photo"
2
+ require "flickr/api/photo"
3
+ require "flickr/helpers/base_58"
4
+
1
5
  class Flickr
2
- class Photo < Media
3
-
4
- attribute :rotation, Integer
5
-
6
- attribute :source_url, String
7
- attribute :height, Integer
8
- attribute :width, Integer
9
-
10
- # This creates size methods. For example:
11
- #
12
- # small_photo = photo.square150
13
- # small_photo.size #=> "Square 150"
14
- # small_photo.source_url #=> URL to the "Square 150" version
15
- #
16
- # You can also put the number in the parameter, if you like that version better:
17
- #
18
- # photo.square(150)
19
- # photo.square("150")
20
- #
21
- # You also get the bang versions, which change the receiver:
22
- #
23
- # photo.square150!
24
- # photo.square!(150)
25
- #
6
+ class Photo < Object
7
+
8
+ attribute :id, String
9
+ attribute :secret, String
10
+ attribute :server, String
11
+ attribute :farm, Integer
12
+ attribute :title, String
13
+ attribute :description, String
14
+ attribute :license, Integer
15
+ attribute :visibility, Visibility
16
+ attribute :safety_level, Integer
17
+
18
+ attribute :owner, Person
19
+
20
+ attribute :uploaded_at, Time
21
+ attribute :posted_at, Time
22
+ attribute :taken_at, Time
23
+ attribute :taken_at_granularity, Integer
24
+ attribute :updated_at, Time
25
+
26
+ attribute :views_count, Integer
27
+ attribute :comments_count, Integer
28
+
29
+ attribute :editability, Permissions
30
+ attribute :public_editability, Permissions
31
+ attribute :usage, Permissions
32
+
33
+ attribute :notes, Array[Note]
34
+ attribute :tags, Array[Tag]
35
+
36
+ attribute :has_people?, Boolean
37
+ attribute :favorite?, Boolean
38
+
39
+ attribute :path_alias, String
40
+
41
+ attribute :location, Location
42
+ attribute :location_visibility, Visibility
43
+
44
+ attribute :rotation, Integer
45
+
46
+ attribute :largest_size, String
47
+ attribute :available_sizes, Array[String]
48
+
49
+ attribute :source_url, String
50
+ attribute :height, Integer
51
+ attribute :width, Integer
52
+
53
+ def safe?; safety_level <= 1 end
54
+ def moderate?; safety_level == 2 end
55
+ def restricted?; safety_level == 3 end
56
+
57
+ def url
58
+ "http://www.flickr.com/photos/#{owner.id}/#{id}/" if owner
59
+ end
60
+
61
+ include Base58
62
+ def short_url
63
+ "http://flic.kr/p/#{to_base58(id)}"
64
+ end
65
+
66
+ SIZES = {
67
+ "Square 75" => "sq",
68
+ "Thumbnail" => "t",
69
+ "Square 150" => "q",
70
+ "Small 240" => "s",
71
+ "Small 320" => "n",
72
+ "Medium 500" => "m",
73
+ "Medium 640" => "z",
74
+ "Medium 800" => "c",
75
+ "Large 1024" => "l",
76
+ "Large 1600" => "h",
77
+ "Large 2048" => "k",
78
+ "Original" => "o"
79
+ }
80
+
81
+ attr_reader :size
82
+
26
83
  SIZES.keys.each do |size|
27
84
  size_name, size_number = size.split(" ").map(&:downcase)
28
85
 
29
86
  define_method("#{size_name}#{size_number}!") { @size = size; self }
30
- define_method("#{size_name}#{size_number}") { dup.send("#{size_name}#{size_number}!") }
87
+ define_method("#{size_name}#{size_number}") { dup.send("#{__method__}!") }
31
88
 
32
89
  if size_number
33
- define_method("#{size_name}!") {|size_number| send("#{size_name}#{size_number}!") }
34
- define_method("#{size_name}") {|size_number| send("#{size_name}#{size_number}") }
90
+ define_method("#{size_name}!") { |size_number| send("#{size_name}#{size_number}!") }
91
+ define_method("#{size_name}") { |size_number| send("#{size_name}#{size_number}") }
35
92
  end
36
- end
37
93
 
38
- def size
39
- @size
94
+ define_method("#{size_name}#{size_number}_or_smaller!") do
95
+ sizes = SIZES.keys.reverse.drop_while { |s| s != size }
96
+ @size = sizes.find { |s| @hash["url_#{SIZES[s]}"] }
97
+ self
98
+ end
99
+ define_method("#{size_name}#{size_number}_or_smaller") { dup.send("#{__method__}!") }
100
+
101
+ define_method("#{size_name}#{size_number}_at_least!") do
102
+ sizes = SIZES.keys.drop_while { |s| s != size }.reverse
103
+ @size = sizes.find { |s| @hash["url_#{SIZES[s]}"] }
104
+ self
105
+ end
106
+ define_method("#{size_name}#{size_number}_at_least") { dup.send("#{__method__}!") }
40
107
  end
41
108
 
42
109
  def largest!; @size = largest_size; self end
43
110
  def largest; dup.largest! end
111
+
44
112
  end
45
113
  end
@@ -1,3 +1,6 @@
1
+ require_relative "attribute_values/set"
2
+ require "flickr/api/set"
3
+
1
4
  class Flickr
2
5
  class Set < Object
3
6
 
@@ -11,20 +14,16 @@ class Flickr
11
14
 
12
15
  attribute :owner, Person
13
16
 
14
- attribute :media_count, Integer
17
+ attribute :photos_count, Integer
15
18
  attribute :views_count, Integer
16
19
  attribute :comments_count, Integer
17
- attribute :photos_count, Integer
18
- attribute :videos_count, Integer
19
20
 
20
21
  attribute :permissions, Permissions
21
22
 
22
23
  attribute :created_at, Time
23
24
  attribute :updated_at, Time
24
25
 
25
- attribute :primary_media, Media
26
26
  attribute :primary_photo, Photo
27
- attribute :primary_video, Video
28
27
 
29
28
  end
30
29
  end
@@ -1,3 +1,5 @@
1
+ require_relative "attribute_values/tag"
2
+
1
3
  class Flickr
2
4
  class Tag < Object
3
5
 
@@ -1,16 +1,18 @@
1
+ require_relative "attribute_values/upload_ticket"
2
+ require "flickr/api/upload_ticket"
3
+
1
4
  class Flickr
2
5
  class UploadTicket < Object
3
6
 
4
- attribute :id, String
5
- attribute :status, Integer
6
- attribute :invalid?, Boolean
7
+ attribute :id, String
8
+ attribute :status, Integer
9
+ attribute :invalid, Integer
7
10
 
8
- attribute :media, Media
9
- attribute :photo, Photo
10
- attribute :video, Video
11
+ attribute :photo, Photo
11
12
 
12
13
  def complete?; status == 1 end
13
14
  def failed?; status == 2 end
14
15
 
16
+ def invalid?; invalid == 1 end
15
17
  end
16
18
  end
@@ -1,3 +1,5 @@
1
+ require_relative "attribute_values/visibility"
2
+
1
3
  class Flickr
2
4
  class Visibility < Object
3
5
 
@@ -3,9 +3,7 @@ require "flickr/object"
3
3
  class Flickr
4
4
  # Official objects
5
5
  class Person < Object; end
6
- class Media < Object; end
7
- class Photo < Media; end
8
- class Video < Media; end
6
+ class Photo < Object; end
9
7
  class Set < Object; end
10
8
 
11
9
  # Meta objects
@@ -16,14 +14,11 @@ class Flickr
16
14
  class Location < Object; end
17
15
  class UploadTicket < Object; end
18
16
 
19
- class Collection < Object; end
17
+ autoload :List, "flickr/objects/list"
20
18
  end
21
19
 
22
20
  objects = Flickr::Object.children.dup
23
21
  objects.each do |object|
24
22
  underscored_name = object.name.split("::").last.split(/(?<=\w)(?=[A-Z])/).map(&:downcase).join("_")
25
23
  require "flickr/objects/#{underscored_name}"
26
- require "flickr/objects/attribute_values/#{underscored_name}"
27
- require "flickr/api/#{underscored_name}"
28
- require "flickr/api/api_methods/#{underscored_name}"
29
24
  end
@@ -1,3 +1,3 @@
1
1
  class Flickr
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/flickr.rb CHANGED
@@ -15,7 +15,12 @@ class Flickr
15
15
  def self.api_methods
16
16
  @api_methods ||= Hash.new { |hash, key| hash[key] = [] }
17
17
  end
18
+
19
+ def self.deprecation_warn(message)
20
+ warn "[FLICKR OBJECTS] #{message}"
21
+ end
18
22
  end
19
23
 
20
24
  require "flickr/objects"
21
25
  require "flickr/api"
26
+ require "flickr/oauth"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flickr-objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-16 00:00:00.000000000 Z
12
+ date: 2012-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
- version: '2.0'
101
+ version: '2'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
- version: '2.0'
109
+ version: '2'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: vcr
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
- version: '2.0'
117
+ version: '2'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
- version: '2.0'
125
+ version: '2'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rack-test
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +139,54 @@ dependencies:
139
139
  - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: activesupport
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '3'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '3'
158
+ - !ruby/object:Gem::Dependency
159
+ name: will_paginate
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '3'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '3'
174
+ - !ruby/object:Gem::Dependency
175
+ name: kaminari
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0.14'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0.14'
142
190
  description: This gem is an object-oriented wrapper for the Flickr API.
143
191
  email:
144
192
  - janko.marohnic@gmail.com
@@ -148,51 +196,34 @@ extra_rdoc_files: []
148
196
  files:
149
197
  - README.md
150
198
  - LICENSE
151
- - lib/flickr/api/api_methods/collection.rb
152
199
  - lib/flickr/api/api_methods/flickr.rb
153
- - lib/flickr/api/api_methods/location.rb
154
- - lib/flickr/api/api_methods/media.rb
155
- - lib/flickr/api/api_methods/note.rb
156
- - lib/flickr/api/api_methods/permissions.rb
157
200
  - lib/flickr/api/api_methods/person.rb
158
201
  - lib/flickr/api/api_methods/photo.rb
159
202
  - lib/flickr/api/api_methods/set.rb
160
- - lib/flickr/api/api_methods/tag.rb
161
203
  - lib/flickr/api/api_methods/upload_ticket.rb
162
- - lib/flickr/api/api_methods/video.rb
163
- - lib/flickr/api/api_methods/visibility.rb
164
- - lib/flickr/api/collection.rb
165
204
  - lib/flickr/api/flickr.rb
166
- - lib/flickr/api/location.rb
167
- - lib/flickr/api/media.rb
168
- - lib/flickr/api/note.rb
169
- - lib/flickr/api/permissions.rb
170
205
  - lib/flickr/api/person.rb
171
206
  - lib/flickr/api/photo.rb
172
207
  - lib/flickr/api/set.rb
173
- - lib/flickr/api/tag.rb
174
208
  - lib/flickr/api/upload_ticket.rb
175
- - lib/flickr/api/video.rb
176
- - lib/flickr/api/visibility.rb
177
209
  - lib/flickr/api.rb
178
210
  - lib/flickr/api_caller.rb
179
211
  - lib/flickr/client/methods_client.rb
180
- - lib/flickr/client/middleware/retry.rb
181
- - lib/flickr/client/middleware.rb
182
212
  - lib/flickr/client/upload_client.rb
183
213
  - lib/flickr/client.rb
184
214
  - lib/flickr/configuration.rb
215
+ - lib/flickr/errors.rb
185
216
  - lib/flickr/helpers/base_58.rb
186
217
  - lib/flickr/helpers/boolean.rb
187
218
  - lib/flickr/helpers/core_ext.rb
188
- - lib/flickr/helpers/inheritable_attr_accessor.rb
219
+ - lib/flickr/middleware.rb
220
+ - lib/flickr/oauth.rb
189
221
  - lib/flickr/object/attribute/converter.rb
190
222
  - lib/flickr/object/attribute/finder.rb
191
223
  - lib/flickr/object/attribute.rb
192
224
  - lib/flickr/object.rb
193
- - lib/flickr/objects/attribute_values/collection.rb
225
+ - lib/flickr/objects/attribute_values/list.rb
194
226
  - lib/flickr/objects/attribute_values/location.rb
195
- - lib/flickr/objects/attribute_values/media.rb
196
227
  - lib/flickr/objects/attribute_values/note.rb
197
228
  - lib/flickr/objects/attribute_values/permissions.rb
198
229
  - lib/flickr/objects/attribute_values/person.rb
@@ -200,11 +231,9 @@ files:
200
231
  - lib/flickr/objects/attribute_values/set.rb
201
232
  - lib/flickr/objects/attribute_values/tag.rb
202
233
  - lib/flickr/objects/attribute_values/upload_ticket.rb
203
- - lib/flickr/objects/attribute_values/video.rb
204
234
  - lib/flickr/objects/attribute_values/visibility.rb
205
- - lib/flickr/objects/collection.rb
235
+ - lib/flickr/objects/list.rb
206
236
  - lib/flickr/objects/location.rb
207
- - lib/flickr/objects/media.rb
208
237
  - lib/flickr/objects/note.rb
209
238
  - lib/flickr/objects/permissions.rb
210
239
  - lib/flickr/objects/person.rb
@@ -212,7 +241,6 @@ files:
212
241
  - lib/flickr/objects/set.rb
213
242
  - lib/flickr/objects/tag.rb
214
243
  - lib/flickr/objects/upload_ticket.rb
215
- - lib/flickr/objects/video.rb
216
244
  - lib/flickr/objects/visibility.rb
217
245
  - lib/flickr/objects.rb
218
246
  - lib/flickr/version.rb
@@ -239,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
267
  version: '0'
240
268
  segments:
241
269
  - 0
242
- hash: -2444191243502827259
270
+ hash: -330563932466293642
243
271
  requirements: []
244
272
  rubyforge_project:
245
273
  rubygems_version: 1.8.23
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Collection < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Location < Object
3
- end
4
- end
@@ -1,14 +0,0 @@
1
- class Flickr
2
- class Media < Object
3
- class_api_method :get_from_contacts, "flickr.photos.getContactsPhotos"
4
- class_api_method :search, "flickr.photos.search"
5
-
6
- instance_api_method :add_tags, "flickr.photos.addTags"
7
- instance_api_method :delete, "flickr.photos.delete"
8
- instance_api_method :get_info!, "flickr.photos.getInfo"
9
- instance_api_method :get_sizes!, "flickr.photos.getSizes"
10
- instance_api_method :remove_tag, "flickr.photos.removeTag"
11
- instance_api_method :set_content_type, "flickr.photos.setContentType", aliases: [:content_type=]
12
- instance_api_method :set_tags, "flickr.photos.setTags", aliases: [:tags=]
13
- end
14
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Note < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Permissions < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Tag < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Video < Media
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Visibility < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Collection < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Location < Object
3
- end
4
- end
@@ -1,52 +0,0 @@
1
- class Flickr
2
- class Media < Object
3
- def add_tags(tags, params = {})
4
- client.post flickr_method(__method__), params.merge(photo_id: id, tags: tags)
5
- tags
6
- end
7
-
8
- def delete(params = {})
9
- client.post flickr_method(__method__), params.merge(photo_id: id)
10
- self
11
- end
12
-
13
- def self.get_from_contacts(params = {})
14
- response = client.get flickr_method(__method__), handle_extras(params)
15
- Collection.new(response["photos"].delete("photo"), Media, response["photos"], client)
16
- end
17
-
18
- def get_info!(params = {})
19
- response = client.get flickr_method(__method__), params.merge(photo_id: id)
20
- @hash.update(response["photo"])
21
- self
22
- end
23
-
24
- def get_sizes!(params = {})
25
- response = client.get flickr_method(__method__), params.merge(photo_id: id)
26
- @hash.update(response["sizes"])
27
- self
28
- end
29
-
30
- def remove_tag(tag_id, params = {})
31
- client.post flickr_method(__method__), params.merge(photo_id: id, tag_id: tag_id)
32
- tag_id
33
- end
34
-
35
- def self.search(params = {})
36
- response = client.get flickr_method(__method__), handle_extras(params)
37
- Collection.new(response["photos"].delete("photo"), self, response["photos"], client)
38
- end
39
-
40
- def set_content_type(content_type, params = {})
41
- client.post flickr_method(__method__), params.merge(photo_id: id, content_type: content_type)
42
- content_type
43
- end
44
- alias content_type= set_content_type
45
-
46
- def set_tags(tags, params = {})
47
- client.post flickr_method(__method__), params.merge(photo_id: id, tags: tags)
48
- tags
49
- end
50
- alias tags= set_tags
51
- end
52
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Note < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Permissions < Object
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Tag < Object
3
- end
4
- end
@@ -1,11 +0,0 @@
1
- class Flickr
2
- class Video < Media
3
- def self.get_from_contacts(params = {})
4
- super(params).select { |media| media.is_a?(self) }
5
- end
6
-
7
- def self.search(params = {})
8
- super(params.merge(media: "videos"))
9
- end
10
- end
11
- end
@@ -1,4 +0,0 @@
1
- class Flickr
2
- class Visibility < Object
3
- end
4
- end
@@ -1,29 +0,0 @@
1
- class Flickr
2
- class Client < Faraday::Connection
3
- module Middleware
4
- class Retry < Faraday::Middleware
5
- def initialize(app, options = {})
6
- super(app)
7
- @retries, options = options, {} if options.is_a? Integer
8
- @retries ||= options.fetch(:max, 2).to_i
9
- @sleep = options.fetch(:interval, 0).to_f
10
- @errmatch = options.fetch(:exceptions) { [Errno::ETIMEDOUT, 'Timeout::Error', Faraday::Error::TimeoutError] }
11
- end
12
-
13
- def call(env)
14
- retries = @retries
15
- begin
16
- @app.call(env)
17
- rescue *@errmatch
18
- if retries > 0
19
- retries -= 1
20
- sleep @sleep if @sleep > 0
21
- retry
22
- end
23
- raise
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end