googlestaticmap 1.2.2 → 1.2.3
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 +4 -4
- data/History.txt +3 -0
- data/README.md +5 -1
- data/lib/googlestaticmap.rb +18 -7
- data/test/tc_google_static_map.rb +23 -6
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad36a4237b16d0a78f5275fef2732de1fa38c8d3
|
4
|
+
data.tar.gz: 76f929f6ea26f88b05628e85fb5059baca039a5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b21ce6e938e92acf3dff7bd4c481d7830aea9450eb143193356cec28964bde44e15d42295335399ca08039c00174897aacd09d0051aacb0720c4d479aaae6a98
|
7
|
+
data.tar.gz: 6b1304bf3165f499139823589681a35c67ef79e76a78411b7edf6551c4e3a54affa2d5e1995e9fba096588b5a36cddf4aad6491c91d4081a6dbb17048f0de0c2
|
data/History.txt
CHANGED
data/README.md
CHANGED
@@ -27,6 +27,10 @@ this URL as the src of an img element on an HTML page
|
|
27
27
|
map = GoogleStaticMap.new(:zoom => 11, :center => MapLocation.new(:address => "Washington, DC"))
|
28
28
|
image_url = map.url(:auto)
|
29
29
|
|
30
|
+
When using the url function you can force the final url to use http or https:
|
31
|
+
|
32
|
+
image_url = map.url('http')
|
33
|
+
|
30
34
|
Get a map with blue markers at the White House and the Supreme Court, zoomed
|
31
35
|
the closest that the map can be with both markers visible, at the default
|
32
36
|
size. image will be the binary data of the map
|
@@ -74,7 +78,7 @@ You can also specify a channel for better tracking if you are a Maps For Busines
|
|
74
78
|
|
75
79
|
## Compatibility
|
76
80
|
|
77
|
-
This has been tested and is working with Ruby 1.
|
81
|
+
This has been tested and is working with Ruby 1.9.3, 2.0.0, 2.1.1, 2.1.10, 2.2.6, 2.3.3, 2.4.0, and the latest JRuby.
|
78
82
|
|
79
83
|
## Author
|
80
84
|
|
data/lib/googlestaticmap.rb
CHANGED
@@ -64,14 +64,19 @@ class GoogleStaticMap
|
|
64
64
|
# If proxy_address is set, set this to the port of the proxy server
|
65
65
|
attr_accessor :proxy_port
|
66
66
|
|
67
|
-
# API Key - see https://developers.google.com/maps/documentation/
|
68
|
-
# Note that if this is set,
|
67
|
+
# API Key - see https://developers.google.com/maps/documentation/static-maps/get-api-key#key for details
|
68
|
+
# Note that if this is set, you cannot provide a client ID
|
69
69
|
attr_accessor :api_key
|
70
70
|
|
71
|
-
# ClientId
|
72
|
-
# see https://developers.google.com/maps/documentation/
|
73
|
-
#
|
71
|
+
# ClientId for business customers -
|
72
|
+
# see https://developers.google.com/maps/documentation/static-maps/get-api-key#key for details
|
73
|
+
# Note that if this is set, you cannot provide an API key.
|
74
74
|
attr_accessor :client_id
|
75
|
+
|
76
|
+
# The private key, also known as the URL signing secret, is used to to generate the signature parameter
|
77
|
+
# in the URL. This is required if you are using a client ID, or a premium API key, and is optional
|
78
|
+
# if you are using a standard API key. See
|
79
|
+
# https://developers.google.com/maps/documentation/static-maps/get-api-key for more details
|
75
80
|
attr_accessor :private_key
|
76
81
|
|
77
82
|
# Channel - identifier channel for tracking API source in enterprise tools
|
@@ -100,6 +105,12 @@ class GoogleStaticMap
|
|
100
105
|
unless @center || @markers.length > 0 || @paths.length > 0
|
101
106
|
raise Exception.new("Need to specify either a center, markers, or a path")
|
102
107
|
end
|
108
|
+
if !@api_key.nil? && !@client_id.nil?
|
109
|
+
rasise Exception.new("You cannot specify both an API key and a client ID, only specify one")
|
110
|
+
end
|
111
|
+
if !@client_id.nil? && @private_key.nil?
|
112
|
+
raise Exception.new("private_key must be specified if using a client ID")
|
113
|
+
end
|
103
114
|
protocol = 'http' unless protocol == 'http' || protocol == 'https' ||
|
104
115
|
protocol == :auto
|
105
116
|
protocol = protocol == :auto ? '' : protocol + ":"
|
@@ -115,9 +126,9 @@ class GoogleStaticMap
|
|
115
126
|
@paths.each {|p| attrs << ["path",p.to_s] }
|
116
127
|
attrs << ["center", @center.to_s] if !@center.nil?
|
117
128
|
attrs << ["key", @api_key] if !@api_key.nil?
|
118
|
-
attrs << ["client", @client_id] if
|
129
|
+
attrs << ["client", @client_id] if !@client_id.nil?
|
119
130
|
path << attrs.sort_by {|k,v| k}.collect {|attr| "#{attr[0]}=#{attr[1]}"}.join("&")
|
120
|
-
if
|
131
|
+
if (!@api_key.nil? || !@client_id.nil?) && !@private_key.nil?
|
121
132
|
signature = GoogleStaticMapHelpers.sign(path, @private_key)
|
122
133
|
path << "&signature=" << signature
|
123
134
|
end
|
@@ -119,6 +119,18 @@ class GoogleStaticMapTest < Test::Unit::TestCase #:nodoc: all
|
|
119
119
|
assert !u.include?("signature"), u
|
120
120
|
end
|
121
121
|
|
122
|
+
def test_url_api_key_with_private_key
|
123
|
+
g = default_map
|
124
|
+
g.api_key = "asdfapikey"
|
125
|
+
g.private_key = "vNIXE0xscrmjlyV-12Nj_BvUPaw="
|
126
|
+
u = nil
|
127
|
+
assert_nothing_raised { u = g.url }
|
128
|
+
assert_equal 9, u.split("&").length, u
|
129
|
+
assert u.include?("key=asdfapikey"), u
|
130
|
+
assert !u.include?("client"), u
|
131
|
+
assert u.include?("signature="), u
|
132
|
+
end
|
133
|
+
|
122
134
|
def test_url_for_business
|
123
135
|
g = default_map
|
124
136
|
g.client_id = "asdfclientid"
|
@@ -131,15 +143,20 @@ class GoogleStaticMapTest < Test::Unit::TestCase #:nodoc: all
|
|
131
143
|
assert !u.include?("key="), u
|
132
144
|
end
|
133
145
|
|
134
|
-
def
|
146
|
+
def test_url_for_business_no_private_key
|
135
147
|
g = default_map
|
136
148
|
g.client_id = "asdfclientid"
|
137
149
|
u = nil
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
150
|
+
assert_raise { u = g.url }
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_url_for_business_with_api_key
|
154
|
+
g = default_map
|
155
|
+
g.client_id = "asdfclientid"
|
156
|
+
g.private_key = "vNIXE0xscrmjlyV-12Nj_BvUPaw="
|
157
|
+
g.api_key = "asdfapikey"
|
158
|
+
u = nil
|
159
|
+
assert_raise { u = g.url }
|
143
160
|
end
|
144
161
|
|
145
162
|
def test_get_map_success_no_file_http
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: googlestaticmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brent Sowers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.2.3
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.2.3
|
41
55
|
description: Easily retrieve single PNG, GIF, or JPG map images from Google with your
|
42
56
|
own custom markers and paths using the Static Maps API service with this gem. Simply
|
43
57
|
set the attributes you want for your map and GoogleStaticMap will take care of getting
|
@@ -78,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
92
|
version: '0'
|
79
93
|
requirements: []
|
80
94
|
rubyforge_project:
|
81
|
-
rubygems_version: 2.
|
95
|
+
rubygems_version: 2.4.8
|
82
96
|
signing_key:
|
83
97
|
specification_version: 4
|
84
98
|
summary: Class for retrieving maps from the Google Maps Static API service
|