Class: NounProjectApi::Icon

Inherits:
Object
  • Object
show all
Defined in:
lib/noun-project-api/icon.rb

Overview

A single Icon as an abstracted ruby object.

Constant Summary collapse

PREVIEW_SIZE_200 =
200
PREVIEW_SIZE_42 =
42
PREVIEW_SIZE_84 =
84
PUBLIC_DOMAIN_LICENSE =
'public-domain'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(origin) ⇒ Icon

Returns a new instance of Icon.



12
13
14
15
16
17
# File 'lib/noun-project-api/icon.rb', line 12

def initialize(origin)
  origin = JSON.parse(origin) if origin.is_a? String
  origin = origin.delete('icon') if origin.key? 'icon'

  @original_hash = origin
end

Instance Attribute Details

#original_hashObject

Returns the value of attribute original_hash.



10
11
12
# File 'lib/noun-project-api/icon.rb', line 10

def original_hash
  @original_hash
end

Instance Method Details

#idObject



19
20
21
# File 'lib/noun-project-api/icon.rb', line 19

def id
  original_hash['id'].to_i
end

#preview_url(size = PREVIEW_SIZE_200) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/noun-project-api/icon.rb', line 31

def preview_url(size = PREVIEW_SIZE_200)
  if size == PREVIEW_SIZE_200
    original_hash['preview_url']
  else
    original_hash["preview_url_#{size}"]
  end
end

#public_domain?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/noun-project-api/icon.rb', line 23

def public_domain?
  original_hash['license_description'] == PUBLIC_DOMAIN_LICENSE
end

#svg_urlObject



27
28
29
# File 'lib/noun-project-api/icon.rb', line 27

def svg_url
  original_hash['icon_url']
end

#to_hashObject



39
40
41
42
43
44
45
46
# File 'lib/noun-project-api/icon.rb', line 39

def to_hash
  {
    id: id,
    preview_url_200: preview_url(PREVIEW_SIZE_200),
    preview_url_84: preview_url(PREVIEW_SIZE_84),
    preview_url_42: preview_url(PREVIEW_SIZE_42)
  }
end

#to_jsonObject



48
49
50
# File 'lib/noun-project-api/icon.rb', line 48

def to_json
  JSON.dump(to_hash)
end