class Looks::Gravatar::Account

Public Class Methods

new(config) click to toggle source
# File lib/looks/gravatar/account.rb, line 13
def initialize(config)
  @password = config.password
  @server   = XMLRPC::Client.new_from_uri(Gravatar.url(config.address))
end

Public Instance Methods

addresses() click to toggle source
# File lib/looks/gravatar/account.rb, line 18
def addresses
  addresses = []

  call('grav.addresses').each do |key, value|
    addresses.push Address.new_from_addresses(key, value)
  end

  addresses.sort
end
delete_image(image) click to toggle source
# File lib/looks/gravatar/account.rb, line 44
def delete_image(image)
  call('grav.deleteUserimage', { 'userimage' => image })
end
images() click to toggle source
# File lib/looks/gravatar/account.rb, line 28
def images
  images = []

  call('grav.userimages').each do |key, value|
    images.push Image.new_from_images(key, value)
  end

  images.sort
end
remove_image(address) click to toggle source
# File lib/looks/gravatar/account.rb, line 55
def remove_image(address)
  call('grav.removeImage', {
    'addresses' => [ address ]
  })
end
save_data(image) click to toggle source
# File lib/looks/gravatar/account.rb, line 38
def save_data(image)
  data = Base64.encode64(image)

  call('grav.saveData', { 'data' => data, 'rating' => 0 })
end
use_image(address, id) click to toggle source
# File lib/looks/gravatar/account.rb, line 48
def use_image(address, id)
  call('grav.useUserimage', {
    'userimage' => id,
    'addresses' => [ address ]
  })
end

Private Instance Methods

call(method, args = {}) click to toggle source
# File lib/looks/gravatar/account.rb, line 63
def call(method, args = {})
  args['password'] = @password

  begin
    @server.call(method, args)
  rescue SocketError, SystemCallError
    raise Error, "Unable to connect to Gravatar server"
  rescue XMLRPC::FaultException => fault
    handle fault
  end
end
handle(fault) click to toggle source
# File lib/looks/gravatar/account.rb, line 75
def handle(fault)
  case fault.faultCode
  when  -8
    raise InternalError
  when  -9
    raise AuthenticationError
  when -11
    raise IncorrectMethodParameterError
  else
    raise UnknownError, fault.faultCode
  end
end