imgur-api 0.0.3 → 0.0.4

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/imgur.rb +60 -70
  3. data/lib/imgur/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad27004a0d4a63b33b0211d7a98586b438fce233
4
- data.tar.gz: 7e8c5707cb4fc22d4cd7aaf6986b5ecc5a7b2e31
3
+ metadata.gz: 7e9301fd3fdf16aa48bfbdefb3c64d70e992e2a3
4
+ data.tar.gz: 4cec4b4ee92dc2a8e834a5f92c84d94637c7b1cd
5
5
  SHA512:
6
- metadata.gz: 1a42d55320b3e61b9e41dff0a6ab9a4dcdcc9309680d2282f67122ca69dad119cdee15199beb7e4e8bb2988ed85e0c8459e4af092f39dfc76d5456fbe99b79df
7
- data.tar.gz: 6e78280d62ba7f905bb08cd6915375850b1eea84f8a5c69a246793757965ad2b6e43837a78dfced7eaec44a87cd5e2a7d28f3eb23053d9f2109dd4cdae9f710a
6
+ metadata.gz: c4d1e25879fbbd72ce1430ca523514bfe8e98a948a67b63f4f238f942ebbcaaeb1d67a52adc7288cd58333e51871a4026753b9aca86ce13c0eeb0b678a441bb9
7
+ data.tar.gz: 9a8bdef60a68bf338b3481ebcd95e0e9a1420a669413ea0fdc9e1814a0217ba3eb3ab14465a72c450e8e28a0b8ee066d003c874963926a24e1554eb2a890e29d
@@ -42,14 +42,18 @@ module Imgur
42
42
  resp = get(url).parsed_response
43
43
  Album.new resp['data']
44
44
  end
45
-
45
+
46
46
  def get_account(username)
47
47
  url = API_PATH + ACCOUNT_PATH + username
48
48
  resp = get(url).parsed_response
49
49
  # The Imgur API doesn't send the username back
50
50
  Account.new resp['data'], username
51
51
  end
52
-
52
+
53
+ def update_album(album)
54
+ album.update self
55
+ end
56
+
53
57
  def me
54
58
  get_account 'me'
55
59
  end
@@ -99,16 +103,10 @@ module Imgur
99
103
  end
100
104
 
101
105
  end
102
-
106
+
103
107
  class Account
104
- attr_accessor :id
105
- attr_accessor :url
106
- attr_accessor :bio
107
- attr_accessor :reputation
108
- attr_accessor :created
109
- attr_accessor :pro_expiration
110
- attr_accessor :username
111
-
108
+ attr_accessor :id, :url, :bio, :reputation, :created, :pro_expiration,
109
+ :username
112
110
  def initialize(data, username=nil)
113
111
  @id = data['id']
114
112
  @url = data['url']
@@ -120,25 +118,13 @@ module Imgur
120
118
  end
121
119
  @username = username
122
120
  end
123
-
121
+
124
122
  end
125
-
123
+
126
124
  class Comment
127
- attr_accessor :id
128
- attr_accessor :image_id
129
- attr_accessor :caption
130
- attr_accessor :author
131
- attr_accessor :author
132
- attr_accessor :author_id
133
- attr_accessor :on_album
134
- attr_accessor :ups
135
- attr_accessor :downs
136
- attr_accessor :points
137
- attr_accessor :date
138
- attr_accessor :parent_id
139
- attr_accessor :deleted
140
- attr_accessor :children
141
-
125
+ attr_accessor :id, :image_id, :caption, :author, :author_id, :on_album, :ups,
126
+ :downs, :points, :date, :parent_id, :deleted, :children
127
+
142
128
  def initialize(data)
143
129
  @id = data['id']
144
130
  @image_id = data['image_id']
@@ -153,44 +139,32 @@ module Imgur
153
139
  @parent_id = data['parent_id']
154
140
  @deleted = deleted
155
141
  end
156
-
142
+
157
143
  def on_album?
158
144
  @on_album
159
145
  end
160
-
146
+
161
147
  def upvotes
