pippa 0.1.0
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 +15 -0
- data/.gitignore +20 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +706 -0
- data/README.md +70 -0
- data/Rakefile +9 -0
- data/lib/pippa.rb +446 -0
- data/lib/pippa/maps/Africa.png +0 -0
- data/lib/pippa/maps/Australia.png +0 -0
- data/lib/pippa/maps/Belgium.png +0 -0
- data/lib/pippa/maps/Canada.png +0 -0
- data/lib/pippa/maps/Caribbean.png +0 -0
- data/lib/pippa/maps/CentralAmerica.png +0 -0
- data/lib/pippa/maps/China.png +0 -0
- data/lib/pippa/maps/Europe.png +0 -0
- data/lib/pippa/maps/France.png +0 -0
- data/lib/pippa/maps/Germany.png +0 -0
- data/lib/pippa/maps/Hawaii.png +0 -0
- data/lib/pippa/maps/India.png +0 -0
- data/lib/pippa/maps/Italy.png +0 -0
- data/lib/pippa/maps/Japan.png +0 -0
- data/lib/pippa/maps/Korea.png +0 -0
- data/lib/pippa/maps/MalaysiaIndonesia.png +0 -0
- data/lib/pippa/maps/MiddleEast.png +0 -0
- data/lib/pippa/maps/NOSEFI.png +0 -0
- data/lib/pippa/maps/Netherlands.png +0 -0
- data/lib/pippa/maps/NewZealand.png +0 -0
- data/lib/pippa/maps/Philippines.png +0 -0
- data/lib/pippa/maps/SouthAmerica.png +0 -0
- data/lib/pippa/maps/UK.png +0 -0
- data/lib/pippa/maps/USA100.png +0 -0
- data/lib/pippa/maps/USA200.png +0 -0
- data/lib/pippa/maps/USA50-new.png +0 -0
- data/lib/pippa/maps/World100.png +0 -0
- data/lib/pippa/maps/World50-new.png +0 -0
- data/lib/pippa/maps/_info +34 -0
- data/lib/pippa/maps/_zipcodes.csv +42523 -0
- data/lib/pippa/version.rb +4 -0
- data/pippa.gemspec +27 -0
- data/spec/data/zipcodes.jpg +0 -0
- data/spec/data/zipcodes.png +0 -0
- data/spec/lib/map_spec.rb +43 -0
- data/spec/lib/pippa_spec.rb +13 -0
- data/spec/spec_helper.rb +31 -0
- metadata +162 -0
data/pippa.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'pippa/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "pippa"
|
8
|
+
spec.version = Pippa::VERSION
|
9
|
+
spec.authors = ["Gene Ressler"]
|
10
|
+
spec.email = ["gene.ressler@gmail.com"]
|
11
|
+
spec.description = %q{Draw dots on maps by lat/lon or zip code.}
|
12
|
+
spec.summary = %q{Port of the plot-latlon utility from CAIDA (http://www.caida.org).}
|
13
|
+
spec.homepage = "https://github.com/gene-ressler/pippa/wiki"
|
14
|
+
spec.license = "GPLv3"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/) +
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# Make work on earlier versions, but this is where testing has been performed.
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
23
|
+
spec.add_development_dependency "rake", "~> 10.1"
|
24
|
+
spec.add_development_dependency "rspec", "~> 2.14"
|
25
|
+
spec.add_development_dependency "ruby-prof", "~> 0.13"
|
26
|
+
spec.add_runtime_dependency "rmagick", "~> 2.13"
|
27
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pippa::Map do
|
4
|
+
|
5
|
+
let(:map) { Pippa::Map.zipcode_map }
|
6
|
+
|
7
|
+
it 'should be correct width' do
|
8
|
+
map.width.should == 1046
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should be correct width' do
|
12
|
+
map.height.should == 710
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should have correct number of info records' do
|
16
|
+
i = Pippa::Map.info
|
17
|
+
i.size.should == 2
|
18
|
+
i[:map].size.should == 30
|
19
|
+
i[:projection].size.should == 4
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should have right number of zipcodes' do
|
23
|
+
Pippa::Map.zips.size.should == 41874
|
24
|
+
end
|
25
|
+
|
26
|
+
# Here I'm assuming timestamp metadata chunk always has same size.
|
27
|
+
# PNG docs are encouraging on this:
|
28
|
+
# http://www.libpng.org/pub/png/book/chapter11.html#png.ch11.div.2
|
29
|
+
it 'should have matching PNG format' do
|
30
|
+
test_map = get_test_map('png')
|
31
|
+
new_map = map.to_png
|
32
|
+
test_map.size.should == new_map.size
|
33
|
+
# A minor difference will occur in header due to timestamp, etc.
|
34
|
+
diff_count(test_map, new_map).should be < 100
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should have matching JPG format' do
|
38
|
+
test_map = get_test_map('jpg')
|
39
|
+
new_map = map.to_jpg
|
40
|
+
test_map.size.should == new_map.size
|
41
|
+
diff_count(test_map, new_map).should be == 0
|
42
|
+
end
|
43
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'pippa'
|
2
|
+
require 'digest/md5'
|
3
|
+
|
4
|
+
# Utility functions for use in specs
|
5
|
+
module Utilities
|
6
|
+
|
7
|
+
# Return contents of the zip code map exemplars.
|
8
|
+
def get_test_map(fmt)
|
9
|
+
File.open("#{File.dirname(__FILE__)}/data/zipcodes.#{fmt}", 'rb') { |f| f.read }
|
10
|
+
end
|
11
|
+
|
12
|
+
# Return a count of byte differences between two strings.
|
13
|
+
def diff_count(a, b)
|
14
|
+
return nil unless a.length == b.length
|
15
|
+
n, b_iterator = 0, b.bytes
|
16
|
+
a.bytes {|ia| n += 1 unless ia == b_iterator.next }
|
17
|
+
n
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
# Set configuration parameters of RSpec.
|
23
|
+
RSpec.configure do |config|
|
24
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
25
|
+
config.run_all_when_everything_filtered = true
|
26
|
+
# config.filter_run :focus
|
27
|
+
config.order = 'random'
|
28
|
+
|
29
|
+
# Make the module above available in tests.
|
30
|
+
config.include(Utilities)
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pippa
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gene Ressler
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-12-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.1'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.14'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.14'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ruby-prof
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.13'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.13'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rmagick
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.13'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.13'
|
83
|
+
description: Draw dots on maps by lat/lon or zip code.
|
84
|
+
email:
|
85
|
+
- gene.ressler@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- Gemfile
|
92
|
+
- LICENSE.txt
|
93
|
+
- README.md
|
94
|
+
- Rakefile
|
95
|
+
- lib/pippa.rb
|
96
|
+
- lib/pippa/maps/Africa.png
|
97
|
+
- lib/pippa/maps/Australia.png
|
98
|
+
- lib/pippa/maps/Belgium.png
|
99
|
+
- lib/pippa/maps/Canada.png
|
100
|
+
- lib/pippa/maps/Caribbean.png
|
101
|
+
- lib/pippa/maps/CentralAmerica.png
|
102
|
+
- lib/pippa/maps/China.png
|
103
|
+
- lib/pippa/maps/Europe.png
|
104
|
+
- lib/pippa/maps/France.png
|
105
|
+
- lib/pippa/maps/Germany.png
|
106
|
+
- lib/pippa/maps/Hawaii.png
|
107
|
+
- lib/pippa/maps/India.png
|
108
|
+
- lib/pippa/maps/Italy.png
|
109
|
+
- lib/pippa/maps/Japan.png
|
110
|
+
- lib/pippa/maps/Korea.png
|
111
|
+
- lib/pippa/maps/MalaysiaIndonesia.png
|
112
|
+
- lib/pippa/maps/MiddleEast.png
|
113
|
+
- lib/pippa/maps/NOSEFI.png
|
114
|
+
- lib/pippa/maps/Netherlands.png
|
115
|
+
- lib/pippa/maps/NewZealand.png
|
116
|
+
- lib/pippa/maps/Philippines.png
|
117
|
+
- lib/pippa/maps/SouthAmerica.png
|
118
|
+
- lib/pippa/maps/UK.png
|
119
|
+
- lib/pippa/maps/USA100.png
|
120
|
+
- lib/pippa/maps/USA200.png
|
121
|
+
- lib/pippa/maps/USA50-new.png
|
122
|
+
- lib/pippa/maps/World100.png
|
123
|
+
- lib/pippa/maps/World50-new.png
|
124
|
+
- lib/pippa/maps/_info
|
125
|
+
- lib/pippa/maps/_zipcodes.csv
|
126
|
+
- lib/pippa/version.rb
|
127
|
+
- pippa.gemspec
|
128
|
+
- spec/data/zipcodes.jpg
|
129
|
+
- spec/data/zipcodes.png
|
130
|
+
- spec/lib/map_spec.rb
|
131
|
+
- spec/lib/pippa_spec.rb
|
132
|
+
- spec/spec_helper.rb
|
133
|
+
homepage: https://github.com/gene-ressler/pippa/wiki
|
134
|
+
licenses:
|
135
|
+
- GPLv3
|
136
|
+
metadata: {}
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.0.3
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: Port of the plot-latlon utility from CAIDA (http://www.caida.org).
|
157
|
+
test_files:
|
158
|
+
- spec/data/zipcodes.jpg
|
159
|
+
- spec/data/zipcodes.png
|
160
|
+
- spec/lib/map_spec.rb
|
161
|
+
- spec/lib/pippa_spec.rb
|
162
|
+
- spec/spec_helper.rb
|