my_representatives 0.0.2

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.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.md +8 -0
  5. data/README.md +60 -0
  6. data/lib/my_representatives/abbreviatable.rb +29 -0
  7. data/lib/my_representatives/act/csv_lower.rb +118 -0
  8. data/lib/my_representatives/act/merge_lower.rb +38 -0
  9. data/lib/my_representatives/act/web_index.rb +37 -0
  10. data/lib/my_representatives/act/web_index_row.rb +86 -0
  11. data/lib/my_representatives/act/web_lower.rb +65 -0
  12. data/lib/my_representatives/act/web_show.rb +46 -0
  13. data/lib/my_representatives/commonwealth/commonwealth.rb +5 -0
  14. data/lib/my_representatives/commonwealth/csv_email.rb +93 -0
  15. data/lib/my_representatives/commonwealth/csv_lower.rb +130 -0
  16. data/lib/my_representatives/commonwealth/csv_upper.rb +129 -0
  17. data/lib/my_representatives/commonwealth/merge_lower.rb +54 -0
  18. data/lib/my_representatives/commonwealth/merge_upper.rb +54 -0
  19. data/lib/my_representatives/commonwealth/web_index.rb +57 -0
  20. data/lib/my_representatives/commonwealth/web_lower.rb +55 -0
  21. data/lib/my_representatives/commonwealth/web_show.rb +99 -0
  22. data/lib/my_representatives/commonwealth/web_upper.rb +54 -0
  23. data/lib/my_representatives/electorate.rb +146 -0
  24. data/lib/my_representatives/errors.rb +7 -0
  25. data/lib/my_representatives/fileable.rb +11 -0
  26. data/lib/my_representatives/guessable.rb +120 -0
  27. data/lib/my_representatives/hashable.rb +11 -0
  28. data/lib/my_representatives/nsw/csv_lower.rb +115 -0
  29. data/lib/my_representatives/nsw/csv_upper.rb +115 -0
  30. data/lib/my_representatives/nsw/merge_lower.rb +41 -0
  31. data/lib/my_representatives/nsw/merge_upper.rb +41 -0
  32. data/lib/my_representatives/nsw/web_index.rb +56 -0
  33. data/lib/my_representatives/nsw/web_lower.rb +54 -0
  34. data/lib/my_representatives/nsw/web_show.rb +140 -0
  35. data/lib/my_representatives/nsw/web_upper.rb +54 -0
  36. data/lib/my_representatives/nt/web_index.rb +46 -0
  37. data/lib/my_representatives/nt/web_lower.rb +54 -0
  38. data/lib/my_representatives/nt/web_show.rb +134 -0
  39. data/lib/my_representatives/person.rb +197 -0
  40. data/lib/my_representatives/qld/csv_lower.rb +117 -0
  41. data/lib/my_representatives/qld/merge_lower.rb +37 -0
  42. data/lib/my_representatives/qld/web_index.rb +47 -0
  43. data/lib/my_representatives/qld/web_lower.rb +54 -0
  44. data/lib/my_representatives/qld/web_show.rb +146 -0
  45. data/lib/my_representatives/sa/csv_lower.rb +120 -0
  46. data/lib/my_representatives/sa/csv_upper.rb +115 -0
  47. data/lib/my_representatives/sa/merge_lower.rb +39 -0
  48. data/lib/my_representatives/sa/merge_upper.rb +39 -0
  49. data/lib/my_representatives/sa/web_index_lower.rb +42 -0
  50. data/lib/my_representatives/sa/web_index_upper.rb +43 -0
  51. data/lib/my_representatives/sa/web_lower.rb +54 -0
  52. data/lib/my_representatives/sa/web_show.rb +158 -0
  53. data/lib/my_representatives/sa/web_upper.rb +54 -0
  54. data/lib/my_representatives/static.rb +5 -0
  55. data/lib/my_representatives/tas/csv_lower.rb +125 -0
  56. data/lib/my_representatives/tas/csv_upper.rb +125 -0
  57. data/lib/my_representatives/version.rb +5 -0
  58. data/lib/my_representatives/vic/csv_lower.rb +99 -0
  59. data/lib/my_representatives/vic/csv_upper.rb +97 -0
  60. data/lib/my_representatives/vic/merge_lower.rb +37 -0
  61. data/lib/my_representatives/vic/merge_upper.rb +37 -0
  62. data/lib/my_representatives/vic/web_index.rb +58 -0
  63. data/lib/my_representatives/vic/web_lower.rb +54 -0
  64. data/lib/my_representatives/vic/web_show.rb +118 -0
  65. data/lib/my_representatives/vic/web_upper.rb +54 -0
  66. data/lib/my_representatives/wa/csv_lower.rb +144 -0
  67. data/lib/my_representatives/wa/csv_upper.rb +131 -0
  68. data/lib/my_representatives/wa/merge_lower.rb +41 -0
  69. data/lib/my_representatives/wa/merge_upper.rb +37 -0
  70. data/lib/my_representatives/wa/web_index.rb +45 -0
  71. data/lib/my_representatives/wa/web_lower.rb +54 -0
  72. data/lib/my_representatives/wa/web_show.rb +195 -0
  73. data/lib/my_representatives/wa/web_upper.rb +54 -0
  74. data/lib/my_representatives.rb +150 -0
  75. data/my_representatives.gemspec +25 -0
  76. metadata +204 -0
