governator 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5327f863405f454b4710f2bfc96e722803715a0
4
- data.tar.gz: 436e569409abd1fb139b9dc5397b9489d1dc77b5
3
+ metadata.gz: a54cbc572f205a119acb57bf0546ff422bd4d430
4
+ data.tar.gz: 61f4feb76adf915a28131704f48054d9fde1e6c1
5
5
  SHA512:
6
- metadata.gz: 074ed2d205bb36b6afaa02b36a1392fb2b16fa3840e9c0f63e0dbc74379c4fb16adde1b8abd83515634ce7496538ce197174a46bdc46af5db2e6e2b3aea9e19f
7
- data.tar.gz: e52f2ac63e43f1e418b6d19a9d0b12ea767721f82029728c9eaac68127797a1c4017874eeb26dc72e890c4a10264038f59986361bca476121b9c2906f0a0d599
6
+ metadata.gz: 2cb65c51cc9394242e14744f5890f7552ef9426130a0a3da3ed3103a8e55e4edb21a314ef76e9bc428e2f0061753048ef939659ff87448e620b6b500efb29cc9
7
+ data.tar.gz: 56dc48561762376bd16672cebcb71cf6604df3a0226a48834292c1d64c2956c7161b937c972f115121cbdaf87f637a2c998f3314fdc405e80eb792d5eafd2c05
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Governator
4
+ class CivilServices
5
+ def self.json
6
+ @_json ||= JSON.parse Faraday.get(
7
+ 'https://raw.githubusercontent.com/CivilServiceUSA/us-governors'\
8
+ '/master/us-governors/data/us-governors.json'
9
+ ).body
10
+ end
11
+
12
+ attr_reader :governor
13
+
14
+ def initialize(governor)
15
+ @governor = governor
16
+ end
17
+
18
+ def twitter
19
+ record['twitter_handle'] if record
20
+ end
21
+
22
+ def facebook
23
+ if record && record['facebook_url']
24
+ @_facebook ||= record['facebook_url'].sub('https://www.facebook.com/', '')
25
+ end
26
+ end
27
+
28
+ def photo_url
29
+ record['photo_url'] if record
30
+ end
31
+
32
+ def contact_form
33
+ record['contact_page'] if record
34
+ end
35
+
36
+ private
37
+
38
+ def record
39
+ @_record ||= self.class.json.detect do |record|
40
+ record['last_name'] == governor.last && record['state_name'] == governor.state_name
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Governator
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
data/lib/governator.rb CHANGED
@@ -5,6 +5,7 @@ require 'nokogiri'
5
5
  require 'twitter'
6
6
 
7
7
  require 'governator/bio_page'
8
+ require 'governator/civil_services'
8
9
  require 'governator/name_parser'
9
10
  require 'governator/panel'
10
11
  require 'governator/twitter_client'
@@ -110,7 +111,15 @@ class Governator
110
111
  end
111
112
 
112
113
  def photo_url
113
- @_photo_url ||= "#{BASE_URI}#{panel.image}"
114
+ civil_services.photo_url || BASE_URI + panel.image
115
+ end
116
+
117
+ def facebook
118
+ civil_services.facebook
119
+ end
120
+
121
+ def contact_form
122
+ civil_services.contact_form
114
123
  end
115
124
 
116
125
  private
@@ -124,18 +133,26 @@ class Governator
124
133
 
125
134
  @first, @last, @middle, @nickname, @suffix = NameParser.new(official_full).parse
126
135
  build_office_locations
127
- fetch_twitter_handle if self.class.use_twitter == true
136
+ fetch_twitter_handle
128
137
  self
129
138
  end
130
139
 
140
+ def civil_services
141
+ @_civil_services ||= CivilServices.new(self)
142
+ end
143
+
131
144
  def fetch_twitter_handle
132
- twitter_governor = TwitterClient.governors.detect do |tg|
133
- tg[:name].match?(last) && (
134
- tg[:location].match?(state_name) || tg[:description].match?(state_name)
135
- )
145
+ if self.class.use_twitter == true
146
+ twitter_governor = TwitterClient.governors.detect do |tg|
147
+ tg[:name].match?(last) && (
148
+ tg[:location].match?(state_name) || tg[:description].match?(state_name)
149
+ )
150
+ end
151
+
152
+ @twitter = twitter_governor[:screen_name] if twitter_governor
136
153
  end
137
154
 
138
- @twitter = twitter_governor[:screen_name] if twitter_governor
155
+ @twitter = civil_services.twitter if twitter.nil?
139
156
  end
140
157
 
141
158
  def build_office_locations
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: governator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - M. Simon Borg
@@ -99,6 +99,7 @@ files:
99
99
  - governator.png
100
100
  - lib/governator.rb
101
101
  - lib/governator/bio_page.rb
102
+ - lib/governator/civil_services.rb
102
103
  - lib/governator/name_parser.rb
103
104
  - lib/governator/page_scraper.rb
104
105
  - lib/governator/panel.rb