Sha256: 278daba2284cecce15a3f11b491252b610ea589324957b1e29efa19d808023af

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require 'mini_magick'
require 'digest/sha1'
require 'tempfile'

module Cheers
  class Avatar

    BACKGROUND_COLORS = %w(#cccccc #dddddd #bbbbbb #f1a800 #fef0cc
                           #fd4238 #fff0f0 #14899d #c3ecee #42991a
                           #f0fff0)
    
    COMPONENT_COLORS   = %w(#333333 #666666 #9e005d #ef8200 #db4640
                            #0e788b #239340)
    
    # Creates a new avatar from the seed string
    def initialize(seed)
      @seed = Digest::SHA1.hexdigest(seed).to_i(16)
    end
    
    # Writes avatar image at the provided file path
    def avatar_file(file_path)
      avatar = compose_avatar
      
      avatar.write(file_path)

      file_path
    end
    
    # Returns a binary version of the image
    def to_blob(format)
      avatar = compose_avatar

      avatar.format = format
      avatar.to_blob
    end
    
    private
    
    def compose_avatar #:nodoc:
      generator = Random.new(@seed)

      result = nil
      [Background, Face, Decoration, Eyes].each do |klass|
        result = klass.new(result, generator).apply
      end

      result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cheers-0.0.3 lib/cheers/avatar.rb