class Servicon::Icon

Attributes

fingerprint[RW]

Public Class Methods

new(fingerprint, color = options[:color]) click to toggle source
# File lib/servicon.rb, line 11
def initialize(fingerprint, color = options[:color])
  color=="true" ? @color = true : @color = false
  @fingerprint = fingerprint
  @uuid = self.uuid
end

Public Instance Methods

display() click to toggle source
# File lib/servicon.rb, line 46
def display
  draw_matrix(matrix)
end
draw_char(character) click to toggle source
# File lib/servicon.rb, line 70
def draw_char(character)
  rgb = [self.rgb[:red], self.rgb[:green], self.rgb[:blue]]
  rgb.collect! { |n| n / 2 } if character == 1

  background = :default
  foreground = :default

  if @color
    background = rgb
  else
    background = :inverse if character == 1
  end

  Paint[" ", foreground, background]

end
draw_matrix(matrix) click to toggle source
# File lib/servicon.rb, line 50
def draw_matrix(matrix)
  my_row = Array.new
  
  matrix.each do |row|
     my_row << draw_row(row)
  end
  
  return my_row.join
end
draw_row(matrix_row) click to toggle source
# File lib/servicon.rb, line 60
def draw_row(matrix_row)
  line = Array.new

  matrix_row.each do |character|
    line << draw_char(character)
  end
    
  return line.join + "\n"
end
matrix() click to toggle source
# File lib/servicon.rb, line 22
def matrix
  line = Array.new
  identicon = Array.new

  0.upto(63) do |i|
    line << @uuid[i]
    if line.count == 8
      identicon << line + line.reverse
      line = Array.new
    end
  end

  return identicon
end
rgb() click to toggle source
# File lib/servicon.rb, line 37
def rgb
  color = Hash.new
  color[:red] = ((@uuid >> 4) & 0xff)
  color[:blue] = ((@uuid >> 8) & 0xff)
  color[:green] = ((@uuid >> 16) & 0xff)

  return color
end
uuid() click to toggle source
# File lib/servicon.rb, line 17
def uuid
  uuid = Digest::SHA1.hexdigest(@fingerprint).unpack('H*')[0].to_i(16)
  return uuid
end