class PossibleEmail::Profile

Attributes

data[R]
email[R]
first_name[R]
friendly_name[R]
headline[R]
images[R]
last_name[R]
location[R]
memberships[R]
name[R]
occupations[R]
phones[R]
success[R]

Public Class Methods

new(data) click to toggle source
# File lib/possible_email/profile/profile.rb, line 12
def initialize(data)
  @data = data

  retrieve_attribute
  retrieve_attribute_collection
end

Public Instance Methods

attributes() click to toggle source
# File lib/possible_email/profile/profile.rb, line 19
def attributes
  instance_variables.select { |i| i != :@data }.map { |i| i.to_s[1..-1] }
end
to_s() click to toggle source
# File lib/possible_email/profile/profile.rb, line 23
def to_s
  "#{@name} - #{email}"
end

Private Instance Methods

build_collection_instance_variable(collection) click to toggle source
# File lib/possible_email/profile/profile.rb, line 42
def build_collection_instance_variable(collection)
  collection_array = @data['contact'][collection].reduce([]) do |col, c|
    col << find_klass_name(collection).new(c)
  end

  instance_variable_set("@#{collection}", collection_array)
end
find_klass_name(collection) click to toggle source
# File lib/possible_email/profile/profile.rb, line 50
def find_klass_name(collection)
  PossibleEmail.const_get collection[0..-2].capitalize # 'images' => 'Image'
end
retrieve_attribute() click to toggle source
# File lib/possible_email/profile/profile.rb, line 29
def retrieve_attribute
  %w(email name first_name last_name friendly_name location headline).each do |attr|
    instance_variable_set("@#{attr}", @data['contact'][attr])
  end
  @success = @data['success']
end
retrieve_attribute_collection() click to toggle source
# File lib/possible_email/profile/profile.rb, line 36
def retrieve_attribute_collection
  %w(occupations memberships images phones).each do |collection|
    build_collection_instance_variable(collection)
  end
end