Module: GravatarImageTag

Defined in:
lib/gravatar_image_tag.rb

Defined Under Namespace

Modules: InstanceMethods Classes: Configuration

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



5
6
7
# File 'lib/gravatar_image_tag.rb', line 5

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



12
13
14
# File 'lib/gravatar_image_tag.rb', line 12

def self.configure
  yield(configuration)
end

.gravatar_id(email, filetype = nil) ⇒ Object



49
50
51
# File 'lib/gravatar_image_tag.rb', line 49

def self.gravatar_id(email, filetype = nil)
  "#{Digest::MD5.hexdigest(email)}#{".#{filetype}" unless filetype.nil?}" unless email.nil?
end

.gravatar_url(email, overrides = {}) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/gravatar_image_tag.rb', line 34

def self.gravatar_url(email, overrides = {})
  overrides ||= {}
  gravatar_params = {
    default:     GravatarImageTag.configuration.default_image,
    filetype:    GravatarImageTag.configuration.filetype,
    rating:      GravatarImageTag.configuration.rating,
    size:        GravatarImageTag.configuration.size
  }.merge(overrides).delete_if { |_key, value| value.nil? }
  "#{gravatar_url_base}/#{gravatar_id(email, gravatar_params.delete(:filetype))}#{url_params(gravatar_params)}"
end

.gravatar_url_baseObject



45
46
47
# File 'lib/gravatar_image_tag.rb', line 45

def self.gravatar_url_base
  'https://gravatar.com/avatar'
end

.included(base) ⇒ Object



20
21
22
23
# File 'lib/gravatar_image_tag.rb', line 20

def self.included(base)
  GravatarImageTag.configure { |_c| nil }
  base.send :include, InstanceMethods
end

.url_params(gravatar_params) ⇒ Object



53
54
55
56
57
# File 'lib/gravatar_image_tag.rb', line 53

def self.url_params(gravatar_params)
  return nil if gravatar_params.keys.empty?

  "?#{gravatar_params.map { |key, value| "#{key}=#{CGI.escape(value.is_a?(String) ? value : value.to_s)}" }.join('&')}"
end