mapnik 0.2.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.
- data/.autotest +35 -0
- data/.yardopts +1 -0
- data/Gemfile +14 -0
- data/LICENSE +19 -0
- data/Manifest.txt +172 -0
- data/README.rdoc +107 -0
- data/Rakefile +43 -0
- data/demo/data/COPYRIGHT.txt +3 -0
- data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
- data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
- data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
- data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
- data/demo/data/boundaries.dbf +0 -0
- data/demo/data/boundaries.prj +1 -0
- data/demo/data/boundaries.sbx +0 -0
- data/demo/data/boundaries.shp +0 -0
- data/demo/data/boundaries.shx +0 -0
- data/demo/data/boundaries_l.dbf +0 -0
- data/demo/data/boundaries_l.prj +1 -0
- data/demo/data/boundaries_l.sbx +0 -0
- data/demo/data/boundaries_l.shp +0 -0
- data/demo/data/boundaries_l.shx +0 -0
- data/demo/data/ontdrainage.dbf +0 -0
- data/demo/data/ontdrainage.prj +1 -0
- data/demo/data/ontdrainage.sbx +0 -0
- data/demo/data/ontdrainage.shp +0 -0
- data/demo/data/ontdrainage.shx +0 -0
- data/demo/data/popplaces.dbf +0 -0
- data/demo/data/popplaces.prj +1 -0
- data/demo/data/popplaces.sbx +0 -0
- data/demo/data/popplaces.shp +0 -0
- data/demo/data/popplaces.shx +0 -0
- data/demo/data/qcdrainage.dbf +0 -0
- data/demo/data/qcdrainage.prj +1 -0
- data/demo/data/qcdrainage.sbx +0 -0
- data/demo/data/qcdrainage.shp +0 -0
- data/demo/data/qcdrainage.shx +0 -0
- data/demo/data/roads.dbf +0 -0
- data/demo/data/roads.prj +1 -0
- data/demo/data/roads.sbx +0 -0
- data/demo/data/roads.shp +0 -0
- data/demo/data/roads.shx +0 -0
- data/demo/data/test/charplacement.dbf +0 -0
- data/demo/data/test/charplacement.shp +0 -0
- data/demo/data/test/charplacement.shx +0 -0
- data/demo/data/test/displacement.dbf +0 -0
- data/demo/data/test/displacement.shp +0 -0
- data/demo/data/test/displacement.shx +0 -0
- data/demo/data/test/overlap.dbf +0 -0
- data/demo/data/test/overlap.shp +0 -0
- data/demo/data/test/overlap.shx +0 -0
- data/demo/data/test/raw/charplacement.gfs +25 -0
- data/demo/data/test/raw/charplacement.gml +99 -0
- data/demo/data/test/raw/charplacement.xsd +36 -0
- data/demo/data/test/raw/displacement.gfs +25 -0
- data/demo/data/test/raw/displacement.gml +173 -0
- data/demo/data/test/raw/displacement.xsd +36 -0
- data/demo/data/test/raw/overlap.gfs +25 -0
- data/demo/data/test/raw/overlap.gml +127 -0
- data/demo/data/test/raw/overlap.xsd +36 -0
- data/demo/data/test/raw/textspacing.gfs +25 -0
- data/demo/data/test/raw/textspacing.gml +117 -0
- data/demo/data/test/raw/textspacing.xsd +36 -0
- data/demo/data/test/readme.txt +3 -0
- data/demo/data/test/regenerate.sh +20 -0
- data/demo/data/test/textspacing.dbf +0 -0
- data/demo/data/test/textspacing.shp +0 -0
- data/demo/data/test/textspacing.shx +0 -0
- data/demo/rundemo.rb +145 -0
- data/demo/sinatra/demo.rb +31 -0
- data/demo/sinatra/public/css/demo_map.css +7 -0
- data/demo/sinatra/public/index.html +13 -0
- data/demo/sinatra/public/javascripts/demo_map.js +42 -0
- data/ext/ruby_mapnik/_mapnik.cpp +52 -0
- data/ext/ruby_mapnik/_mapnik.h +65 -0
- data/ext/ruby_mapnik/_mapnik_color.rb.cpp +179 -0
- data/ext/ruby_mapnik/_mapnik_color.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_coord.rb.cpp +145 -0
- data/ext/ruby_mapnik/_mapnik_coord.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_datasource.rb.cpp +170 -0
- data/ext/ruby_mapnik/_mapnik_datasource.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.cpp +87 -0
- data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_envelope.rb.cpp +220 -0
- data/ext/ruby_mapnik/_mapnik_envelope.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_expression.rb.cpp +91 -0
- data/ext/ruby_mapnik/_mapnik_expression.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_feature.rb.cpp +93 -0
- data/ext/ruby_mapnik/_mapnik_feature.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_font_engine.rb.cpp +71 -0
- data/ext/ruby_mapnik/_mapnik_font_engine.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_layer.rb.cpp +208 -0
- data/ext/ruby_mapnik/_mapnik_layer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp +71 -0
- data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.cpp +43 -0
- data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_map.rb.cpp +489 -0
- data/ext/ruby_mapnik/_mapnik_map.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.cpp +140 -0
- data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.cpp +150 -0
- data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.cpp +93 -0
- data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.cpp +89 -0
- data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_projection.rb.cpp +100 -0
- data/ext/ruby_mapnik/_mapnik_projection.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.cpp +162 -0
- data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.cpp +87 -0
- data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_rule.rb.cpp +69 -0
- data/ext/ruby_mapnik/_mapnik_rule.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.cpp +86 -0
- data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_stroke.rb.cpp +188 -0
- data/ext/ruby_mapnik/_mapnik_stroke.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_style.rb.cpp +76 -0
- data/ext/ruby_mapnik/_mapnik_style.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_symbolizer.rb.cpp +75 -0
- data/ext/ruby_mapnik/_mapnik_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.cpp +471 -0
- data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.h +32 -0
- data/ext/ruby_mapnik/extconf.rb +80 -0
- data/ext/ruby_mapnik/ruby_mapnik.cpp +32 -0
- data/lib/mapnik.rb +1 -0
- data/lib/ruby_mapnik.rb +48 -0
- data/lib/ruby_mapnik/mapnik/font_engine.rb +35 -0
- data/lib/ruby_mapnik/mapnik/layer.rb +68 -0
- data/lib/ruby_mapnik/mapnik/map.rb +166 -0
- data/lib/ruby_mapnik/mapnik/projection.rb +44 -0
- data/lib/ruby_mapnik/mapnik/raster_colorizer.rb +55 -0
- data/lib/ruby_mapnik/mapnik/rule.rb +104 -0
- data/lib/ruby_mapnik/mapnik/stroke.rb +56 -0
- data/lib/ruby_mapnik/mapnik/style.rb +64 -0
- data/lib/ruby_mapnik/mapnik/tile.rb +93 -0
- data/script/console +2 -0
- data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
- data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
- data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
- data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
- data/test/data/test_map.xml +15 -0
- data/test/test_helper.rb +29 -0
- data/test/test_line_pattern_symbolizer.rb +26 -0
- data/test/test_mapnik_color.rb +66 -0
- data/test/test_mapnik_coord.rb +92 -0
- data/test/test_mapnik_datasource.rb +49 -0
- data/test/test_mapnik_envelope.rb +232 -0
- data/test/test_mapnik_expression.rb +19 -0
- data/test/test_mapnik_feature.rb +29 -0
- data/test/test_mapnik_font_engine.rb +13 -0
- data/test/test_mapnik_layer.rb +121 -0
- data/test/test_mapnik_line_symbolizer.rb +25 -0
- data/test/test_mapnik_map.rb +211 -0
- data/test/test_mapnik_markers_symbolizer.rb +46 -0
- data/test/test_mapnik_point_symbolizer.rb +53 -0
- data/test/test_mapnik_polygon_symbolizer.rb +44 -0
- data/test/test_mapnik_projection.rb +46 -0
- data/test/test_mapnik_raster_colorizer.rb +56 -0
- data/test/test_mapnik_raster_symbolizer.rb +45 -0
- data/test/test_mapnik_rule.rb +45 -0
- data/test/test_mapnik_shield_symbolizer.rb +156 -0
- data/test/test_mapnik_stroke.rb +94 -0
- data/test/test_mapnik_style.rb +28 -0
- data/test/test_mapnik_symbolizer.rb +9 -0
- data/test/test_mapnik_text_symbolizer.rb +208 -0
- data/test/test_polygon_pattern_symbolizer.rb +34 -0
- data/test/test_ruby_mapnik.rb +34 -0
- data/yard/lib/yard/parser/generic_parser.rb +72 -0
- data/yard/lib/yard_generic.rb +18 -0
- metadata +333 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class TestMapnikStroke < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@color = Mapnik::Color.new("#ccc")
|
|
7
|
+
@stroke = Mapnik::Stroke.new(@color, 1.0)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_should_instantiate
|
|
11
|
+
assert @stroke
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_should_get_and_set_color
|
|
15
|
+
assert @stroke.color == @color
|
|
16
|
+
new_color = Mapnik::Color.new("#fff")
|
|
17
|
+
@stroke.color = new_color
|
|
18
|
+
assert @stroke.color == new_color
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_should_get_and_set_opacity
|
|
22
|
+
opacity_before = @stroke.opacity
|
|
23
|
+
assert_equal 1, opacity_before
|
|
24
|
+
|
|
25
|
+
new_opacity = 0.5
|
|
26
|
+
@stroke.opacity = new_opacity
|
|
27
|
+
assert_equal new_opacity, @stroke.opacity
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_should_get_and_set_gamma
|
|
31
|
+
|
|
32
|
+
gamma_before = @stroke.gamma
|
|
33
|
+
assert_equal 1, gamma_before
|
|
34
|
+
|
|
35
|
+
new_gamma = 0.5
|
|
36
|
+
@stroke.gamma = new_gamma
|
|
37
|
+
assert_equal new_gamma, @stroke.gamma
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_should_get_and_set_width
|
|
41
|
+
width_before = @stroke.width
|
|
42
|
+
assert_equal 1, width_before
|
|
43
|
+
|
|
44
|
+
new_width = 0.5
|
|
45
|
+
@stroke.width = new_width
|
|
46
|
+
assert_equal new_width, @stroke.width
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_should_have_line_caps
|
|
50
|
+
assert Mapnik::LineCap
|
|
51
|
+
assert Mapnik::LineCap::BUTT_CAP
|
|
52
|
+
assert Mapnik::LineCap::SQUARE_CAP
|
|
53
|
+
assert Mapnik::LineCap::ROUND_CAP
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_should_have_line_joins
|
|
57
|
+
assert Mapnik::LineJoin
|
|
58
|
+
assert Mapnik::LineJoin::MITER_JOIN
|
|
59
|
+
assert Mapnik::LineJoin::MITER_REVERT_JOIN
|
|
60
|
+
assert Mapnik::LineJoin::ROUND_JOIN
|
|
61
|
+
assert Mapnik::LineJoin::BEVEL_JOIN
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_should_get_and_set_line_cap
|
|
65
|
+
Mapnik::LineCap.constants.each do |const_name|
|
|
66
|
+
const = Mapnik::LineCap.const_get(const_name)
|
|
67
|
+
@stroke.line_cap = const
|
|
68
|
+
assert_equal const, @stroke.line_cap
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_should_get_and_set_line_join
|
|
73
|
+
Mapnik::LineJoin.constants.each do |const_name|
|
|
74
|
+
const = Mapnik::LineJoin.const_get(const_name)
|
|
75
|
+
@stroke.line_join = const
|
|
76
|
+
assert_equal const, @stroke.line_join
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_should_have_dashes
|
|
81
|
+
assert_equal 0, @stroke.dashes.length
|
|
82
|
+
dash_hash = {:gap => 1, :length => 1.2}
|
|
83
|
+
@stroke.dashes << dash_hash
|
|
84
|
+
assert_equal dash_hash, @stroke.dashes.first
|
|
85
|
+
assert_equal 1, @stroke.dashes.length
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_should_have_dash_offset
|
|
89
|
+
assert_equal 0, @stroke.dash_offset
|
|
90
|
+
@stroke.dash_offset = 1.4
|
|
91
|
+
assert_equal 1.4, @stroke.dash_offset
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class TestMapnikStyle < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def test_presence
|
|
6
|
+
assert Mapnik::Style
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_should_have_rules
|
|
10
|
+
style = Mapnik::Style.new
|
|
11
|
+
assert style.rules.empty?
|
|
12
|
+
rule = Mapnik::Rule.new
|
|
13
|
+
style.rules << rule
|
|
14
|
+
assert !style.rules.empty?
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_should_have_filter_types
|
|
18
|
+
assert Mapnik::FilterMode::ALL
|
|
19
|
+
assert Mapnik::FilterMode::FIRST
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_should_get_and_set_filter
|
|
23
|
+
style = Mapnik::Style.new
|
|
24
|
+
style.filter_mode = Mapnik::FilterMode::ALL
|
|
25
|
+
assert_equal Mapnik::FilterMode::ALL, style.filter_mode
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class TestMapnikTextSymbolizer < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
expression = Mapnik::Expression.parse("([place]='town')")
|
|
7
|
+
@symbolizer = Mapnik::TextSymbolizer.new(expression, "DejaVu Sans Book", 10, Mapnik::Color.new("#fff"))
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_should_instantiate
|
|
11
|
+
assert @symbolizer
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_enums_should_exist
|
|
15
|
+
assert Mapnik::LABEL_PLACEMENT::LINE_PLACEMENT
|
|
16
|
+
assert Mapnik::LABEL_PLACEMENT::POINT_PLACEMENT
|
|
17
|
+
assert Mapnik::LABEL_PLACEMENT::VERTEX_PLACEMENT
|
|
18
|
+
assert Mapnik::LABEL_PLACEMENT::INTERIOR_PLACEMENT
|
|
19
|
+
|
|
20
|
+
assert Mapnik::VERTICAL_ALIGNMENT::TOP
|
|
21
|
+
assert Mapnik::VERTICAL_ALIGNMENT::MIDDLE
|
|
22
|
+
assert Mapnik::VERTICAL_ALIGNMENT::BOTTOM
|
|
23
|
+
assert Mapnik::VERTICAL_ALIGNMENT::AUTO
|
|
24
|
+
|
|
25
|
+
assert Mapnik::HORIZONTAL_ALIGNMENT::LEFT
|
|
26
|
+
assert Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
|
|
27
|
+
assert Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
|
|
28
|
+
|
|
29
|
+
assert Mapnik::JUSTIFY_ALIGNMENT::LEFT
|
|
30
|
+
assert Mapnik::JUSTIFY_ALIGNMENT::MIDDLE
|
|
31
|
+
assert Mapnik::JUSTIFY_ALIGNMENT::RIGHT
|
|
32
|
+
|
|
33
|
+
assert Mapnik::TEXT_TRANSFORM::NONE
|
|
34
|
+
assert Mapnik::TEXT_TRANSFORM::UPPERCASE
|
|
35
|
+
assert Mapnik::TEXT_TRANSFORM::LOWERCASE
|
|
36
|
+
assert Mapnik::TEXT_TRANSFORM::CAPITALIZE
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_should_get_and_set_allow_overlap
|
|
40
|
+
@symbolizer.allow_overlap = true
|
|
41
|
+
assert @symbolizer.allow_overlap?
|
|
42
|
+
@symbolizer.allow_overlap = false
|
|
43
|
+
assert !@symbolizer.allow_overlap?
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_should_get_and_set_displacement
|
|
47
|
+
assert @symbolizer.displacement
|
|
48
|
+
new_vals = [1,2]
|
|
49
|
+
@symbolizer.displacement = new_vals
|
|
50
|
+
assert_equal new_vals, @symbolizer.displacement
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_should_get_and_set_avoid_edges
|
|
54
|
+
@symbolizer.avoid_edges = true
|
|
55
|
+
assert @symbolizer.avoid_edges?
|
|
56
|
+
@symbolizer.avoid_edges = false
|
|
57
|
+
assert !@symbolizer.avoid_edges?
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_should_get_and_set_character_spacing
|
|
61
|
+
assert_equal 0, @symbolizer.character_spacing
|
|
62
|
+
@symbolizer.character_spacing = 1
|
|
63
|
+
assert_equal 1, @symbolizer.character_spacing
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_should_get_and_set_face_name
|
|
67
|
+
assert_equal "DejaVu Sans Book", @symbolizer.face_name
|
|
68
|
+
@symbolizer.face_name = "DejaVu Sans"
|
|
69
|
+
assert_equal "DejaVu Sans", @symbolizer.face_name
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_should_get_and_set_fill
|
|
73
|
+
assert @symbolizer.fill.instance_of?(Mapnik::Color)
|
|
74
|
+
white = Mapnik::Color.new("#fff")
|
|
75
|
+
@symbolizer.fill = white
|
|
76
|
+
assert_equal white, @symbolizer.fill
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# TODO: Need fontset
|
|
80
|
+
# def test_should_get_and_set_fontset
|
|
81
|
+
# raise @symbolizer.fontset.inspect
|
|
82
|
+
# end
|
|
83
|
+
|
|
84
|
+
def test_should_get_and_set_halo_fill
|
|
85
|
+
assert @symbolizer.halo_fill.instance_of?(Mapnik::Color)
|
|
86
|
+
white = Mapnik::Color.new("#fff")
|
|
87
|
+
@symbolizer.halo_fill = white
|
|
88
|
+
assert_equal white, @symbolizer.halo_fill
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_should_get_and_set_halo_radius
|
|
92
|
+
assert_equal 0, @symbolizer.halo_radius
|
|
93
|
+
@symbolizer.halo_radius = 1
|
|
94
|
+
assert_equal 1, @symbolizer.halo_radius
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_should_get_and_set_horizontal_alignment
|
|
98
|
+
@symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::LEFT
|
|
99
|
+
assert_equal Mapnik::HORIZONTAL_ALIGNMENT::LEFT, @symbolizer.horizontal_alignment
|
|
100
|
+
|
|
101
|
+
@symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
|
|
102
|
+
assert_equal Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE, @symbolizer.horizontal_alignment
|
|
103
|
+
|
|
104
|
+
@symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
|
|
105
|
+
assert_equal Mapnik::HORIZONTAL_ALIGNMENT::RIGHT, @symbolizer.horizontal_alignment
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_should_get_and_set_justify_alignment
|
|
109
|
+
check_constant_setting(Mapnik::JUSTIFY_ALIGNMENT, :justify_alignment)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def test_should_get_and_set_label_placement
|
|
113
|
+
check_constant_setting(Mapnik::LABEL_PLACEMENT, :label_placement)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_should_get_and_set_label_position_tolerance
|
|
117
|
+
assert_equal 0, @symbolizer.label_position_tolerance
|
|
118
|
+
@symbolizer.label_position_tolerance = 1
|
|
119
|
+
assert_equal 1, @symbolizer.label_position_tolerance
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def test_should_get_and_set_label_spacing
|
|
123
|
+
assert_equal 0, @symbolizer.label_spacing
|
|
124
|
+
@symbolizer.label_spacing = 1
|
|
125
|
+
assert_equal 1, @symbolizer.label_spacing
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def test_should_get_and_set_line_spacing
|
|
129
|
+
assert_equal 0, @symbolizer.line_spacing
|
|
130
|
+
@symbolizer.line_spacing = 1
|
|
131
|
+
assert_equal 1, @symbolizer.line_spacing
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def test_should_get_and_set_max_char_angle_delta
|
|
135
|
+
@symbolizer.max_char_angle_delta = 0.5
|
|
136
|
+
assert_equal 0.5, @symbolizer.max_char_angle_delta
|
|
137
|
+
@symbolizer.max_char_angle_delta = 0.7
|
|
138
|
+
assert_equal 0.7, @symbolizer.max_char_angle_delta
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_should_get_and_set_minimum_distance
|
|
142
|
+
assert_equal 0, @symbolizer.minimum_distance
|
|
143
|
+
@symbolizer.minimum_distance = 1
|
|
144
|
+
assert_equal 1, @symbolizer.minimum_distance
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def test_should_get_and_set_minimum_padding
|
|
148
|
+
assert_equal 0, @symbolizer.minimum_padding
|
|
149
|
+
@symbolizer.minimum_padding = 1
|
|
150
|
+
assert_equal 1, @symbolizer.minimum_padding
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def test_should_get_and_set_opactiy
|
|
154
|
+
assert_equal 1, @symbolizer.opacity
|
|
155
|
+
@symbolizer.opacity = 0
|
|
156
|
+
assert_equal 0, @symbolizer.opacity
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def test_should_get_and_set_text_transform
|
|
160
|
+
check_constant_setting(Mapnik::TEXT_TRANSFORM, :text_transform)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def test_should_get_and_set_text_ratio
|
|
164
|
+
assert_equal 0, @symbolizer.ratio
|
|
165
|
+
@symbolizer.ratio = 3
|
|
166
|
+
assert_equal 3, @symbolizer.ratio
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def test_should_get_and_set_text_size
|
|
170
|
+
assert_equal 10, @symbolizer.size
|
|
171
|
+
@symbolizer.size = 0
|
|
172
|
+
assert_equal 0, @symbolizer.size
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def test_should_get_and_set_vertical_alignment
|
|
176
|
+
check_constant_setting(Mapnik::VERTICAL_ALIGNMENT, :vertical_alignment)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def test_should_get_and_set_wrap_width
|
|
180
|
+
assert_equal 0, @symbolizer.wrap_width
|
|
181
|
+
@symbolizer.wrap_width = 30
|
|
182
|
+
assert_equal 30, @symbolizer.wrap_width
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def test_should_get_and_set_wrap_character
|
|
186
|
+
@symbolizer.wrap_character = '|'
|
|
187
|
+
assert_equal '|', @symbolizer.wrap_character
|
|
188
|
+
@symbolizer.wrap_character = '%'
|
|
189
|
+
assert_equal '%', @symbolizer.wrap_character
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def test_should_get_and_set_wrap_before
|
|
193
|
+
assert !@symbolizer.wrap_before
|
|
194
|
+
@symbolizer.wrap_before = true
|
|
195
|
+
assert @symbolizer.wrap_before
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
private
|
|
199
|
+
|
|
200
|
+
def check_constant_setting(enum, property)
|
|
201
|
+
enum.constants.each do |const_name|
|
|
202
|
+
const = enum.const_get(const_name)
|
|
203
|
+
@symbolizer.send(property.to_s + '=', const)
|
|
204
|
+
assert_equal const, @symbolizer.send(property)
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class TestPolygonPatternSymbolizer < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@filename = "/my/file.png"
|
|
7
|
+
path_expression = Mapnik::PathExpression.parse("/my/file.png")
|
|
8
|
+
@sym = Mapnik::PolygonPatternSymbolizer.new(path_expression)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_presence
|
|
12
|
+
assert Mapnik::PolygonPatternSymbolizer
|
|
13
|
+
assert Mapnik::PatternAlignment::LOCAL
|
|
14
|
+
assert Mapnik::PatternAlignment::GLOBAL
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_should_instantiate
|
|
18
|
+
assert @sym
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_should_get_and_set_filename
|
|
22
|
+
assert_equal @filename, @sym.filename
|
|
23
|
+
new_filename = "/something/else.png"
|
|
24
|
+
@sym.filename = new_filename
|
|
25
|
+
assert_equal new_filename, @sym.filename
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_should_get_and_set_pattern_alignment
|
|
29
|
+
assert_equal Mapnik::PatternAlignment::LOCAL, @sym.alignment
|
|
30
|
+
@sym.alignment = Mapnik::PatternAlignment::GLOBAL
|
|
31
|
+
assert_equal Mapnik::PatternAlignment::GLOBAL, @sym.alignment
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
******************************************************************************
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2011 Elliot Laster
|
|
5
|
+
*
|
|
6
|
+
* This library is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with this library; if not, write to the Free Software
|
|
18
|
+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19
|
+
*
|
|
20
|
+
******************************************************************************
|
|
21
|
+
=end
|
|
22
|
+
require 'test_helper'
|
|
23
|
+
|
|
24
|
+
class TestRubyMapnik < Test::Unit::TestCase
|
|
25
|
+
|
|
26
|
+
def test_sanity
|
|
27
|
+
assert Mapnik
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_should_register_datasources_on_inclusion
|
|
31
|
+
assert Mapnik::DatasourceCache.available_plugins.any?
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
module YARD
|
|
2
|
+
module Parser
|
|
3
|
+
class GenericParser < CParser
|
|
4
|
+
|
|
5
|
+
def initialize(source, file = '(stdin)')
|
|
6
|
+
@file = file
|
|
7
|
+
@namespaces = {}
|
|
8
|
+
@content = clean_source(source)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def parse
|
|
12
|
+
parse_modules
|
|
13
|
+
parse_classes
|
|
14
|
+
parse_methods
|
|
15
|
+
# parse_constants
|
|
16
|
+
# parse_includes
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def parse_modules
|
|
20
|
+
@content.scan(/@@Module_var\s*(\w+) = \s*(\w+)/) do |var_name, module_name|
|
|
21
|
+
handle_module(var_name, module_name)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def parse_classes
|
|
26
|
+
@content.scan(/Data_Type< .+ >\s*(\w+)\s*=\s*.+define_class_under<.+>\(\s*(\w+),\s*"(\w+)"/) do |var_name, in_module, class_name|
|
|
27
|
+
handle_class(var_name, class_name, nil, in_module)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def parse_methods
|
|
32
|
+
@content.scan(/(\w+)\.define_(method|singleton_method)\(\s*"(.+)",.+\)/) do |var_name, type, name|
|
|
33
|
+
handle_method(type, var_name, name, nil, nil) unless nodoc?(name)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
@content.scan(/(\w+)\.define_constructor\(.+\)/) do |var_name|
|
|
37
|
+
handle_method("singleton_method", var_name.first, "new" , nil, nil)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def nodoc?(name, content=@content)
|
|
42
|
+
name == 'initialize' || content =~ %r{Dont-Document-method:\s#{name}}m
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def find_method_body(object, func_name, content = @content)
|
|
46
|
+
# No body, but might still have an override comment
|
|
47
|
+
comment = find_override_comment(object)
|
|
48
|
+
object.docstring = parse_comments(object, comment) if comment
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def find_override_comment(object, content = @content)
|
|
52
|
+
name = Regexp.escape(object.name.to_s)
|
|
53
|
+
class_name = object.parent.path
|
|
54
|
+
if content =~ %r{Document-method:\s+#{class_name}(?:\.|::|#)#{name}\s*?\n((?>.*?\*/))}m then
|
|
55
|
+
$1
|
|
56
|
+
elsif content =~ %r{Document-method:\s#{name}\s*?\n((?>.*?\*/))}m then
|
|
57
|
+
$1
|
|
58
|
+
else
|
|
59
|
+
nil
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# def clean_source(source)
|
|
64
|
+
# # source = handle_ifdefs_in(source)
|
|
65
|
+
# # source = handle_tab_width(source)
|
|
66
|
+
# # source = remove_commented_out_lines(source)
|
|
67
|
+
# source
|
|
68
|
+
# end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|