162
148
  @ups
163
149
  end
164
-
150
+
165
151
  def downvotes
166
152
  @downs
167
153
  end
168
-
154
+
169
155
  def has_parent?
170
156
  @parent_id != nil
171
157
  end
172
-
158
+
173
159
  def deleted?
174
160
  @deleted
175
161
  end
176
162
  end
177
163
 
178
164
  class Album
179
- attr_accessor :id
180
- attr_accessor :title
181
- attr_accessor :description
182
- attr_accessor :date
183
- attr_accessor :cover
184
- attr_accessor :cover_width
185
- attr_accessor :cover_height
186
- attr_accessor :account_url
187
- attr_accessor :privacy
188
- attr_accessor :layout
189
- attr_accessor :views
190
- attr_accessor :link
191
- attr_accessor :deletehash
192
- attr_accessor :images_count
193
- attr_accessor :images
165
+ attr_accessor :id, :title, :description, :date, :cover, :cover_width,
166
+ :cover_height, :account_url, :privacy, :layout, :views,
167
+ :link, :deletehash, :images_count, :images
194
168
 
195
169
  def initialize(data)
196
170
  @id = data['id']
@@ -211,14 +185,38 @@ module Imgur
211
185
  @images << Image.new(img)
212
186
  end
213
187
  end
188
+
189
+ def update(client)
190
+ if @deletehash == nil
191
+ raise UpdateException.new 'Album must have a deletehash to update'
192
+ end
193
+ url = API_PATH + ALBUM_GET_PATH + @deletehash
194
+ image_ids = []
195
+ # Make sure we're only strings
196
+ @images.each do |img|
197
+ if img.is_a? Image
198
+ image_ids << img.id
199
+ elsif img.is_a? String
200
+ image_ids << img
201
+ end
202
+ end
203
+ body = {
204
+ ids: @images,
205
+ title: @title,
206
+ description: @description,
207
+ privacy: @privacy,
208
+ layout: @layout,
209
+ cover: @cover
210
+ }
211
+ puts body
212
+ client.post(url, body: body)
213
+ end
214
+
214
215
  end
215
216
 
216
217
  # Represents an image stored on the computer
217
218
  class LocalImage
218
- attr_accessor :file
219
- attr_accessor :title
220
- attr_accessor :description
221
- attr_accessor :album_id
219
+ attr_accessor :file, :title, :description, :album_id
222
220
 
223
221
  def initialize(file, options={})
224
222
  if file.is_a? String
@@ -235,23 +233,9 @@ module Imgur
235
233
 
236
234
  # Represents an image on Imgur
237
235
  class Image
238
- attr_accessor :id
239
- attr_accessor :title
240
- attr_accessor :description
241
- attr_accessor :date # Time object of :datetime
242
- attr_accessor :type
243
- attr_accessor :animated
244
- attr_accessor :width
245
- attr_accessor :height
246
- attr_accessor :size
247
- attr_accessor :views
248
- attr_accessor :bandwidth
249
- attr_accessor :favorite
250
- attr_accessor :nsfw
251
- attr_accessor :section
252
- attr_accessor :deletehash
253
- attr_accessor :link
254
- attr_accessor :html_link
236
+ attr_accessor :id, :title, :description, :date, :type, :animated, :width,
237
+ :height, :size, :views, :bandwidth, :favorite, :nsfw, :section,
238
+ :deletehash, :link, :html_link
255
239
 
256
240
  def initialize(data)
257
241
  @id = data['id']
@@ -277,7 +261,13 @@ module Imgur
277
261
 
278
262
  class NotFoundException < Exception
279
263
  def initialize(msg='404 Not Found')
280
- super(msg)
264
+ super msg
265
+ end
266
+ end
267
+
268
+ class UpdateException < Exception
269
+ def initialize(msg)
270
+ super msg
281
271
  end
282
272
  end
283
273
 
@@ -1,3 +1,3 @@
1
1
  module Imgur
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imgur-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - August
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-17 00:00:00.000000000 Z
11
+ date: 2014-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler