Class: MyRepresentatives::NT::WebShow

Inherits:
Object
  • Object
show all
Includes:
Guessable
Defined in:
lib/my_representatives/nt/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/nt/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/nt/web_show.rb', line 6

def document
  @document
end

#loggerObject

Returns the value of attribute logger.



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

def logger
  @logger
end

#urlObject

Returns the value of attribute url.



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

def url
  @url
end

Instance Method Details

#electorate_nameObject



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

def electorate_name
  begin
    @document.css("table").at('th:contains("Electorate")').next_element.text.strip
  rescue NoMethodError
    nil
  end
end

#emailObject



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

def email
  begin
    @document.css("table").at('th:contains("Electorate office")').next_element.text.strip
  rescue NoMethodError
    nil
  end
end

#first_nameObject



36
37
38
39
40
41
42
# File 'lib/my_representatives/nt/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/nt/web_show.rb', line 20

def formal_name
  begin
    @document.css("h1#main").text
  rescue NoMethodError
    nil
  end
end

#homepage_urlObject



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

def homepage_url
  @url
end

#image_urlObject



108
109
110
111
112
113
114
# File 'lib/my_representatives/nt/web_show.rb', line 108

def image_url
  begin
    @document.css("div.thumbnail").css("img").attr('src').value
  rescue NoMethodError
    nil
  end
end

#last_nameObject



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

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

#party_nameObject



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

def party_name
  begin
    @document.css("table").at('th:contains("Party")').next_element.text.strip
  rescue NoMethodError
    nil
  end
end

#phoneObject



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

def phone
  begin
    @document.css("table").at('th:contains("Phone (business hours)")').next_element.text.strip.gsub("+61 ","")
  rescue NoMethodError
    nil
  end
end

#physical_addressObject



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

def physical_address
  begin
    @document.css("table").at('th:contains("Address")').next_element.text.strip.gsub(", ","\n")
  rescue NoMethodError
    nil
  end
end

#postal_addressObject



100
101
102
103
104
105
106
# File 'lib/my_representatives/nt/web_show.rb', line 100

def postal_address
  begin
    @document.css("table").at('th:contains("Postal address")').next_element.text.strip.gsub(", ","\n")
  rescue NoMethodError
    nil
  end
end

#preferred_nameObject



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

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/nt/web_show.rb', line 28

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