Class: Mailchimp::List::Member

Inherits:
Instance
  • Object
show all
Defined in:
lib/mailchimp_api_v3/member.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Instance

#delete, get, #initialize, #matches?, #path, #same?, #subclass_from

Constructor Details

This class inherits a constructor from Mailchimp::Instance

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Mailchimp::Instance

Class Method Details

.add_id_to(data) ⇒ Object

Class methods



7
8
9
10
11
# File 'lib/mailchimp_api_v3/member.rb', line 7

def self.add_id_to(data)
  clean_data = data.deep_stringify_keys
  return clean_data unless clean_data.key? 'email_address'
  clean_data.merge id: clean_data['email_address'].convert_to_id
end

.name_parts_from(data) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/mailchimp_api_v3/member.rb', line 25

def self.name_parts_from(data)
  new_name = data.delete('name')
  name_parts = new_name ? new_name.split : []

  [
    data.delete('first_name') || name_parts[0],
    data.delete('last_name') || name_parts[1]
  ]
end

.parse_name_from(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/mailchimp_api_v3/member.rb', line 13

def self.parse_name_from(data)
  clean_data = data.deep_stringify_keys
  fname, lname = name_parts_from clean_data

  merge_fields = {}
  merge_fields['FNAME'] = fname if fname
  merge_fields['LNAME'] = lname if lname
  additional_data = merge_fields.empty? ? {} : { 'merge_fields' => merge_fields }

  additional_data.merge clean_data
end

Instance Method Details

#first_nameObject

Instance methods



37
38
39
# File 'lib/mailchimp_api_v3/member.rb', line 37

def first_name
  merge_fields['FNAME']
end

#last_nameObject



41
42
43
# File 'lib/mailchimp_api_v3/member.rb', line 41

def last_name
  merge_fields['LNAME']
end

#nameObject



45
46
47
48
# File 'lib/mailchimp_api_v3/member.rb', line 45

def name
  delim = first_name && last_name ? ' ' : ''
  "#{first_name}#{delim}#{last_name}"
end

#to_sObject



50
51
52
# File 'lib/mailchimp_api_v3/member.rb', line 50

def to_s
  "#{name} <#{email_address}>"
end

#update(new_data) ⇒ Object



54
55
56
# File 'lib/mailchimp_api_v3/member.rb', line 54

def update(new_data)
  super self.class.parse_name_from(new_data)
end