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.
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