Module: MaleChimp::Utils::Exceptions

Defined in:
lib/malechimp/utils/utils.rb

Constant Summary collapse

EXCEPTIONS_SPEC =
'http://www.mailchimp.com/api/rtfm/exceptions.field.php'
DEFAULT_GROUP =
'General'

Class Method Summary collapse

Class Method Details

.faults_list(url = EXCEPTIONS_SPEC) ⇒ Object

Screen scrapes the faults from the Chimp API



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

def faults_list(url=EXCEPTIONS_SPEC)
  doc = Hpricot(open(url))
  # change the CSS class on links
  (doc/"table tr").inject({}) do |faults, row|
    code, error = (row/"td").map{ |cell| cell.inner_text }
    if code =~ /[0-9-]+/
      faults[code.to_i] = error
    end
    faults
  end
end

.group_faults(faults) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/malechimp/utils/utils.rb', line 28

def group_faults(faults)
  groups = { DEFAULT_GROUP => [] }
  faults.map do |code, message|
    group, error = message.split(/_/, 2)
    
    group         ||= DEFAULT_GROUP
    groups[group] ||= []
    
    groups[group] << [code, error]
  end
  groups
end