Class: Giddy::Image
- Inherits:
-
Object
show all
- Defined in:
- lib/giddy/image.rb
Instance Method Summary
collapse
Constructor Details
#initialize(attrs, mediator) ⇒ Image
Returns a new instance of Image.
5
6
7
8
|
# File 'lib/giddy/image.rb', line 5
def initialize(attrs, mediator)
@attrs = Utils.rubified_hash(attrs)
@mediator = mediator
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
10
11
12
|
# File 'lib/giddy/image.rb', line 10
def method_missing(method, *args, &block)
@attrs.fetch(method, nil)
end
|
Instance Method Details
#date_created ⇒ Object
47
48
49
|
# File 'lib/giddy/image.rb', line 47
def date_created
parse_date @attrs[:date_created]
end
|
#date_submitted ⇒ Object
51
52
53
|
# File 'lib/giddy/image.rb', line 51
def date_submitted
parse_date @attrs[:date_submitted]
end
|
#download(size) ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/giddy/image.rb', line 23
def download(size)
sizekey = size[:size_key]
result = downloader.get_image_download_authorizations(@attrs[:image_id], [sizekey])
auths = result[sizekey][:authorizations]
raise ImageDownloadError, "No authorizations available." if auths.length == 0
download_request auths.first[:download_token]
end
|
#download_largest ⇒ Object
41
42
43
44
45
|
# File 'lib/giddy/image.rb', line 41
def download_largest
authorizations = largest_available[:authorizations]
return nil if authorizations.length == 0
download_request authorizations.first[:download_token]
end
|
#download_request(token) ⇒ Object
36
37
38
39
|
# File 'lib/giddy/image.rb', line 36
def download_request(token)
result = downloader.create_download_request(token)
result[@attrs[:image_id]]
end
|
#downloader ⇒ Object
14
15
16
|
# File 'lib/giddy/image.rb', line 14
def downloader
@downloader ||= Download.new(@mediator)
end
|
#largest_available ⇒ Object
31
32
33
34
|
# File 'lib/giddy/image.rb', line 31
def largest_available
result = downloader.get_largest_image_download_authorizations(@attrs[:image_id])
result[@attrs[:image_id]]
end
|
#sizes ⇒ Object
return sorted sizes, smallest to largest
19
20
21
|
# File 'lib/giddy/image.rb', line 19
def sizes
sizes_downloadable_images.sort { |a,b| a[:file_size_in_bytes] <=> b[:file_size_in_bytes] }
end
|
#to_s ⇒ Object
55
56
57
58
|
# File 'lib/giddy/image.rb', line 55
def to_s
as = @attrs.map { |k,v| "#{k}=#{v}" }.join(", ")
"<Image #{as}>"
end
|