@@ -0,0 +1,150 @@
1
+ require 'awesome_print'
2
+ require 'csv'
3
+ require 'logger'
4
+ require 'nokogiri'
5
+ require 'open-uri'
6
+ require 'pry-byebug'
7
+
8
+ require 'my_representatives/version.rb'
9
+ require "my_representatives/abbreviatable.rb"
10
+ require "my_representatives/fileable.rb"
11
+ require "my_representatives/guessable.rb"
12
+ require "my_representatives/hashable.rb"
13
+ require 'my_representatives/errors.rb'
14
+ require 'my_representatives/static.rb'
15
+ require 'my_representatives/electorate.rb'
16
+ require 'my_representatives/person.rb'
17
+
18
+ require 'my_representatives/act/csv_lower.rb'
19
+ require 'my_representatives/act/merge_lower.rb'
20
+ require 'my_representatives/act/web_index.rb'
21
+ require 'my_representatives/act/web_index_row.rb'
22
+ require 'my_representatives/act/web_lower.rb'
23
+ require 'my_representatives/act/web_show.rb'
24
+ require 'my_representatives/commonwealth/commonwealth.rb'
25
+ require 'my_representatives/commonwealth/csv_email.rb'
26
+ require 'my_representatives/commonwealth/csv_lower.rb'
27
+ require 'my_representatives/commonwealth/csv_upper.rb'
28
+ require 'my_representatives/commonwealth/merge_lower.rb'
29
+ require 'my_representatives/commonwealth/merge_upper.rb'
30
+ require 'my_representatives/commonwealth/web_index.rb'
31
+ require 'my_representatives/commonwealth/web_lower.rb'
32
+ require 'my_representatives/commonwealth/web_show.rb'
33
+ require 'my_representatives/commonwealth/web_upper.rb'
34
+ require 'my_representatives/nsw/csv_lower.rb'
35
+ require 'my_representatives/nsw/csv_upper.rb'
36
+ require 'my_representatives/nsw/merge_lower.rb'
37
+ require 'my_representatives/nsw/merge_upper.rb'
38
+ require 'my_representatives/nsw/web_index.rb'
39
+ require 'my_representatives/nsw/web_lower.rb'
40
+ require 'my_representatives/nsw/web_show.rb'
41
+ require 'my_representatives/nsw/web_upper.rb'
42
+ require 'my_representatives/nt/web_index.rb'
43
+ require 'my_representatives/nt/web_lower.rb'
44
+ require 'my_representatives/nt/web_show.rb'
45
+ require 'my_representatives/qld/csv_lower.rb'
46
+ require 'my_representatives/qld/merge_lower.rb'
47
+ require 'my_representatives/qld/web_index.rb'
48
+ require 'my_representatives/qld/web_lower.rb'
49
+ require 'my_representatives/qld/web_show.rb'
50
+ require 'my_representatives/sa/csv_lower.rb'
51
+ require 'my_representatives/sa/csv_upper.rb'
52
+ require 'my_representatives/sa/merge_lower.rb'
53
+ require 'my_representatives/sa/merge_upper.rb'
54
+ require 'my_representatives/sa/web_index_lower.rb'
55
+ require 'my_representatives/sa/web_index_upper.rb'
56
+ require 'my_representatives/sa/web_lower.rb'
57
+ require 'my_representatives/sa/web_show.rb'
58
+ require 'my_representatives/sa/web_upper.rb'
59
+ require 'my_representatives/tas/csv_lower.rb'
60
+ require 'my_representatives/tas/csv_upper.rb'
61
+ require 'my_representatives/vic/csv_lower.rb'
62
+ require 'my_representatives/vic/csv_upper.rb'
63
+ require 'my_representatives/vic/merge_lower.rb'
64
+ require 'my_representatives/vic/merge_upper.rb'
65
+ require 'my_representatives/vic/web_index.rb'
66
+ require 'my_representatives/vic/web_lower.rb'
67
+ require 'my_representatives/vic/web_show.rb'
68
+ require 'my_representatives/vic/web_upper.rb'
69
+ require 'my_representatives/wa/csv_lower.rb'
70
+ require 'my_representatives/wa/csv_upper.rb'
71
+ require 'my_representatives/wa/merge_lower.rb'
72
+ require 'my_representatives/wa/merge_upper.rb'
73
+ require 'my_representatives/wa/web_index.rb'
74
+ require 'my_representatives/wa/web_lower.rb'
75
+ require 'my_representatives/wa/web_show.rb'
76
+ require 'my_representatives/wa/web_upper.rb'
77
+
78
+ #Dir['my_representatives/**/*.rb'].each{ |f| require f }
79
+
80
+ module MyRepresentatives
81
+
82
+
83
+ def self.new
84
+ people = []
85
+
86
+ ### Commonwealth
87
+ puts "Fetching Commonwealth House of Representatives ..."
88
+ Commonwealth::MergeLower.new.people.each { |p| people << p }
89
+ puts "Fetching Commonwealth Senate ..."
90
+ Commonwealth::MergeUpper.new.people.each { |p| people << p }
91
+
92
+ ### Australian Capital Territory
93
+ puts "Fetching ACT Lower House ..."
94
+ ACT::MergeLower.new.people.each { |p| people << p }
95
+
96
+ ### New South Wales
97
+ puts "Fetching NSW Lower House ..."
98
+ NSW::MergeLower.new.people.each { |p| people << p }
99
+ puts "Fetching NSW Upper House ..."
100
+ NSW::MergeUpper.new.people.each { |p| people << p }
101
+
102
+ ### Northern Territory
103
+ puts "Fetching NT Lower House ..."
104
+ NT::WebLower.new.people.each { |p| people << p }
105
+
106
+ ### Queensland
107
+ puts "Fetching QLD Lower House ..."
108
+ QLD::MergeLower.new.people.each { |p| people << p }
109
+
110
+ ### South Australia
111
+ puts "Fetching SA Lower House ..."
112
+ SA::MergeLower.new.people.each { |p| people << p }
113
+ puts "Fetching SA Upper House ..."
114
+ SA::MergeUpper.new.people.each { |p| people << p }
115
+
116
+ ### Tasmania
117
+ puts "Fetching TAS Lower House ..."
118
+ TAS::CSVLower.new.people.each { |p| people << p }
119
+ puts "Fetching TAS Upper House ..."
120
+ TAS::CSVUpper.new.people.each { |p| people << p }
121
+
122
+ ### VICTORIA
123
+ puts "Fetching VIC Lower House ..."
124
+ VIC::MergeLower.new.people.each { |p| people << p }
125
+ puts "Fetching VIC Upper House ..."
126
+ VIC::MergeUpper.new.people.each { |p| people << p }
127
+
128
+ ### Western Australia
129
+ puts "Fetching WA Lower House ..."
130
+ WA::MergeLower.new.people.each { |p| people << p }
131
+ puts "Fetching WA Upper House ..."
132
+ WA::MergeUpper.new.people.each { |p| people << p }
133
+
134
+ create_csv(people)
135
+ people
136
+ end
137
+
138
+ def self.create_csv(people)
139
+ filename = "tmp/csv_all_representatives.csv"
140
+ File.delete(filename) if File.exist?(filename)
141
+
142
+ CSV.open(filename, "wb") do |csv|
143
+ csv << ["title", "first_name", "last_name", "preferred_name", "honorifics", "salutation", "gender", "email", "phone", "physical_address", "postal_address", "party_name", "electorate_name", "electorate_house", "electorate_state", "lower_house", "state_government"]
144
+ people.each do |p|
145
+ csv << [p.title, p.first_name, p.last_name, p.preferred_name, p.honorifics, p.salutation, p.gender, p.email, "'#{p.phone}'", p.physical_address, p.postal_address, p.party_name, p.electorate.name, p.electorate.house, p.electorate.state, p.electorate.lower_house, p.electorate.state_government]
146
+ end
147
+ end
148
+ end
149
+
150
+ end
@@ -0,0 +1,25 @@
1
+ require File.expand_path('../lib/my_representatives/version', __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "my_representatives"
5
+ s.version = MyRepresentatives::VERSION.dup
6
+ s.summary = "Aggregates contact information for Australian State and Commonwealth Members, and Senators"
7
+ s.description = "Ruby software to scrape multiple Australian State and Federal Government data sources, and provide consistently formatted data"
8
+ s.homepage = "https://github.com/tennantje/MyRepresentatives"
9
+ s.authors = ["Jeremy Tennant"]
10
+ s.email = ["tennantje@gmail.com"]
11
+ s.license = "MIT"
12
+
13
+ s.add_development_dependency 'rspec', '~> 3.4'
14
+ s.add_development_dependency 'pry-byebug', '~> 3.1'
15
+
16
+ s.add_runtime_dependency 'activesupport', '~> 5.1'
17
+ s.add_runtime_dependency 'awesome_print', '~> 1.7'
18
+ s.add_runtime_dependency 'excel2csv', '~> 0.3.4'
19
+ s.add_runtime_dependency 'nokogiri', '~> 1.7'
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
24
+ s.require_paths = ["lib"]
25
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: my_representatives
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Tennant
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.4'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry-byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: awesome_print
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: excel2csv
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.4
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: nokogiri
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.7'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.7'
97
+ description: Ruby software to scrape multiple Australian State and Federal Government
98
+ data sources, and provide consistently formatted data
99
+ email:
100
+ - tennantje@gmail.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".gitignore"
106
+ - Gemfile
107
+ - LICENSE.md
108
+ - README.md
109
+ - lib/my_representatives.rb
110
+ - lib/my_representatives/abbreviatable.rb
111
+ - lib/my_representatives/act/csv_lower.rb
112
+ - lib/my_representatives/act/merge_lower.rb
113
+ - lib/my_representatives/act/web_index.rb
114
+ - lib/my_representatives/act/web_index_row.rb
115
+ - lib/my_representatives/act/web_lower.rb
116
+ - lib/my_representatives/act/web_show.rb
117
+ - lib/my_representatives/commonwealth/commonwealth.rb
118
+ - lib/my_representatives/commonwealth/csv_email.rb
119
+ - lib/my_representatives/commonwealth/csv_lower.rb
120
+ - lib/my_representatives/commonwealth/csv_upper.rb
121
+ - lib/my_representatives/commonwealth/merge_lower.rb
122
+ - lib/my_representatives/commonwealth/merge_upper.rb
123
+ - lib/my_representatives/commonwealth/web_index.rb
124
+ - lib/my_representatives/commonwealth/web_lower.rb
125
+ - lib/my_representatives/commonwealth/web_show.rb
126
+ - lib/my_representatives/commonwealth/web_upper.rb
127
+ - lib/my_representatives/electorate.rb
128
+ - lib/my_representatives/errors.rb
129
+ - lib/my_representatives/fileable.rb
130
+ - lib/my_representatives/guessable.rb
131
+ - lib/my_representatives/hashable.rb
132
+ - lib/my_representatives/nsw/csv_lower.rb
133
+ - lib/my_representatives/nsw/csv_upper.rb
134
+ - lib/my_representatives/nsw/merge_lower.rb
135
+ - lib/my_representatives/nsw/merge_upper.rb
136
+ - lib/my_representatives/nsw/web_index.rb
137
+ - lib/my_representatives/nsw/web_lower.rb
138
+ - lib/my_representatives/nsw/web_show.rb
139
+ - lib/my_representatives/nsw/web_upper.rb
140
+ - lib/my_representatives/nt/web_index.rb
141
+ - lib/my_representatives/nt/web_lower.rb
142
+ - lib/my_representatives/nt/web_show.rb
143
+ - lib/my_representatives/person.rb
144
+ - lib/my_representatives/qld/csv_lower.rb
145
+ - lib/my_representatives/qld/merge_lower.rb
146
+ - lib/my_representatives/qld/web_index.rb
147
+ - lib/my_representatives/qld/web_lower.rb
148
+ - lib/my_representatives/qld/web_show.rb
149
+ - lib/my_representatives/sa/csv_lower.rb
150
+ - lib/my_representatives/sa/csv_upper.rb
151
+ - lib/my_representatives/sa/merge_lower.rb
152
+ - lib/my_representatives/sa/merge_upper.rb
153
+ - lib/my_representatives/sa/web_index_lower.rb
154
+ - lib/my_representatives/sa/web_index_upper.rb
155
+ - lib/my_representatives/sa/web_lower.rb
156
+ - lib/my_representatives/sa/web_show.rb
157
+ - lib/my_representatives/sa/web_upper.rb
158
+ - lib/my_representatives/static.rb
159
+ - lib/my_representatives/tas/csv_lower.rb
160
+ - lib/my_representatives/tas/csv_upper.rb
161
+ - lib/my_representatives/version.rb
162
+ - lib/my_representatives/vic/csv_lower.rb
163
+ - lib/my_representatives/vic/csv_upper.rb
164
+ - lib/my_representatives/vic/merge_lower.rb
165
+ - lib/my_representatives/vic/merge_upper.rb
166
+ - lib/my_representatives/vic/web_index.rb
167
+ - lib/my_representatives/vic/web_lower.rb
168
+ - lib/my_representatives/vic/web_show.rb
169
+ - lib/my_representatives/vic/web_upper.rb
170
+ - lib/my_representatives/wa/csv_lower.rb
171
+ - lib/my_representatives/wa/csv_upper.rb
172
+ - lib/my_representatives/wa/merge_lower.rb
173
+ - lib/my_representatives/wa/merge_upper.rb
174
+ - lib/my_representatives/wa/web_index.rb
175
+ - lib/my_representatives/wa/web_lower.rb
176
+ - lib/my_representatives/wa/web_show.rb
177
+ - lib/my_representatives/wa/web_upper.rb
178
+ - my_representatives.gemspec
179
+ homepage: https://github.com/tennantje/MyRepresentatives
180
+ licenses:
181
+ - MIT
182
+ metadata: {}
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ requirements: []
198
+ rubyforge_project:
199
+ rubygems_version: 2.5.1
200
+ signing_key:
201
+ specification_version: 4
202
+ summary: Aggregates contact information for Australian State and Commonwealth Members,
203
+ and Senators
204
+ test_files: []