Class: Daywalker::TypeConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/daywalker/type_converter.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.blank_to_nil(str) ⇒ Object



53
54
55
# File 'lib/daywalker/type_converter.rb', line 53

def self.blank_to_nil(str)
  str == '' ? nil : str
end

.gender_letter_to_sym(letter) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/daywalker/type_converter.rb', line 3

def self.gender_letter_to_sym(letter)
  case letter
  when 'M' then :male
  when 'F' then :female
  else raise ArgumentError, "unknown gender #{letter.inspect}"
  end
end

.normalize_conditions(conditions) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/daywalker/type_converter.rb', line 57

def self.normalize_conditions(conditions)
  if conditions[:title].kind_of? Symbol
    conditions[:title] = sym_to_title_abbr(conditions[:title])
  end

  move_value_in_hash(conditions, :district_number, :district)
  move_value_in_hash(conditions, :official_rss_url, :official_rss)

  if conditions[:party].kind_of? Symbol
    conditions[:party] = sym_to_party_letter(conditions[:party])
  end

  move_value_in_hash(conditions, :website_url, :website)
  move_value_in_hash(conditions, :fax_number, :fax)
  move_value_in_hash(conditions, :first_name, :firstname)
  move_value_in_hash(conditions, :middle_name, :middlename)
  move_value_in_hash(conditions, :last_name, :lastname)
  move_value_in_hash(conditions, :webform_url, :webform)

  if conditions[:gender].kind_of? Symbol
    conditions[:gender] = sym_to_gender_letter(conditions[:gender])
  end

  conditions
end

.party_letter_to_sym(letter) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/daywalker/type_converter.rb', line 11

def self.party_letter_to_sym(letter)
  case letter
  when 'D' then :democrat
  when 'R' then :republican
  when 'I' then :independent
  else raise ArgumentError, "unknown party #{letter.inspect}"
  end
end

.sym_to_gender_letter(sym) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/daywalker/type_converter.rb', line 45

def self.sym_to_gender_letter(sym)
  case sym
  when :male then 'M'
  when :female then 'F'
  else raise ArgumentError, "Unknown gender #{sym.inspect}"
  end
end

.sym_to_party_letter(sym) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/daywalker/type_converter.rb', line 36

def self.sym_to_party_letter(sym)
  case sym
  when :democrat then 'D'
  when :republican then 'R'
  when :independent then 'I'
  else raise ArgumentError, "Unknown party #{sym.inspect}"
  end
end

.sym_to_title_abbr(sym) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/daywalker/type_converter.rb', line 28

def self.sym_to_title_abbr(sym)
  case sym
  when :senator then 'Sen'
  when :representative then 'Rep'
  else raise ArgumentError, "Unknown title #{sym.inspect}"
  end
end

.title_abbr_to_sym(abbr) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/daywalker/type_converter.rb', line 20

def self.title_abbr_to_sym(abbr)
  case abbr
  when 'Sen' then :senator
  when 'Rep' then :representative
  else raise ArgumentError, "Unknown title #{abbr.inspect}"
  end
end