agrismart_ruby_mapnik 0.1.6

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 (175) hide show
  1. checksums.yaml +15 -0
  2. data/.autotest +35 -0
  3. data/.gemtest +0 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +13 -0
  6. data/LICENSE +19 -0
  7. data/Manifest.txt +172 -0
  8. data/README.rdoc +106 -0
  9. data/Rakefile +43 -0
  10. data/demo/data/COPYRIGHT.txt +3 -0
  11. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  12. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  13. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  14. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  15. data/demo/data/boundaries.dbf +0 -0
  16. data/demo/data/boundaries.prj +1 -0
  17. data/demo/data/boundaries.sbx +0 -0
  18. data/demo/data/boundaries.shp +0 -0
  19. data/demo/data/boundaries.shx +0 -0
  20. data/demo/data/boundaries_l.dbf +0 -0
  21. data/demo/data/boundaries_l.prj +1 -0
  22. data/demo/data/boundaries_l.sbx +0 -0
  23. data/demo/data/boundaries_l.shp +0 -0
  24. data/demo/data/boundaries_l.shx +0 -0
  25. data/demo/data/ontdrainage.dbf +0 -0
  26. data/demo/data/ontdrainage.prj +1 -0
  27. data/demo/data/ontdrainage.sbx +0 -0
  28. data/demo/data/ontdrainage.shp +0 -0
  29. data/demo/data/ontdrainage.shx +0 -0
  30. data/demo/data/popplaces.dbf +0 -0
  31. data/demo/data/popplaces.prj +1 -0
  32. data/demo/data/popplaces.sbx +0 -0
  33. data/demo/data/popplaces.shp +0 -0
  34. data/demo/data/popplaces.shx +0 -0
  35. data/demo/data/qcdrainage.dbf +0 -0
  36. data/demo/data/qcdrainage.prj +1 -0
  37. data/demo/data/qcdrainage.sbx +0 -0
  38. data/demo/data/qcdrainage.shp +0 -0
  39. data/demo/data/qcdrainage.shx +0 -0
  40. data/demo/data/roads.dbf +0 -0
  41. data/demo/data/roads.prj +1 -0
  42. data/demo/data/roads.sbx +0 -0
  43. data/demo/data/roads.shp +0 -0
  44. data/demo/data/roads.shx +0 -0
  45. data/demo/data/test/charplacement.dbf +0 -0
  46. data/demo/data/test/charplacement.shp +0 -0
  47. data/demo/data/test/charplacement.shx +0 -0
  48. data/demo/data/test/displacement.dbf +0 -0
  49. data/demo/data/test/displacement.shp +0 -0
  50. data/demo/data/test/displacement.shx +0 -0
  51. data/demo/data/test/overlap.dbf +0 -0
  52. data/demo/data/test/overlap.shp +0 -0
  53. data/demo/data/test/overlap.shx +0 -0
  54. data/demo/data/test/raw/charplacement.gfs +25 -0
  55. data/demo/data/test/raw/charplacement.gml +99 -0
  56. data/demo/data/test/raw/charplacement.xsd +36 -0
  57. data/demo/data/test/raw/displacement.gfs +25 -0
  58. data/demo/data/test/raw/displacement.gml +173 -0
  59. data/demo/data/test/raw/displacement.xsd +36 -0
  60. data/demo/data/test/raw/overlap.gfs +25 -0
  61. data/demo/data/test/raw/overlap.gml +127 -0
  62. data/demo/data/test/raw/overlap.xsd +36 -0
  63. data/demo/data/test/raw/textspacing.gfs +25 -0
  64. data/demo/data/test/raw/textspacing.gml +117 -0
  65. data/demo/data/test/raw/textspacing.xsd +36 -0
  66. data/demo/data/test/readme.txt +3 -0
  67. data/demo/data/test/regenerate.sh +20 -0
  68. data/demo/data/test/textspacing.dbf +0 -0
  69. data/demo/data/test/textspacing.shp +0 -0
  70. data/demo/data/test/textspacing.shx +0 -0
  71. data/demo/rundemo.rb +145 -0
  72. data/demo/sinatra/demo.rb +31 -0
  73. data/demo/sinatra/public/css/demo_map.css +7 -0
  74. data/demo/sinatra/public/index.html +13 -0
  75. data/demo/sinatra/public/javascripts/demo_map.js +42 -0
  76. data/ext/ruby_mapnik/_mapnik.cpp +52 -0
  77. data/ext/ruby_mapnik/_mapnik.h +65 -0
  78. data/ext/ruby_mapnik/_mapnik_color.rb.cpp +179 -0
  79. data/ext/ruby_mapnik/_mapnik_color.rb.h +32 -0
  80. data/ext/ruby_mapnik/_mapnik_coord.rb.cpp +145 -0
  81. data/ext/ruby_mapnik/_mapnik_coord.rb.h +32 -0
  82. data/ext/ruby_mapnik/_mapnik_datasource.rb.cpp +170 -0
  83. data/ext/ruby_mapnik/_mapnik_datasource.rb.h +32 -0
  84. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.cpp +87 -0
  85. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.h +32 -0
  86. data/ext/ruby_mapnik/_mapnik_envelope.rb.cpp +220 -0
  87. data/ext/ruby_mapnik/_mapnik_envelope.rb.h +32 -0
  88. data/ext/ruby_mapnik/_mapnik_expression.rb.cpp +91 -0
  89. data/ext/ruby_mapnik/_mapnik_expression.rb.h +32 -0
  90. data/ext/ruby_mapnik/_mapnik_feature.rb.cpp +93 -0
  91. data/ext/ruby_mapnik/_mapnik_feature.rb.h +32 -0
  92. data/ext/ruby_mapnik/_mapnik_font_engine.rb.cpp +71 -0
  93. data/ext/ruby_mapnik/_mapnik_font_engine.rb.h +32 -0
  94. data/ext/ruby_mapnik/_mapnik_layer.rb.cpp +208 -0
  95. data/ext/ruby_mapnik/_mapnik_layer.rb.h +32 -0
  96. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp +71 -0
  97. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.h +32 -0
  98. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.cpp +43 -0
  99. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.h +32 -0
  100. data/ext/ruby_mapnik/_mapnik_map.rb.cpp +489 -0
  101. data/ext/ruby_mapnik/_mapnik_map.rb.h +32 -0
  102. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.cpp +140 -0
  103. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.h +32 -0
  104. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.cpp +148 -0
  105. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.h +32 -0
  106. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.cpp +93 -0
  107. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.h +32 -0
  108. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.cpp +89 -0
  109. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.h +32 -0
  110. data/ext/ruby_mapnik/_mapnik_projection.rb.cpp +100 -0
  111. data/ext/ruby_mapnik/_mapnik_projection.rb.h +32 -0
  112. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.cpp +162 -0
  113. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.h +32 -0
  114. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.cpp +87 -0
  115. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.h +32 -0
  116. data/ext/ruby_mapnik/_mapnik_rule.rb.cpp +69 -0
  117. data/ext/ruby_mapnik/_mapnik_rule.rb.h +32 -0
  118. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.cpp +86 -0
  119. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.h +32 -0
  120. data/ext/ruby_mapnik/_mapnik_stroke.rb.cpp +188 -0
  121. data/ext/ruby_mapnik/_mapnik_stroke.rb.h +32 -0
  122. data/ext/ruby_mapnik/_mapnik_style.rb.cpp +76 -0
  123. data/ext/ruby_mapnik/_mapnik_style.rb.h +32 -0
  124. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.cpp +75 -0
  125. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.h +32 -0
  126. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.cpp +486 -0
  127. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.h +32 -0
  128. data/ext/ruby_mapnik/extconf.rb +83 -0
  129. data/ext/ruby_mapnik/ruby_mapnik.cpp +32 -0
  130. data/lib/mapnik.rb +1 -0
  131. data/lib/ruby_mapnik.rb +48 -0
  132. data/lib/ruby_mapnik/mapnik/font_engine.rb +35 -0
  133. data/lib/ruby_mapnik/mapnik/layer.rb +68 -0
  134. data/lib/ruby_mapnik/mapnik/map.rb +166 -0
  135. data/lib/ruby_mapnik/mapnik/projection.rb +44 -0
  136. data/lib/ruby_mapnik/mapnik/raster_colorizer.rb +55 -0
  137. data/lib/ruby_mapnik/mapnik/rule.rb +105 -0
  138. data/lib/ruby_mapnik/mapnik/stroke.rb +56 -0
  139. data/lib/ruby_mapnik/mapnik/style.rb +64 -0
  140. data/lib/ruby_mapnik/mapnik/tile.rb +93 -0
  141. data/script/console +2 -0
  142. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  143. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  144. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  145. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  146. data/test/data/test_map.xml +15 -0
  147. data/test/test_helper.rb +29 -0
  148. data/test/test_line_pattern_symbolizer.rb +26 -0
  149. data/test/test_mapnik_color.rb +66 -0
  150. data/test/test_mapnik_coord.rb +92 -0
  151. data/test/test_mapnik_datasource.rb +49 -0
  152. data/test/test_mapnik_envelope.rb +232 -0
  153. data/test/test_mapnik_expression.rb +19 -0
  154. data/test/test_mapnik_feature.rb +29 -0
  155. data/test/test_mapnik_font_engine.rb +13 -0
  156. data/test/test_mapnik_layer.rb +121 -0
  157. data/test/test_mapnik_line_symbolizer.rb +25 -0
  158. data/test/test_mapnik_map.rb +211 -0
  159. data/test/test_mapnik_markers_symbolizer.rb +46 -0
  160. data/test/test_mapnik_point_symbolizer.rb +53 -0
  161. data/test/test_mapnik_polygon_symbolizer.rb +44 -0
  162. data/test/test_mapnik_projection.rb +46 -0
  163. data/test/test_mapnik_raster_colorizer.rb +56 -0
  164. data/test/test_mapnik_raster_symbolizer.rb +45 -0
  165. data/test/test_mapnik_rule.rb +45 -0
  166. data/test/test_mapnik_shield_symbolizer.rb +163 -0
  167. data/test/test_mapnik_stroke.rb +94 -0
  168. data/test/test_mapnik_style.rb +28 -0
  169. data/test/test_mapnik_symbolizer.rb +9 -0
  170. data/test/test_mapnik_text_symbolizer.rb +215 -0
  171. data/test/test_polygon_pattern_symbolizer.rb +34 -0
  172. data/test/test_ruby_mapnik.rb +34 -0
  173. data/yard/lib/yard/parser/generic_parser.rb +72 -0
  174. data/yard/lib/yard_generic.rb +18 -0
  175. metadata +322 -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,215 @@
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_force_odd_labels
85
+ @symbolizer.force_odd_labels = true
86
+ assert @symbolizer.force_odd_labels?
87
+ @symbolizer.force_odd_labels = false
88
+ assert !@symbolizer.force_odd_labels?
89
+ end
90
+
91
+ def test_should_get_and_set_halo_fill
92
+ assert @symbolizer.halo_fill.instance_of?(Mapnik::Color)
93
+ white = Mapnik::Color.new("#fff")
94
+ @symbolizer.halo_fill = white
95
+ assert_equal white, @symbolizer.halo_fill
96
+ end
97
+
98
+ def test_should_get_and_set_halo_radius
99
+ assert_equal 0, @symbolizer.halo_radius
100
+ @symbolizer.halo_radius = 1
101
+ assert_equal 1, @symbolizer.halo_radius
102
+ end
103
+
104
+ def test_should_get_and_set_horizontal_alignment
105
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::LEFT
106
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::LEFT, @symbolizer.horizontal_alignment
107
+
108
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
109
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE, @symbolizer.horizontal_alignment
110
+
111
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
112
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::RIGHT, @symbolizer.horizontal_alignment
113
+ end
114
+
115
+ def test_should_get_and_set_justify_alignment
116
+ check_constant_setting(Mapnik::JUSTIFY_ALIGNMENT, :justify_alignment)
117
+ end
118
+
119
+ def test_should_get_and_set_label_placement
120
+ check_constant_setting(Mapnik::LABEL_PLACEMENT, :label_placement)
121
+ end
122
+
123
+ def test_should_get_and_set_label_position_tolerance
124
+ assert_equal 0, @symbolizer.label_position_tolerance
125
+ @symbolizer.label_position_tolerance = 1
126
+ assert_equal 1, @symbolizer.label_position_tolerance
127
+ end
128
+
129
+ def test_should_get_and_set_label_spacing
130
+ assert_equal 0, @symbolizer.label_spacing
131
+ @symbolizer.label_spacing = 1
132
+ assert_equal 1, @symbolizer.label_spacing
133
+ end
134
+
135
+ def test_should_get_and_set_line_spacing
136
+ assert_equal 0, @symbolizer.line_spacing
137
+ @symbolizer.line_spacing = 1
138
+ assert_equal 1, @symbolizer.line_spacing
139
+ end
140
+
141
+ def test_should_get_and_set_max_char_angle_delta
142
+ @symbolizer.max_char_angle_delta = 0.5
143
+ assert_equal 0.5, @symbolizer.max_char_angle_delta
144
+ @symbolizer.max_char_angle_delta = 0.7
145
+ assert_equal 0.7, @symbolizer.max_char_angle_delta
146
+ end
147
+
148
+ def test_should_get_and_set_minimum_distance
149
+ assert_equal 0, @symbolizer.minimum_distance
150
+ @symbolizer.minimum_distance = 1
151
+ assert_equal 1, @symbolizer.minimum_distance
152
+ end
153
+
154
+ def test_should_get_and_set_minimum_padding
155
+ assert_equal 0, @symbolizer.minimum_padding
156
+ @symbolizer.minimum_padding = 1
157
+ assert_equal 1, @symbolizer.minimum_padding
158
+ end
159
+
160
+ def test_should_get_and_set_opactiy
161
+ assert_equal 1, @symbolizer.opacity
162
+ @symbolizer.opacity = 0
163
+ assert_equal 0, @symbolizer.opacity
164
+ end
165
+
166
+ def test_should_get_and_set_text_transform
167
+ check_constant_setting(Mapnik::TEXT_TRANSFORM, :text_transform)
168
+ end
169
+
170
+ def test_should_get_and_set_text_ratio
171
+ assert_equal 0, @symbolizer.ratio
172
+ @symbolizer.ratio = 3
173
+ assert_equal 3, @symbolizer.ratio
174
+ end
175
+
176
+ def test_should_get_and_set_text_size
177
+ assert_equal 10, @symbolizer.size
178
+ @symbolizer.size = 0
179
+ assert_equal 0, @symbolizer.size
180
+ end
181
+
182
+ def test_should_get_and_set_vertical_alignment
183
+ check_constant_setting(Mapnik::VERTICAL_ALIGNMENT, :vertical_alignment)
184
+ end
185
+
186
+ def test_should_get_and_set_wrap_width
187
+ assert_equal 0, @symbolizer.wrap_width
188
+ @symbolizer.wrap_width = 30
189
+ assert_equal 30, @symbolizer.wrap_width
190
+ end
191
+
192
+ def test_should_get_and_set_wrap_character
193
+ @symbolizer.wrap_character = '|'
194
+ assert_equal '|', @symbolizer.wrap_character
195
+ @symbolizer.wrap_character = '%'
196
+ assert_equal '%', @symbolizer.wrap_character
197
+ end
198
+
199
+ def test_should_get_and_set_wrap_before
200
+ assert !@symbolizer.wrap_before
201
+ @symbolizer.wrap_before = true
202
+ assert @symbolizer.wrap_before
203
+ end
204
+
205
+ private
206
+
207
+ def check_constant_setting(enum, property)
208
+ enum.constants.each do |const_name|
209
+ const = enum.const_get(const_name)
210
+ @symbolizer.send(property.to_s + '=', const)
211
+ assert_equal const, @symbolizer.send(property)
212
+ end
213
+ end
214
+
215
+ 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