external_person.rb 550 Bytes
require_dependency 'external_person'

class ExternalPerson

  has_one :oauth_auth, foreign_key: :external_person_id, class_name: 'OauthClientPlugin::Auth', dependent: :destroy
  has_one :oauth_provider, through: :oauth_auth, source: :provider

  def avatar
    self.oauth_auth.image_url
  end

  def image
    ExternalPerson::Image.new(oauth_auth)
  end

  class ExternalPerson::Image
    def initialize(oauth_auth)
      @oauth_auth = oauth_auth
    end

    def public_filename(size = nil)
      URI(@oauth_auth.image_url(size))
    end
  end

end