usamap 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDdhOGExNjgxMzhkZjQ1M2UwNmZjOGJkNzBjNDYyZGE1ZGMxYjYxNg==
5
+ data.tar.gz: !binary |-
6
+ MDk0NTMzNjVkYTQzYjU2NzU4NjJiMDI3M2U4ZGFmM2ExMDBkMTUzNQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OGY0M2FhMGE3N2Q4MjJjOTIyMzdhMjJkMDEwY2JlODc0MjMwODdjMWMzNDkz
10
+ ZTViN2JhZTZmMDVjMDU2MGU1YTMzZTM2NzljYzE4NzU1MGFlNjU2YWQ2NGYy
11
+ NzY2NWVlMGNjYzYzNzI0MzliYzAxMDIxM2YyYTk0OThiZDYwYTI=
12
+ data.tar.gz: !binary |-
13
+ NjNkOWM1MGQ5MWI1MmNjOGEwODk2NzQ1NWYzNmI1NTVhNzkzNmQwZTgzZTQ5
14
+ YWE5YWNhYTNhN2M4YmQ1ZDA0NTAxYzhjMWNiZDI0NmE0ODc1ZmIyODA3Nzk4
15
+ NjNlMGE5N2M1MGQ0ZGQ4YmI2YzcyMzBkY2RjOTIzZGExMjc0NmY=
@@ -0,0 +1,22 @@
1
+ Copyright (c) salemine.com
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,55 @@
1
+ usamap
2
+ ======
3
+
4
+ Create a colorized svg map of the USA using ruby. Plot ranges and colors using FIPS coordinates for US counties.
5
+
6
+ ## Installation
7
+
8
+ ~~~.ruby
9
+ gem install usamap
10
+ ~~~
11
+
12
+
13
+ ## Example Usage
14
+
15
+ ~~~.ruby
16
+ require 'usamap'
17
+
18
+ colors = {}
19
+ colors[0..5] = '#CD5C5C'
20
+ colors[6..100] = 'blue'
21
+
22
+ stats = {}
23
+ stats['35001'] = 3 # 35001 is FIPS for Bernalillo, NM
24
+ stats['35049'] = 99 # 35049 is FIPS for Santa Fe, NM
25
+
26
+ my_map = USAmap.new(stats, colors)
27
+ puts my_map
28
+ ~~~
29
+
30
+
31
+ ## Example Output
32
+
33
+
34
+ ![alt text](https://raw.github.com/wiki/salemine/usamap/nm_counties.png "Sample Map")
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ ## Credits/Resources
43
+ SVG Map:
44
+ http://commons.wikimedia.org/wiki/File:Usa_counties_large.svg
45
+
46
+
47
+ FIPS Codes:
48
+ http://en.wikipedia.org/wiki/FIPS_county_code
49
+
50
+
51
+ ## Inspiration
52
+ http://flowingdata.com/2009/11/12/how-to-make-a-us-county-thematic-map-using-free-tools/
53
+
54
+
55
+
@@ -0,0 +1,5 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(:spec)
4
+
5
+ task :default => :spec
@@ -1,5 +1,7 @@
1
-
2
- @@svg = <<END_OF_SVG
1
+ module UsaCountiesSvg
2
+ # The blank SVG (Scalable Vector Graphics) map of the USA
3
+ def self.svg
4
+ @svg = <<-END_OF_SVG
3
5
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4
6
  <!-- Created with Inkscape (http://www.inkscape.org/) -->
5
7
 
@@ -35,7 +37,7 @@
35
37
  </rdf:RDF>
36
38
  </metadata>
37
39
  <defs id='defs1930'></defs>
38
-
40
+
39
41
  <style type='text/css' id='style_css_sheet'>
40
42
  /*
41
43
  * Below are Cascading Style Sheet (CSS) definitions in use in this file,
@@ -46,7 +48,7 @@
46
48
  *
47
49
  *
48
50
  */
49
-
51
+
50
52
  .counties {fill:#d0d0d0;fill-rule:nonzero;stroke:#000000;stroke-width:0.178287;}
51
53
  .State_Lines {fill:none;stroke:#221e1f;stroke-width:0.89143497;}
52
54
  .separator {fill:none;stroke:#a9a9a9;stroke-width:2.3177309;}
@@ -12630,5 +12632,6 @@
12630
12632
  class="separator"
12631
12633
  id="#separator" />
12632
12634
  </svg>
12633
-
12634
- END_OF_SVG
12635
+ END_OF_SVG
12636
+ end
12637
+ end
@@ -1,19 +1,24 @@
1
- require 'usa_counties_svg'
1
+ require File.join(File.dirname(__FILE__), 'usa_counties_svg')
2
2
 
3
+ # @author salemine <info@salemine.com>
3
4
  class USAmap
4
- attr_accessor :stats_h, :colors_h
5
-
5
+ include UsaCountiesSvg
6
+ # @param [Hash] stats_h stats to plot by county FIPS value eg stats_h ['35001'] = 3
7
+ # @param [Hash] colors_h colors to plot for numeric ranges eg colors_h [0..5] = '#CD5C5C'
6
8
  def initialize(stats_h = {}, colors_h = {})
7
9
  @stats_h, @colors_h = stats_h, colors_h
8
10
  end
9
11
 
12
+ # == Returns:
13
+ # A colorized SVG (Scalable Vector Graphics) map of the USA
10
14
  def to_s
11
15
  css = ''
12
16
  @stats_h.each do |fips, val|
13
17
  colr = @colors_h.select { |range, hex| range.member?(val) }.values.first
14
18
  css << ".c#{fips} {fill:#{colr}}\n"
15
19
  end
16
- @@svg.gsub!(/\/\*CSS insertion point\*\//, css)
20
+ svg = UsaCountiesSvg.svg
21
+ css.empty? ? svg : svg.gsub!(/\/\*CSS insertion point\*\//, "/*CSS insertion point*/\n#{css}")
17
22
  end
18
-
23
+
19
24
  end
@@ -0,0 +1,17 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require 'usamap'
3
+
4
+ module Usamap
5
+
6
+ describe USAmap do
7
+ before(:each) do
8
+ @blank_svg = UsaCountiesSvg.svg
9
+ end
10
+
11
+ describe "should be a blank map when instantiated without params" do
12
+ its(:to_s) { should == @blank_svg }
13
+ end
14
+
15
+ context "with color and stats hashes passed when instantiated" do
16
+ it "should insert one css class definition" do
17
+ colors = {}; colors[6..100] = 'blue'
18
+ stats = {}; stats['35049'] = 99
19
+ my_map = USAmap.new(stats, colors)
20
+
21
+ my_map.to_s.should include (".c35049 {fill:blue}")
22
+ end
23
+
24
+ it "should be equal to the blank_svg with the css inserted" do
25
+ colors = {}; colors[6..100] = 'blue'
26
+ stats = {}; stats['35049'] = 99
27
+ my_map = USAmap.new(stats, colors)
28
+ blank_svg_tweaked = @blank_svg.gsub(/\/\*CSS insertion point\*\//, "/*CSS insertion point*/\n.c35049 {fill:blue}\n")
29
+
30
+ blank_svg_tweaked.should == my_map.to_s
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ end
metadata CHANGED
@@ -1,17 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usamap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - salemine
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-05 00:00:00.000000000 Z
13
- dependencies: []
14
- description: A gem to draw a svg map of the USA by county
11
+ date: 2013-04-16 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: 2.13.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.13.0
27
+ description: Create a colorized svg map of the USA by county using FIPS coordinates
15
28
  email: info@salemine.com
16
29
  executables: []
17
30
  extensions: []
@@ -19,29 +32,34 @@ extra_rdoc_files: []
19
32
  files:
20
33
  - lib/usamap.rb
21
34
  - lib/usa_counties_svg.rb
35
+ - Rakefile
36
+ - spec/spec_helper.rb
37
+ - spec/usamap/usamap_spec.rb
38
+ - README.md
39
+ - LICENSE.txt
22
40
  homepage: https://github.com/salemine/usamap
23
- licenses: []
41
+ licenses:
42
+ - MIT
43
+ metadata: {}
24
44
  post_install_message:
25
45
  rdoc_options: []
26
46
  require_paths:
27
47
  - lib
28
48
  required_ruby_version: !ruby/object:Gem::Requirement
29
- none: false
30
49
  requirements:
31
50
  - - ! '>='
32
51
  - !ruby/object:Gem::Version
33
52
  version: '0'
34
53
  required_rubygems_version: !ruby/object:Gem::Requirement
35
- none: false
36
54
  requirements:
37
55
  - - ! '>='
38
56
  - !ruby/object:Gem::Version
39
57
  version: '0'
40
58
  requirements: []
41
59
  rubyforge_project:
42
- rubygems_version: 1.8.23
60
+ rubygems_version: 2.0.3
43
61
  signing_key:
44
- specification_version: 3
45
- summary: A map of the USA
62
+ specification_version: 4
63
+ summary: Map of the USA in svg format. Plot colors via FIPS county coordinates.
46
64
  test_files: []
47
65
  has_rdoc: