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



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

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



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

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



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

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



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

def first_name
  merge_fields['FNAME']
end

#last_nameObject



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

def last_name
  merge_fields['LNAME']
end

#nameObject



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

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

#to_sObject



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

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

#update(new_data) ⇒ Object



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

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