cartographie 0.0.1 → 0.0.2
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.
- data/README.md +15 -0
- data/lib/cartographie.rb +5 -0
- data/lib/cartographie/config.rb +65 -0
- data/lib/cartographie/map.rb +6 -13
- data/lib/cartographie/version.rb +1 -1
- data/spec/cartographie/config_spec.rb +34 -0
- data/spec/cartographie/map_spec.rb +0 -10
- metadata +10 -7
data/README.md
CHANGED
@@ -20,8 +20,23 @@ Cartographie.map('San Francisco, CA')
|
|
20
20
|
Cartographie.map('New York, NY', width: 200, height: 200, zoom: 10)
|
21
21
|
```
|
22
22
|
|
23
|
+
**Configuration**
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
Cartographie.configure do |config|
|
27
|
+
config.width = 640
|
28
|
+
config.height = 640
|
29
|
+
config.zoom = 12
|
30
|
+
config.file_format = 'jpg'
|
31
|
+
config.sensor = true
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
23
35
|
**Defaults**
|
24
36
|
|
37
|
+
If you do not pass options when generating a map, nor configure a map attribute
|
38
|
+
using the configuration block, the following values will be used:
|
39
|
+
|
25
40
|
- width: 300
|
26
41
|
- height: 300
|
27
42
|
- zoom: 15
|
data/lib/cartographie.rb
CHANGED
@@ -3,6 +3,7 @@ require "cartographie/version"
|
|
3
3
|
# Cartographie is the root module for all of Cartographie's components
|
4
4
|
module Cartographie
|
5
5
|
|
6
|
+
autoload :Config, 'cartographie/config'
|
6
7
|
autoload :Map, 'cartographie/map'
|
7
8
|
|
8
9
|
# Public: Create a new Map instance.
|
@@ -25,4 +26,8 @@ module Cartographie
|
|
25
26
|
Map.new(location, options)
|
26
27
|
end
|
27
28
|
|
29
|
+
def self.configure(&block)
|
30
|
+
Cartographie::Config.configure(&block)
|
31
|
+
end
|
32
|
+
|
28
33
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Cartographie
|
2
|
+
module Config
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def configure
|
6
|
+
yield self
|
7
|
+
end
|
8
|
+
|
9
|
+
def api_endpoint
|
10
|
+
OPTIONS[:api_endpoint]
|
11
|
+
end
|
12
|
+
|
13
|
+
def width
|
14
|
+
OPTIONS[:width]
|
15
|
+
end
|
16
|
+
|
17
|
+
def width=(value)
|
18
|
+
OPTIONS[:width] = value
|
19
|
+
end
|
20
|
+
|
21
|
+
def height
|
22
|
+
OPTIONS[:height]
|
23
|
+
end
|
24
|
+
|
25
|
+
def height=(value)
|
26
|
+
OPTIONS[:height] = value
|
27
|
+
end
|
28
|
+
|
29
|
+
def zoom
|
30
|
+
OPTIONS[:zoom]
|
31
|
+
end
|
32
|
+
|
33
|
+
def zoom=(value)
|
34
|
+
OPTIONS[:zoom] = value
|
35
|
+
end
|
36
|
+
|
37
|
+
def file_format
|
38
|
+
OPTIONS[:file_format]
|
39
|
+
end
|
40
|
+
|
41
|
+
def file_format=(value)
|
42
|
+
OPTIONS[:file_format] = value
|
43
|
+
end
|
44
|
+
|
45
|
+
def sensor
|
46
|
+
OPTIONS[:sensor]
|
47
|
+
end
|
48
|
+
|
49
|
+
def sensor=(value)
|
50
|
+
OPTIONS[:sensor] = value
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
DEFAULTS = {
|
56
|
+
api_endpoint: 'http://maps.googleapis.com/maps/api/staticmap',
|
57
|
+
width: 300,
|
58
|
+
height: 300,
|
59
|
+
zoom: 15,
|
60
|
+
file_format: 'png',
|
61
|
+
sensor: false
|
62
|
+
}
|
63
|
+
OPTIONS = {}.merge!(DEFAULTS)
|
64
|
+
end
|
65
|
+
end
|
data/lib/cartographie/map.rb
CHANGED
@@ -11,13 +11,6 @@ module Cartographie
|
|
11
11
|
# Public: Gets/Sets the Hash options for the map.
|
12
12
|
attr_accessor :options
|
13
13
|
|
14
|
-
API_ENDPOINT = 'http://maps.googleapis.com/maps/api/staticmap'
|
15
|
-
DEFAULT_WIDTH = 300
|
16
|
-
DEFAULT_HEIGHT = 300
|
17
|
-
DEFAULT_ZOOM = 15
|
18
|
-
DEFAULT_FILE_FORMAT = 'png'
|
19
|
-
DEFAULT_SENSOR = false
|
20
|
-
|
21
14
|
# Public: Initialize a Map
|
22
15
|
#
|
23
16
|
# location - The String for the map's location (default: 'Paris, France').
|
@@ -55,27 +48,27 @@ module Cartographie
|
|
55
48
|
|
56
49
|
# Returns the Integer width passed in options, or default
|
57
50
|
def width
|
58
|
-
options[:width] ||
|
51
|
+
options[:width] || Config.width
|
59
52
|
end
|
60
53
|
|
61
54
|
# Returns the Integer height passed in options, or default
|
62
55
|
def height
|
63
|
-
options[:height] ||
|
56
|
+
options[:height] || Config.height
|
64
57
|
end
|
65
58
|
|
66
59
|
# Returns the Integer zoom level passed in options, or default
|
67
60
|
def zoom
|
68
|
-
options[:zoom] ||
|
61
|
+
options[:zoom] || Config.zoom
|
69
62
|
end
|
70
63
|
|
71
64
|
# Returns the String file format passed in options, or default
|
72
65
|
def file_format
|
73
|
-
options[:file_format] ||
|
66
|
+
options[:file_format] || Config.file_format
|
74
67
|
end
|
75
68
|
|
76
69
|
# Returns the Boolean indicating sensor usage passed in options, or default
|
77
70
|
def sensor
|
78
|
-
options[:sensor] ||
|
71
|
+
options[:sensor] || Config.sensor
|
79
72
|
end
|
80
73
|
|
81
74
|
# Returns a string combining width and height into dimensions
|
@@ -86,7 +79,7 @@ module Cartographie
|
|
86
79
|
private
|
87
80
|
|
88
81
|
def api_endpoint
|
89
|
-
|
82
|
+
Config.api_endpoint
|
90
83
|
end
|
91
84
|
end
|
92
85
|
end
|
data/lib/cartographie/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'cartographie'
|
3
|
+
require 'cartographie/config'
|
4
|
+
|
5
|
+
describe Cartographie::Config do
|
6
|
+
subject { Cartographie::Config }
|
7
|
+
|
8
|
+
describe "default configs" do
|
9
|
+
its(:api_endpoint) { should eq('http://maps.googleapis.com/maps/api/staticmap') }
|
10
|
+
its(:width) { should eq(300) }
|
11
|
+
its(:height) { should eq(300) }
|
12
|
+
its(:zoom) { should eq(15) }
|
13
|
+
its(:file_format) { should eq('png') }
|
14
|
+
its(:sensor) { should be_false }
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "setting new defaults" do
|
18
|
+
before do
|
19
|
+
Cartographie.configure do |config|
|
20
|
+
config.width = 100
|
21
|
+
config.height = 100
|
22
|
+
config.zoom = 10
|
23
|
+
config.file_format = 'jpg'
|
24
|
+
config.sensor = true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
its(:width) { should eq(100) }
|
29
|
+
its(:height) { should eq(100) }
|
30
|
+
its(:zoom) { should eq(10) }
|
31
|
+
its(:file_format) { should eq('jpg') }
|
32
|
+
its(:sensor) { should be_true }
|
33
|
+
end
|
34
|
+
end
|
@@ -5,16 +5,6 @@ describe Cartographie::Map do
|
|
5
5
|
|
6
6
|
subject { described_class.new }
|
7
7
|
|
8
|
-
describe 'defaults' do
|
9
|
-
its(:location) { should eq('Paris, France') }
|
10
|
-
its(:width) { should eq(300) }
|
11
|
-
its(:height) { should eq(300) }
|
12
|
-
its(:size) { should eq('300x300') }
|
13
|
-
its(:zoom) { should eq(15) }
|
14
|
-
its(:file_format) { should eq('png') }
|
15
|
-
its(:sensor) { should be_false }
|
16
|
-
end
|
17
|
-
|
18
8
|
describe 'with options' do
|
19
9
|
let(:options) do
|
20
10
|
{ width: 75, height: 75, zoom: 10, file_format: 'jpg', sensor: true }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartographie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-07-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
16
|
-
requirement: &
|
16
|
+
requirement: &70210921610020 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70210921610020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70210921609580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70210921609580
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70210921609000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '2.11'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70210921609000
|
47
47
|
description: Beautiful map generation
|
48
48
|
email:
|
49
49
|
- mattonrails@shortmail.com
|
@@ -60,8 +60,10 @@ files:
|
|
60
60
|
- Rakefile
|
61
61
|
- cartographie.gemspec
|
62
62
|
- lib/cartographie.rb
|
63
|
+
- lib/cartographie/config.rb
|
63
64
|
- lib/cartographie/map.rb
|
64
65
|
- lib/cartographie/version.rb
|
66
|
+
- spec/cartographie/config_spec.rb
|
65
67
|
- spec/cartographie/map_spec.rb
|
66
68
|
- spec/cartographie_spec.rb
|
67
69
|
- spec/spec_helper.rb
|
@@ -90,6 +92,7 @@ signing_key:
|
|
90
92
|
specification_version: 3
|
91
93
|
summary: Wrapper for Google's Static Maps API
|
92
94
|
test_files:
|
95
|
+
- spec/cartographie/config_spec.rb
|
93
96
|
- spec/cartographie/map_spec.rb
|
94
97
|
- spec/cartographie_spec.rb
|
95
98
|
- spec/spec_helper.rb
|