mapnik 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. data/.autotest +35 -0
  2. data/.yardopts +1 -0
  3. data/Gemfile +14 -0
  4. data/LICENSE +19 -0
  5. data/Manifest.txt +172 -0
  6. data/README.rdoc +107 -0
  7. data/Rakefile +43 -0
  8. data/demo/data/COPYRIGHT.txt +3 -0
  9. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  10. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  11. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  12. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  13. data/demo/data/boundaries.dbf +0 -0
  14. data/demo/data/boundaries.prj +1 -0
  15. data/demo/data/boundaries.sbx +0 -0
  16. data/demo/data/boundaries.shp +0 -0
  17. data/demo/data/boundaries.shx +0 -0
  18. data/demo/data/boundaries_l.dbf +0 -0
  19. data/demo/data/boundaries_l.prj +1 -0
  20. data/demo/data/boundaries_l.sbx +0 -0
  21. data/demo/data/boundaries_l.shp +0 -0
  22. data/demo/data/boundaries_l.shx +0 -0
  23. data/demo/data/ontdrainage.dbf +0 -0
  24. data/demo/data/ontdrainage.prj +1 -0
  25. data/demo/data/ontdrainage.sbx +0 -0
  26. data/demo/data/ontdrainage.shp +0 -0
  27. data/demo/data/ontdrainage.shx +0 -0
  28. data/demo/data/popplaces.dbf +0 -0
  29. data/demo/data/popplaces.prj +1 -0
  30. data/demo/data/popplaces.sbx +0 -0
  31. data/demo/data/popplaces.shp +0 -0
  32. data/demo/data/popplaces.shx +0 -0
  33. data/demo/data/qcdrainage.dbf +0 -0
  34. data/demo/data/qcdrainage.prj +1 -0
  35. data/demo/data/qcdrainage.sbx +0 -0
  36. data/demo/data/qcdrainage.shp +0 -0
  37. data/demo/data/qcdrainage.shx +0 -0
  38. data/demo/data/roads.dbf +0 -0
  39. data/demo/data/roads.prj +1 -0
  40. data/demo/data/roads.sbx +0 -0
  41. data/demo/data/roads.shp +0 -0
  42. data/demo/data/roads.shx +0 -0
  43. data/demo/data/test/charplacement.dbf +0 -0
  44. data/demo/data/test/charplacement.shp +0 -0
  45. data/demo/data/test/charplacement.shx +0 -0
  46. data/demo/data/test/displacement.dbf +0 -0
  47. data/demo/data/test/displacement.shp +0 -0
  48. data/demo/data/test/displacement.shx +0 -0
  49. data/demo/data/test/overlap.dbf +0 -0
  50. data/demo/data/test/overlap.shp +0 -0
  51. data/demo/data/test/overlap.shx +0 -0
  52. data/demo/data/test/raw/charplacement.gfs +25 -0
  53. data/demo/data/test/raw/charplacement.gml +99 -0
  54. data/demo/data/test/raw/charplacement.xsd +36 -0
  55. data/demo/data/test/raw/displacement.gfs +25 -0
  56. data/demo/data/test/raw/displacement.gml +173 -0
  57. data/demo/data/test/raw/displacement.xsd +36 -0
  58. data/demo/data/test/raw/overlap.gfs +25 -0
  59. data/demo/data/test/raw/overlap.gml +127 -0
  60. data/demo/data/test/raw/overlap.xsd +36 -0
  61. data/demo/data/test/raw/textspacing.gfs +25 -0
  62. data/demo/data/test/raw/textspacing.gml +117 -0
  63. data/demo/data/test/raw/textspacing.xsd +36 -0
  64. data/demo/data/test/readme.txt +3 -0
  65. data/demo/data/test/regenerate.sh +20 -0
  66. data/demo/data/test/textspacing.dbf +0 -0
  67. data/demo/data/test/textspacing.shp +0 -0
  68. data/demo/data/test/textspacing.shx +0 -0
  69. data/demo/rundemo.rb +145 -0
  70. data/demo/sinatra/demo.rb +31 -0
  71. data/demo/sinatra/public/css/demo_map.css +7 -0
  72. data/demo/sinatra/public/index.html +13 -0
  73. data/demo/sinatra/public/javascripts/demo_map.js +42 -0
  74. data/ext/ruby_mapnik/_mapnik.cpp +52 -0
  75. data/ext/ruby_mapnik/_mapnik.h +65 -0
  76. data/ext/ruby_mapnik/_mapnik_color.rb.cpp +179 -0
  77. data/ext/ruby_mapnik/_mapnik_color.rb.h +32 -0
  78. data/ext/ruby_mapnik/_mapnik_coord.rb.cpp +145 -0
  79. data/ext/ruby_mapnik/_mapnik_coord.rb.h +32 -0
  80. data/ext/ruby_mapnik/_mapnik_datasource.rb.cpp +170 -0
  81. data/ext/ruby_mapnik/_mapnik_datasource.rb.h +32 -0
  82. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.cpp +87 -0
  83. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.h +32 -0
  84. data/ext/ruby_mapnik/_mapnik_envelope.rb.cpp +220 -0
  85. data/ext/ruby_mapnik/_mapnik_envelope.rb.h +32 -0
  86. data/ext/ruby_mapnik/_mapnik_expression.rb.cpp +91 -0
  87. data/ext/ruby_mapnik/_mapnik_expression.rb.h +32 -0
  88. data/ext/ruby_mapnik/_mapnik_feature.rb.cpp +93 -0
  89. data/ext/ruby_mapnik/_mapnik_feature.rb.h +32 -0
  90. data/ext/ruby_mapnik/_mapnik_font_engine.rb.cpp +71 -0
  91. data/ext/ruby_mapnik/_mapnik_font_engine.rb.h +32 -0
  92. data/ext/ruby_mapnik/_mapnik_layer.rb.cpp +208 -0
  93. data/ext/ruby_mapnik/_mapnik_layer.rb.h +32 -0
  94. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp +71 -0
  95. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.h +32 -0
  96. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.cpp +43 -0
  97. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.h +32 -0
  98. data/ext/ruby_mapnik/_mapnik_map.rb.cpp +489 -0
  99. data/ext/ruby_mapnik/_mapnik_map.rb.h +32 -0
  100. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.cpp +140 -0
  101. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.h +32 -0
  102. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.cpp +150 -0
  103. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.h +32 -0
  104. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.cpp +93 -0
  105. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.h +32 -0
  106. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.cpp +89 -0
  107. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.h +32 -0
  108. data/ext/ruby_mapnik/_mapnik_projection.rb.cpp +100 -0
  109. data/ext/ruby_mapnik/_mapnik_projection.rb.h +32 -0
  110. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.cpp +162 -0
  111. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.h +32 -0
  112. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.cpp +87 -0
  113. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.h +32 -0
  114. data/ext/ruby_mapnik/_mapnik_rule.rb.cpp +69 -0
  115. data/ext/ruby_mapnik/_mapnik_rule.rb.h +32 -0
  116. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.cpp +86 -0
  117. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.h +32 -0
  118. data/ext/ruby_mapnik/_mapnik_stroke.rb.cpp +188 -0
  119. data/ext/ruby_mapnik/_mapnik_stroke.rb.h +32 -0
  120. data/ext/ruby_mapnik/_mapnik_style.rb.cpp +76 -0
  121. data/ext/ruby_mapnik/_mapnik_style.rb.h +32 -0
  122. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.cpp +75 -0
  123. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.h +32 -0
  124. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.cpp +471 -0
  125. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.h +32 -0
  126. data/ext/ruby_mapnik/extconf.rb +80 -0
  127. data/ext/ruby_mapnik/ruby_mapnik.cpp +32 -0
  128. data/lib/mapnik.rb +1 -0
  129. data/lib/ruby_mapnik.rb +48 -0
  130. data/lib/ruby_mapnik/mapnik/font_engine.rb +35 -0
  131. data/lib/ruby_mapnik/mapnik/layer.rb +68 -0
  132. data/lib/ruby_mapnik/mapnik/map.rb +166 -0
  133. data/lib/ruby_mapnik/mapnik/projection.rb +44 -0
  134. data/lib/ruby_mapnik/mapnik/raster_colorizer.rb +55 -0
  135. data/lib/ruby_mapnik/mapnik/rule.rb +104 -0
  136. data/lib/ruby_mapnik/mapnik/stroke.rb +56 -0
  137. data/lib/ruby_mapnik/mapnik/style.rb +64 -0
  138. data/lib/ruby_mapnik/mapnik/tile.rb +93 -0
  139. data/script/console +2 -0
  140. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  141. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  142. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  143. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  144. data/test/data/test_map.xml +15 -0
  145. data/test/test_helper.rb +29 -0
  146. data/test/test_line_pattern_symbolizer.rb +26 -0
  147. data/test/test_mapnik_color.rb +66 -0
  148. data/test/test_mapnik_coord.rb +92 -0
  149. data/test/test_mapnik_datasource.rb +49 -0
  150. data/test/test_mapnik_envelope.rb +232 -0
  151. data/test/test_mapnik_expression.rb +19 -0
  152. data/test/test_mapnik_feature.rb +29 -0
  153. data/test/test_mapnik_font_engine.rb +13 -0
  154. data/test/test_mapnik_layer.rb +121 -0
  155. data/test/test_mapnik_line_symbolizer.rb +25 -0
  156. data/test/test_mapnik_map.rb +211 -0
  157. data/test/test_mapnik_markers_symbolizer.rb +46 -0
  158. data/test/test_mapnik_point_symbolizer.rb +53 -0
  159. data/test/test_mapnik_polygon_symbolizer.rb +44 -0
  160. data/test/test_mapnik_projection.rb +46 -0
  161. data/test/test_mapnik_raster_colorizer.rb +56 -0
  162. data/test/test_mapnik_raster_symbolizer.rb +45 -0
  163. data/test/test_mapnik_rule.rb +45 -0
  164. data/test/test_mapnik_shield_symbolizer.rb +156 -0
  165. data/test/test_mapnik_stroke.rb +94 -0
  166. data/test/test_mapnik_style.rb +28 -0
  167. data/test/test_mapnik_symbolizer.rb +9 -0
  168. data/test/test_mapnik_text_symbolizer.rb +208 -0
  169. data/test/test_polygon_pattern_symbolizer.rb +34 -0
  170. data/test/test_ruby_mapnik.rb +34 -0
  171. data/yard/lib/yard/parser/generic_parser.rb +72 -0
  172. data/yard/lib/yard_generic.rb +18 -0
  173. 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,9 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikSymbolizer < Test::Unit::TestCase
4
+
5
+ def test_presence
6
+ assert Mapnik::Symbolizer
7
+ end
8
+
9
+ 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