static_map 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/static_map.rb CHANGED
@@ -19,10 +19,10 @@ module StaticMap
19
19
  # center String - center the map around this location
20
20
  # zoom Integer - zoom level of the map
21
21
  # size String - in pixels of the image. 500x500
22
- # sensor Boolean - autodetect user user location
23
- # markers Hash - location of pin on map, requires location address or lat/long
24
- # maptype String - satelite, road... etc
25
- # path String - where to save the file
22
+ # sensor Boolean - autodetect user location
23
+ # markers Array of Hashes - location of pins on map. Requires a location address or lat/long coordinates
24
+ # maptype String - type of map (satellite, road, hybrid, terrain)
25
+ # path String - path to write file to when #save is called
26
26
  # alt String - alt text if using image tag
27
27
  # title String - title text if using image tag
28
28
  attr_accessor :center, :zoom, :size, :sensor, :markers, :maptype, :path, :alt, :title
@@ -42,11 +42,11 @@ module StaticMap
42
42
  def save
43
43
  raise "Please set the path argument to save the image" unless @path
44
44
 
45
- File.open(@path, "w") { |f| f.write(open(url).read) }
45
+ File.open(@path, "w") { |f| f.write( open(url).read ) }
46
46
  end
47
47
 
48
48
  def url
49
- "#{URL}?#{params}"
49
+ "#{URL}?#{params}".strip
50
50
  end
51
51
 
52
52
  def params
@@ -61,12 +61,12 @@ module StaticMap
61
61
  def marker_params
62
62
  @markers.map do |marker|
63
63
  str = ["markers="]
64
- str << ["color:#{marker[:color]}"] if marker[:color]
65
- str << ["label:#{marker[:label]}"] if marker[:label]
66
- str << ["#{marker[:location]}"] if marker[:location]
64
+ str << [CGI.escape("color:#{marker[:color]}")] if marker[:color]
65
+ str << [CGI.escape("label:#{marker[:label]}")] if marker[:label]
66
+ str << [CGI.escape("#{marker[:location]}")] if marker[:location]
67
67
  str << ["#{marker[:latitude]},#{marker[:longitude]}"] if marker[:latitude] && marker[:longitude]
68
- str.join("|")
69
- end.join("&").gsub(/\=\|/i, '=')
68
+ str.map{|v| v }.join("%7C") # %7C
69
+ end.join("&").gsub(/\=\%7C/i, '=')
70
70
  end
71
71
 
72
72
  def to_html
@@ -1,3 +1,3 @@
1
1
  module StaticMap
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -7,22 +7,22 @@ class StaticMapTest < Test::Unit::TestCase
7
7
 
8
8
  def test_defaults
9
9
  img = StaticMap::Image.new
10
- assert_equal "http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true", img.url
11
- assert_equal %{<img src='http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true' title='' alt=''/>}, img.to_html
10
+ assert_equal "http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true&maptype=road", img.url
11
+ assert_equal %{<img src='http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true&maptype=road' title='' alt=''/>}, img.to_html
12
12
  end
13
13
 
14
14
  def test_params
15
15
  img = StaticMap::Image.new
16
- assert_equal "size=500x500&zoom=1&sensor=true", img.params
16
+ assert_equal "size=500x500&zoom=1&sensor=true&maptype=road", img.params
17
17
  img.size = '900x900'
18
- assert_equal "size=900x900&zoom=1&sensor=true", img.params
18
+ assert_equal "size=900x900&zoom=1&sensor=true&maptype=road", img.params
19
19
  end
20
20
 
21
21
  def test_marker_params
22
22
  img = StaticMap::Image.new
23
23
  img.markers << { latitude: 44.477462, longitude: -73.212032, color: "red", label: "A" }
24
24
  img.markers << { location: "Winooski, Vermont", color: "red", label: "B" }
25
- assert_equal "markers=color:red|label:A|44.477462,-73.212032&markers=color:red|label:B|Winooski, Vermont", img.marker_params
25
+ assert_equal "markers=color%3Ared%7Clabel%3AA%7C44.477462,-73.212032&markers=color%3Ared%7Clabel%3AB%7CWinooski%2C+Vermont", img.marker_params
26
26
  end
27
27
 
28
28
  def test_url
@@ -32,18 +32,21 @@ class StaticMapTest < Test::Unit::TestCase
32
32
  img.zoom = 11
33
33
  img.sensor = false
34
34
  img.markers << { latitude: 44.477462, longitude: -73.212032, color: "green", label: "A" }
35
- assert_equal "http://maps.google.com/maps/api/staticmap?size=300x300&zoom=11&sensor=false&markers=color:green|label:A|44.477462,-73.212032", img.url
35
+ assert_equal "http://maps.google.com/maps/api/staticmap?size=300x300&zoom=11&sensor=false&maptype=road&markers=color%3Agreen%7Clabel%3AA%7C44.477462,-73.212032", img.url
36
36
  end
37
37
 
38
38
  def test_to_html
39
39
  img = StaticMap::Image.new(:size => "500x500", :alt => "Alt Test", :title => "Title Test")
40
- assert_equal "<img src='http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true' title='Title Test' alt='Alt Test'/>", img.to_html
40
+ assert_equal "<img src='http://maps.google.com/maps/api/staticmap?size=500x500&zoom=1&sensor=true&maptype=road' title='Title Test' alt='Alt Test'/>", img.to_html
41
41
  end
42
42
 
43
43
  def test_save
44
44
  # TODO fake the remote resource
45
- img = StaticMap::Image.new(path: "./test/tmp.png").save
45
+ img = StaticMap::Image.new(path: "./test/tmp.png")
46
+ img.markers << { latitude: 44.477462, longitude: -73.212032, color: "red", label: "B" }
47
+ img.markers << { location: "Santa Barbara,California", color: "blue", label: "A" }
48
+ img.save
46
49
  assert File.exists?("./test/tmp.png")
47
- File.delete("./test/tmp.png")
50
+ # File.delete("./test/tmp.png")
48
51
  end
49
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: static_map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: