Class: SimpleAttribute::Attributes::Avatar

Inherits:
Base
  • Object
show all
Defined in:
lib/simple_attribute/attributes/avatar.rb

Instance Attribute Summary

Attributes inherited from Base

#attribute, #options, #record, #value

Instance Method Summary collapse

Methods inherited from Base

#default_value, #defaults, #html_options, #initialize, #label_method, #method_missing, #render, #render_default_value, #render_with_default, #render_wrapper, #renderer_name, #value?, #wrapper, #wrapper?, #wrapper_html

Constructor Details

This class inherits a constructor from SimpleAttribute::Attributes::Base

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class SimpleAttribute::Attributes::Base

Instance Method Details

#attribute_nameObject

Attribute name



5
6
7
# File 'lib/simple_attribute/attributes/avatar.rb', line 5

def attribute_name
  'avatar'
end

#custom_avatarObject

Get custom avatar



21
22
23
24
# File 'lib/simple_attribute/attributes/avatar.rb', line 21

def custom_avatar
  attribute = options.fetch :avatar, nil
  record.try attribute if attribute
end

#gravatarObject

Get gravatar



15
16
17
18
# File 'lib/simple_attribute/attributes/avatar.rb', line 15

def gravatar
  hash = Digest::MD5::hexdigest(value)
  "https://www.gravatar.com/avatar/#{hash}?rating=PG&size=#{size}&default=mm"
end

#render_attributeObject

Render attribute



27
28
29
30
31
32
33
# File 'lib/simple_attribute/attributes/avatar.rb', line 27

def render_attribute
  avatar  = custom_avatar || gravatar
  classes = "#{html_options[:class]} avatar-image".strip
  options = html_options.merge({ class: classes, width: size, height: size })

  image_tag avatar, options
end

#sizeObject

Image size



10
11
12
# File 'lib/simple_attribute/attributes/avatar.rb', line 10

def size
  options.fetch :size, 19
end