Class: MyRepresentatives::VIC::WebShow

Inherits:
Object
  • Object
show all
Includes:
Guessable
Defined in:
lib/my_representatives/vic/web_show.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Guessable

#guess_first, #guess_gender, #guess_last, #guess_preferred, #guess_title

Constructor Details

#initialize(url) ⇒ WebShow

Returns a new instance of WebShow.



8
9
10
11
12
13
14
# File 'lib/my_representatives/vic/web_show.rb', line 8

def initialize(url)
  @logger = Logger.new(STDOUT)
  raise MyRepresentatives::InvalidURLError unless url && url.is_a?(String)
  @url = url
  fetch_document
  raise MyRepresentatives::NokogiriDocumentPropertiesError unless test_document_for_validity
end

Instance Attribute Details

#documentObject

Returns the value of attribute document.



6
7
8
# File 'lib/my_representatives/vic/web_show.rb', line 6

def document
  @document
end

#loggerObject

Returns the value of attribute logger.



6
7
8
# File 'lib/my_representatives/vic/web_show.rb', line 6

def logger
  @logger
end

#urlObject

Returns the value of attribute url.



6
7
8
# File 'lib/my_representatives/vic/web_show.rb', line 6

def url
  @url
end

Instance Method Details

#electorate_nameObject



60
61
62
63
64
65
66
# File 'lib/my_representatives/vic/web_show.rb', line 60

def electorate_name
  begin
    @document.css("dl.member-overview").at('dt:contains("Electorate")').next_element.text
  rescue NoMethodError
    nil
  end
end

#emailObject



76
77
78
79
80
81
82
# File 'lib/my_representatives/vic/web_show.rb', line 76

def email
  begin
    @document.css("dl.member-overview").at('dt:contains("Email")').next_element.text.strip
  rescue
    nil
  end
end

#first_nameObject



36
37
38
39
40
41
42
# File 'lib/my_representatives/vic/web_show.rb', line 36

def first_name
  begin
    guess_first(formal_name)
  rescue NoMethodError
    nil
  end
end

#formal_nameObject



20
21
22
23
24
25
26
# File 'lib/my_representatives/vic/web_show.rb', line 20

def formal_name
  begin
    @document.css("div#page-title").css("h2").text
  rescue NoMethodError
    nil
  end
end

#homepage_urlObject



16
17
18
# File 'lib/my_representatives/vic/web_show.rb', line 16

def homepage_url
  @url
end

#image_urlObject



84
85
86
87
88
89
90
# File 'lib/my_representatives/vic/web_show.rb', line 84

def image_url
  begin
    @document.css("img.details-portrait").attr("src").value
  rescue
    nil
  end
end

#last_nameObject



44
45
46
47
48
49
50
# File 'lib/my_representatives/vic/web_show.rb', line 44

def last_name
  begin
    guess_last(formal_name)
  rescue NoMethodError
    nil
  end
end

#party_nameObject



68
69
70
71
72
73
74
# File 'lib/my_representatives/vic/web_show.rb', line 68

def party_name
  begin
    @document.css("dl.member-overview").at('dt:contains("Party")').next_element.text
  rescue NoMethodError
    nil
  end
end

#phoneObject



92
93
94
95
96
97
98
# File 'lib/my_representatives/vic/web_show.rb', line 92

def phone
  begin
    @document.css("dl.member-overview").at('dt:contains("Phone")').next_element.text.strip
  rescue
    nil
  end
end

#preferred_nameObject



52
53
54
55
56
57
58
# File 'lib/my_representatives/vic/web_show.rb', line 52

def preferred_name
  begin
    guess_preferred(formal_name)
  rescue NoMethodError
    nil
  end
end

#titleObject



28
29
30
31
32
33
34
# File 'lib/my_representatives/vic/web_show.rb', line 28

def title
  begin
    guess_title(formal_name)
  rescue NoMethodError
    nil
  end
end