barton 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/AUTHORS +7 -0
- data/Gemfile +6 -0
- data/LICENSE +22 -0
- data/README.md +125 -0
- data/Rakefile +13 -0
- data/barton.gemspec +22 -0
- data/bin/barton +38 -0
- data/config.ru +4 -0
- data/data/.DS_Store +0 -0
- data/data/README.md +31 -0
- data/data/geo/nsw-federal.yaml +21965 -0
- data/data/geo/nsw-local.yaml +95263 -0
- data/data/geo/nsw-state.yaml +33353 -0
- data/data/geo/qld-federal.yaml +15019 -0
- data/data/geo/qld-state.yaml +20997 -0
- data/data/geo/vic-federal.yaml +8097 -0
- data/data/geo/vic-local.yaml +35686 -0
- data/data/geo/vic-state.yaml +14445 -0
- data/data/nsw-federal.yaml +337 -0
- data/data/nsw-local.yaml +2472 -0
- data/data/nsw-state.yaml +663 -0
- data/data/qld-federal.yaml +220 -0
- data/data/qld-state.yaml +643 -0
- data/data/vic-federal.yaml +149 -0
- data/data/vic-local.yaml +2255 -0
- data/data/vic-state.yaml +665 -0
- data/lib/.DS_Store +0 -0
- data/lib/barton/.DS_Store +0 -0
- data/lib/barton/app.rb +68 -0
- data/lib/barton/core.rb +174 -0
- data/lib/barton/version.rb +3 -0
- data/lib/barton.rb +3 -0
- data/pkg/barton-0.0.1.gem +0 -0
- data/specs/.DS_Store +0 -0
- data/specs/data/.DS_Store +0 -0
- data/specs/data/data-processed.yaml +39 -0
- data/specs/data/data-raw.yaml +43 -0
- data/specs/data/geo/data-processed.yaml +256 -0
- data/specs/data/geo/data-raw.yaml +256 -0
- data/specs/data/master/data-processed.yaml +39 -0
- data/specs/data/master/data-raw.yaml +31 -0
- data/specs/data/master/geo.yaml +256 -0
- data/specs/data/master/trap.txt +0 -0
- data/specs/route_spec.rb +36 -0
- data/specs/search_spec.rb +60 -0
- data/specs/setup_spec.rb +77 -0
- metadata +139 -0
data/specs/setup_spec.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'barton/core'
|
4
|
+
|
5
|
+
describe Barton::Core do
|
6
|
+
describe "parse_yaml" do
|
7
|
+
before :each do
|
8
|
+
FileUtils.rm( 'specs/data/tmp.yaml' ) if File.exist?( 'specs/data/tmp.yaml' )
|
9
|
+
FileUtils.cp( 'specs/data/master/geo.yaml', 'specs/data/geo/data-processed.yaml' )
|
10
|
+
FileUtils.cp( 'specs/data/master/data-raw.yaml', 'specs/data/data-raw.yaml' )
|
11
|
+
FileUtils.cp( 'specs/data/master/data-processed.yaml', 'specs/data/data-processed.yaml' )
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should accept a yaml file and return an array" do
|
15
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-raw.yaml' )
|
16
|
+
electorates.must_be_instance_of Array
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should only accept a yaml files" do
|
20
|
+
Barton::Core.parse_yaml( 'spects/data/asfasds.xml' ).must_be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should parse yaml data" do
|
24
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-raw.yaml' )
|
25
|
+
electorates.length.must_equal 5
|
26
|
+
electorates[0]['name'].must_equal 'Queensland'
|
27
|
+
electorates[1]['tags'][1].must_equal 'State'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should create an id if none exists" do
|
31
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-raw.yaml' )
|
32
|
+
electorates[1]['id'].must_equal 'e07a89'
|
33
|
+
electorates[0]['id'].must_equal '83a0a8'
|
34
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-processed.yaml' )
|
35
|
+
electorates[0]['id'].must_equal 'e07a89'
|
36
|
+
electorates[3]['id'].must_equal '801187'
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should make geobox" do
|
41
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-raw.yaml' )
|
42
|
+
electorates[1].has_key?( 'geobox' ).must_equal true
|
43
|
+
electorates[2]['geobox']['north'].must_equal -27.28691721973524
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should find associated geo.yaml file if present" do
|
47
|
+
electorates = Barton::Core.parse_yaml( 'specs/data/data-processed.yaml' )
|
48
|
+
electorates[0]['id'].must_equal 'e07a89'
|
49
|
+
electorates[1]['geobox']['south'].must_equal -27.389226
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'create_geobox' do
|
54
|
+
before do
|
55
|
+
@boundaries = ['153.0557,-27.5257 153.0565,-27.5271 153.057,-27.5287 153.0588,-27.5382 153.0592,-27.5382 153.0599,-27.54060000000001,0 153.061,27.5427 153.0625,-27.5448 153.0671,-27.54980000000001 153.0688,-27.5523', '-153.0671,-27.54980000000001,0', '0,0,0 50,50,0' ]
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should only accept a array of boundaries" do
|
59
|
+
Barton::Core.create_geobox( 'hi' ).must_be_nil
|
60
|
+
Barton::Core.create_geobox( @boundaries ).must_be_instance_of Hash
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should create a geobox for the boundaries provided" do
|
64
|
+
box = Barton::Core.create_geobox( @boundaries )
|
65
|
+
box.has_key?( 'south' ).must_equal true
|
66
|
+
box['north'].must_equal 50.0
|
67
|
+
box['south'].must_equal -27.5523
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should save geo data in the geo dir" do
|
71
|
+
Barton::Core.parse_yaml( 'specs/data/data-raw.yaml' )
|
72
|
+
File.open( 'specs/data/data-raw.yaml' ).grep( /id:/ ).length.must_equal 5
|
73
|
+
File.open( 'specs/data/data-raw.yaml' ).grep( /boundaries:|geobox:/ ).length.must_equal 0
|
74
|
+
File.open( 'specs/data/geo/data-raw.yaml' ).grep( /boundaries:|geobox:/ ).length.must_equal 8
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
metadata
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: barton
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Dave Kinkead
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-07-16 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sinatra
|
16
|
+
requirement: &70238435686220 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.3.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70238435686220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: trollop
|
27
|
+
requirement: &70238435682680 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70238435682680
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: tire
|
38
|
+
requirement: &70238435674800 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.4.2
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70238435674800
|
47
|
+
description: Barton is an API for Australian electorates and politicains
|
48
|
+
email:
|
49
|
+
- dave@kinkead.com.au
|
50
|
+
executables:
|
51
|
+
- barton
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- .gitignore
|
56
|
+
- AUTHORS
|
57
|
+
- Gemfile
|
58
|
+
- LICENSE
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- barton.gemspec
|
62
|
+
- bin/barton
|
63
|
+
- config.ru
|
64
|
+
- data/.DS_Store
|
65
|
+
- data/README.md
|
66
|
+
- data/geo/nsw-federal.yaml
|
67
|
+
- data/geo/nsw-local.yaml
|
68
|
+
- data/geo/nsw-state.yaml
|
69
|
+
- data/geo/qld-federal.yaml
|
70
|
+
- data/geo/qld-state.yaml
|
71
|
+
- data/geo/vic-federal.yaml
|
72
|
+
- data/geo/vic-local.yaml
|
73
|
+
- data/geo/vic-state.yaml
|
74
|
+
- data/nsw-federal.yaml
|
75
|
+
- data/nsw-local.yaml
|
76
|
+
- data/nsw-state.yaml
|
77
|
+
- data/qld-federal.yaml
|
78
|
+
- data/qld-state.yaml
|
79
|
+
- data/vic-federal.yaml
|
80
|
+
- data/vic-local.yaml
|
81
|
+
- data/vic-state.yaml
|
82
|
+
- lib/.DS_Store
|
83
|
+
- lib/barton.rb
|
84
|
+
- lib/barton/.DS_Store
|
85
|
+
- lib/barton/app.rb
|
86
|
+
- lib/barton/core.rb
|
87
|
+
- lib/barton/version.rb
|
88
|
+
- pkg/barton-0.0.1.gem
|
89
|
+
- specs/.DS_Store
|
90
|
+
- specs/data/.DS_Store
|
91
|
+
- specs/data/data-processed.yaml
|
92
|
+
- specs/data/data-raw.yaml
|
93
|
+
- specs/data/geo/data-processed.yaml
|
94
|
+
- specs/data/geo/data-raw.yaml
|
95
|
+
- specs/data/master/data-processed.yaml
|
96
|
+
- specs/data/master/data-raw.yaml
|
97
|
+
- specs/data/master/geo.yaml
|
98
|
+
- specs/data/master/trap.txt
|
99
|
+
- specs/route_spec.rb
|
100
|
+
- specs/search_spec.rb
|
101
|
+
- specs/setup_spec.rb
|
102
|
+
homepage: http://barton.experiementsindemocracy.org
|
103
|
+
licenses: []
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options: []
|
106
|
+
require_paths:
|
107
|
+
- lib
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
requirements: []
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 1.8.15
|
123
|
+
signing_key:
|
124
|
+
specification_version: 3
|
125
|
+
summary: Programmable political access
|
126
|
+
test_files:
|
127
|
+
- specs/.DS_Store
|
128
|
+
- specs/data/.DS_Store
|
129
|
+
- specs/data/data-processed.yaml
|
130
|
+
- specs/data/data-raw.yaml
|
131
|
+
- specs/data/geo/data-processed.yaml
|
132
|
+
- specs/data/geo/data-raw.yaml
|
133
|
+
- specs/data/master/data-processed.yaml
|
134
|
+
- specs/data/master/data-raw.yaml
|
135
|
+
- specs/data/master/geo.yaml
|
136
|
+
- specs/data/master/trap.txt
|
137
|
+
- specs/route_spec.rb
|
138
|
+
- specs/search_spec.rb
|
139
|
+
- specs/setup_spec.rb
|