ruby_mapnik 0.1.3 → 0.1.4

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/Gemfile CHANGED
@@ -6,6 +6,7 @@ source :gemcutter
6
6
 
7
7
  gem "rice", ">=1.4.2"
8
8
 
9
+ gem "chunky_png", ">=0", :group => [:development, :test]
9
10
  gem "rake-compiler", ">=0", :group => [:development, :test]
10
11
  gem "hoe", "~>2.10", :group => [:development, :test]
11
12
 
data/Manifest.txt CHANGED
@@ -89,8 +89,6 @@ ext/ruby_mapnik/_mapnik_feature.rb.cpp
89
89
  ext/ruby_mapnik/_mapnik_feature.rb.h
90
90
  ext/ruby_mapnik/_mapnik_font_engine.rb.cpp
91
91
  ext/ruby_mapnik/_mapnik_font_engine.rb.h
92
- ext/ruby_mapnik/_mapnik_geometry.rb.cpp
93
- ext/ruby_mapnik/_mapnik_geometry.rb.h
94
92
  ext/ruby_mapnik/_mapnik_layer.rb.cpp
95
93
  ext/ruby_mapnik/_mapnik_layer.rb.h
96
94
  ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp
@@ -152,7 +150,6 @@ test/test_mapnik_envelope.rb
152
150
  test/test_mapnik_expression.rb
153
151
  test/test_mapnik_feature.rb
154
152
  test/test_mapnik_font_engine.rb
155
- test/test_mapnik_geometry.rb
156
153
  test/test_mapnik_layer.rb
157
154
  test/test_mapnik_line_symbolizer.rb
158
155
  test/test_mapnik_map.rb
data/Rakefile CHANGED
@@ -31,7 +31,7 @@ Hoe.spec 'ruby_mapnik' do
31
31
  self.history_file = 'History.txt'
32
32
  self.extra_deps << ['rice', '>= 1.4.2']
33
33
  self.extra_dev_deps << ['rake-compiler', '>= 0']
34
-
34
+ self.extra_dev_deps << ['chunky_png', '>= 0']
35
35
 
36
36
  self.spec_extras = { :extensions => ["ext/ruby_mapnik/extconf.rb"] }
37
37
 
@@ -30,7 +30,6 @@ void register_mapnik(){
30
30
  register_datasource_cache(rb_mapnik);
31
31
  register_envelope(rb_mapnik);
32
32
  register_feature(rb_mapnik);
33
- register_geometry(rb_mapnik);
34
33
  register_polygon_symbolizer(rb_mapnik);
35
34
  register_line_symbolizer(rb_mapnik);
36
35
  register_stroke(rb_mapnik);
@@ -38,7 +38,6 @@ SOFTWARE.
38
38
  #include "_mapnik_datasource_cache.rb.h"
39
39
  #include "_mapnik_envelope.rb.h"
40
40
  #include "_mapnik_feature.rb.h"
41
- #include "_mapnik_geometry.rb.h"
42
41
 
43
42
  #include "_mapnik_polygon_symbolizer.rb.h"
44
43
  #include "_mapnik_line_symbolizer.rb.h"
@@ -40,22 +40,31 @@ namespace {
40
40
  }
41
41
 
42
42
  class context_holder {
43
+ private:
44
+ mapnik::context_ptr ptr;
43
45
  public:
44
- mapnik::context_ptr ptr;
45
- context_holder(){
46
- ptr = boost::make_shared<mapnik::context_type>();
46
+
47
+ context_holder()
48
+ : ptr (boost::make_shared<mapnik::context_type>())
49
+ {
50
+ return;
47
51
  }
48
52
 
49
53
  int push(std::string const& str){
50
54
  return ptr->push(str);
51
55
  }
56
+
57
+ mapnik::context_ptr get_ptr(){
58
+ return ptr;
59
+ }
60
+
52
61
  };
53
62
 
54
63
  }
55
64
  template<>
56
65
  mapnik::context_ptr from_ruby<mapnik::context_ptr>(Rice::Object ruby_obj){
57
66
  context_holder ctx = from_ruby<context_holder>(ruby_obj);
58
- return ctx.ptr;
67
+ return ctx.get_ptr();
59
68
  }
60
69
 
61
70
  void register_feature(Rice::Module rb_mapnik){
@@ -109,7 +109,7 @@ void register_layer(Rice::Module rb_mapnik){
109
109
  * Document-method: min_zoom
110
110
  * @return [Integer] the layer's minimum zoom factor
111
111
  */
112
- rb_clayer.define_method("min_zoom", &mapnik::layer::getMinZoom);
112
+ rb_clayer.define_method("min_zoom", &mapnik::layer::min_zoom);
113
113
 
114
114
  /*
115
115
  * Document-method: min_zoom=
@@ -117,13 +117,13 @@ void register_layer(Rice::Module rb_mapnik){
117
117
  * min_zoom=(min_zoom)
118
118
  * @return [nil]
119
119
  */
120
- rb_clayer.define_method("min_zoom=", &mapnik::layer::setMinZoom, Rice::Arg("new_min_zoom"));
120
+ rb_clayer.define_method("min_zoom=", &mapnik::layer::set_min_zoom, Rice::Arg("new_min_zoom"));
121
121
 
122
122
  /*
123
123
  * Document-method: max_zoom
124
124
  * @return [Integer] the layer's maximum zoom factor
125
125
  */
126
- rb_clayer.define_method("max_zoom", &mapnik::layer::getMaxZoom);
126
+ rb_clayer.define_method("max_zoom", &mapnik::layer::max_zoom);
127
127
 
128
128
 
129
129
  /*
@@ -132,19 +132,19 @@ void register_layer(Rice::Module rb_mapnik){
132
132
  * min_zoom=(min_zoom)
133
133
  * @return [nil]
134
134
  */
135
- rb_clayer.define_method("max_zoom=", &mapnik::layer::setMaxZoom, Rice::Arg("new_max_zoom"));
135
+ rb_clayer.define_method("max_zoom=", &mapnik::layer::set_max_zoom, Rice::Arg("new_max_zoom"));
136
136
 
137
137
  /*
138
138
  * Document-method: visible_at_scale?
139
139
  * @return [Boolean]
140
140
  */
141
- rb_clayer.define_method("visible_at_scale?", &mapnik::layer::isVisible, Rice::Arg("scale"));
141
+ rb_clayer.define_method("visible_at_scale?", &mapnik::layer::visible, Rice::Arg("scale"));
142
142
 
143
143
  /*
144
144
  * Document-method: active?
145
145
  * @return [Boolean]
146
146
  */
147
- rb_clayer.define_method("active?", &mapnik::layer::isActive);
147
+ rb_clayer.define_method("active?", &mapnik::layer::active);
148
148
 
149
149
  /*
150
150
  * Document-method: active=
@@ -152,13 +152,13 @@ void register_layer(Rice::Module rb_mapnik){
152
152
  * active=(new_active_value)
153
153
  * @return [nil]
154
154
  */
155
- rb_clayer.define_method("active=", &mapnik::layer::setActive, Rice::Arg("new_active_value"));
155
+ rb_clayer.define_method("active=", &mapnik::layer::set_active, Rice::Arg("new_active_value"));
156
156
 
157
157
  /*
158
158
  * Document-method: queryable?
159
159
  * @return [Boolean]
160
160
  */
161
- rb_clayer.define_method("queryable?", &mapnik::layer::isQueryable);
161
+ rb_clayer.define_method("queryable?", &mapnik::layer::queryable);
162
162
 
163
163
  /*
164
164
  * Document-method: queryable=
@@ -166,7 +166,7 @@ void register_layer(Rice::Module rb_mapnik){
166
166
  * queryable=(new_queryable_value)
167
167
  * @return [nil]
168
168
  */
169
- rb_clayer.define_method("queryable=", &mapnik::layer::setQueryable, Rice::Arg("new_queryable_value"));
169
+ rb_clayer.define_method("queryable=", &mapnik::layer::set_queryable, Rice::Arg("new_queryable_value"));
170
170
 
171
171
  /*
172
172
  * Document-method: cache_features?
@@ -82,8 +82,7 @@ std::vector<mapnik::layer> & (mapnik::Map::*_map_layers_)() = &mapnik::Map::laye
82
82
 
83
83
  namespace {
84
84
 
85
- void render_map_to_file(const mapnik::Map& map, const std::string& filename){
86
- std::string format = mapnik::guess_type(filename);
85
+ void render_map_to_file_with_format(const mapnik::Map& map, const std::string& filename, const std::string& format){
87
86
  if (format == "pdf" || format == "svg" || format =="ps") {
88
87
  #if defined(HAVE_CAIRO)
89
88
  mapnik::save_to_cairo_file(map,filename,format);
@@ -94,10 +93,14 @@ namespace {
94
93
  mapnik::image_32 image(map.width(),map.height());
95
94
  mapnik::agg_renderer<mapnik::image_32> ren(map,image,1.0,0,0);
96
95
  ren.apply();
97
- mapnik::save_to_file(image,filename);
96
+ mapnik::save_to_file(image,filename, format);
98
97
  }
99
98
  }
100
99
 
100
+ void render_map_to_file(const mapnik::Map& map, const std::string& filename){
101
+ render_map_to_file_with_format(map, filename, mapnik::guess_type(filename));
102
+ }
103
+
101
104
  std::string render_map_to_string(const mapnik::Map& map, std::string const& format){
102
105
  mapnik::image_32 image(map.width(),map.height());
103
106
  mapnik::agg_renderer<mapnik::image_32> ren(map,image,1.0,0,0);
@@ -417,6 +420,11 @@ void register_map(Rice::Module rb_mapnik){
417
420
  */
418
421
  rb_cmap.define_method("__render_to_file__", &render_map_to_file);
419
422
 
423
+ /*
424
+ * Dont-Document-method: __render_to_file_with_format__
425
+ */
426
+ rb_cmap.define_method("__render_to_file_with_format__", &render_map_to_file_with_format);
427
+
420
428
  /*
421
429
  * Document-method: to_xml
422
430
  * @return [String]
data/lib/ruby_mapnik.rb CHANGED
@@ -37,7 +37,7 @@ require "#{path}/ruby_mapnik/mapnik/tile"
37
37
 
38
38
 
39
39
  module Mapnik
40
- VERSION = '0.1.3'
40
+ VERSION = '0.1.4'
41
41
 
42
42
  FontEngine.register_fonts(FONT_PATH)
43
43
  DatasourceCache.register(INPUT_PLUGIN_PATH)
@@ -26,7 +26,7 @@ module Mapnik
26
26
  DEFAULT_VALID_EXTENSIONS = ['ttf','otf','ttc','pfa','pfb','ttc','dfont']
27
27
 
28
28
  def self.register_fonts(path, valid_extensions = DEFAULT_VALID_EXTENSIONS)
29
- file_names = Dir.glob(File.join("#{path}", "*.{#{valid_extensions.join(',')}}"))
29
+ file_names = Dir.glob(File.join("#{path}", "**", "*.{#{valid_extensions.join(',')}}"))
30
30
  file_names.each{|filename| register_font(filename)}
31
31
  end
32
32
 
@@ -149,10 +149,15 @@ module Mapnik
149
149
 
150
150
  # Renders the map to a file. Returns true or false depending if the
151
151
  # render was successful. The image type is inferred from the filename.
152
- # @param [String] filename Should end in one of "png", "jpg", or "tiff"
152
+ # @param [String] filename Should end in one of "png", "jpg", or "tiff" if format not specified
153
+ # @param [String] format Should be one of formats supported by Mapnik or nil (to be guessed from filename)
153
154
  # @return [Boolean]
154
- def render_to_file(filename)
155
- __render_to_file__(filename)
155
+ def render_to_file(filename, format = nil)
156
+ if format
157
+ __render_to_file_with_format__(filename, format)
158
+ else
159
+ __render_to_file__(filename)
160
+ end
156
161
  return File.exists?(filename)
157
162
  end
158
163
 
@@ -44,11 +44,11 @@ module Mapnik
44
44
  setup_bounds
45
45
  end
46
46
 
47
- def render(map, filename)
47
+ def render(map, filename, format=nil)
48
48
  map.height = @height
49
49
  map.width = @width
50
50
  map.zoom_to_box(forwarded_envelope)
51
- map.render_to_file(filename)
51
+ map.render_to_file(filename, format)
52
52
  end
53
53
 
54
54
  def render_to_string(map)
data/test/test_helper.rb CHANGED
@@ -25,5 +25,5 @@ CURRENT_PATH = File.expand_path(File.dirname(__FILE__))
25
25
  require File.join(CURRENT_PATH, '..', 'lib', 'ruby_mapnik')
26
26
 
27
27
  unless defined?(SHAPEFILE)
28
- SHAPEFILE = "#{File.expand_path(File.dirname(__FILE__))}/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD"
28
+ SHAPEFILE = File.join(CURRENT_PATH, 'data', 'TM_WORLD_BORDERS_SIMPL_0.3_MOD')
29
29
  end
@@ -58,55 +58,35 @@ class TestMapnikCoord < Test::Unit::TestCase
58
58
 
59
59
  # These could be refactored, I suppose...
60
60
  def test_should_return_a_new_coord_when_multiplied_by_a_number
61
- start_x = 1
62
- start_y = 2
63
- factor = 3
64
- coord2d = Mapnik::Coord2d.new(start_x, start_y)
65
- multiplied_coord = coord2d * factor
66
- assert_not_equal(coord2d.object_id, multiplied_coord.object_id)
67
- assert_equal(coord2d.x * factor, multiplied_coord.x)
68
- assert_equal(coord2d.y * factor, multiplied_coord.y)
69
- assert_equal(coord2d.x, start_x)
70
- assert_equal(coord2d.y, start_y)
61
+ coord_check_with_operator(:*)
71
62
  end
72
63
 
73
64
  def test_should_return_a_new_coord_when_added_to_by_a_number
74
- start_x = 1
75
- start_y = 2
76
- factor = 3
77
- coord2d = Mapnik::Coord2d.new(start_x, start_y)
78
- added_coord = coord2d + factor
79
- assert_not_equal(coord2d.object_id, added_coord.object_id)
80
- assert_equal(coord2d.x + factor, added_coord.x)
81
- assert_equal(coord2d.y + factor, added_coord.y)
82
- assert_equal(coord2d.x, start_x)
83
- assert_equal(coord2d.y, start_y)
65
+ coord_check_with_operator(:+)
84
66
  end
85
67
 
86
68
  def test_should_return_a_new_coord_when_subtracted_from_by_a_number
87
- start_x = 1
88
- start_y = 2
89
- factor = 3
90
- coord2d = Mapnik::Coord2d.new(start_x, start_y)
91
- subtracted_coord = coord2d - factor
92
- assert_not_equal(coord2d.object_id, subtracted_coord.object_id)
93
- assert_equal(coord2d.x - factor, subtracted_coord.x)
94
- assert_equal(coord2d.y - factor, subtracted_coord.y)
95
- assert_equal(coord2d.x, start_x)
96
- assert_equal(coord2d.y, start_y)
69
+ coord_check_with_operator(:-)
97
70
  end
98
71
 
99
72
  def test_should_return_a_new_coord_when_divided_by_a_number
73
+ coord_check_with_operator(:/)
74
+ end
75
+
76
+ private
77
+
78
+ def coord_check_with_operator(operator)
100
79
  start_x = 1
101
80
  start_y = 2
102
81
  factor = 3
103
82
  coord2d = Mapnik::Coord2d.new(start_x, start_y)
104
- divided_coord = coord2d / factor
105
- assert_not_equal(coord2d.object_id, divided_coord.object_id)
106
- assert_equal(coord2d.x / factor, divided_coord.x)
107
- assert_equal(coord2d.y / factor, divided_coord.y)
83
+ updated_coord = coord2d.send(operator, factor)
84
+
85
+ assert_not_equal(coord2d.object_id, updated_coord.object_id)
86
+ assert_equal(coord2d.x.send(operator, factor), updated_coord.x)
87
+ assert_equal(coord2d.y.send(operator, factor), updated_coord.y)
108
88
  assert_equal(coord2d.x, start_x)
109
89
  assert_equal(coord2d.y, start_y)
110
90
  end
111
-
91
+
112
92
  end
@@ -1,4 +1,5 @@
1
1
  require "test_helper"
2
+ require "chunky_png"
2
3
 
3
4
  class TestMapnikMap < Test::Unit::TestCase
4
5
 
@@ -151,7 +152,17 @@ class TestMapnikMap < Test::Unit::TestCase
151
152
  assert File.exists?(filename)
152
153
  File.delete(filename)
153
154
  end
154
-
155
+
156
+ def test_should_render_to_file_with_explicit_format
157
+ map = build_complete_map
158
+ filename = File.join(File.expand_path(File.dirname(__FILE__)), "../tmp/world-256.png")
159
+ assert_equal 0, File.size(filename) if File.exists?(filename)
160
+ assert map.render_to_file(filename, "png256")
161
+ assert File.exists?(filename)
162
+ assert_not_nil ChunkyPNG::Datastream.from_file(filename).palette_chunk
163
+ File.delete(filename)
164
+ end
165
+
155
166
  def test_should_load_from_xml_string
156
167
  map_1 = build_complete_map
157
168
  map_2 = Mapnik::Map.from_xml(map_1.to_xml)
metadata CHANGED
@@ -1,98 +1,74 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby_mapnik
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Elliot Laster
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-14 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-27 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rice
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2166805120 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 1
31
- - 4
32
- - 2
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.4.2
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rake-compiler
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2166805120
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake-compiler
27
+ requirement: &2166804600 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
48
33
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rdoc
52
34
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2166804600
36
+ - !ruby/object:Gem::Dependency
37
+ name: chunky_png
38
+ requirement: &2166803860 !ruby/object:Gem::Requirement
54
39
  none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 19
59
- segments:
60
- - 3
61
- - 10
62
- version: "3.10"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
63
44
  type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: hoe
67
45
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2166803860
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: &2166800680 !ruby/object:Gem::Requirement
69
50
  none: false
70
- requirements:
51
+ requirements:
71
52
  - - ~>
72
- - !ruby/object:Gem::Version
73
- hash: 25
74
- segments:
75
- - 2
76
- - 13
77
- version: "2.13"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.12'
78
55
  type: :development
79
- version_requirements: *id004
80
- description: |-
81
- A set of bindings between Ruby and Mapnik. Supports many of the common uses for
82
- Mapnik, and one day, might support all of them. Rendering is available using
83
- the standard AGG library, or additionally via Cairo, if the rcairo gem is
84
- installed and Mapnik has been compiled with Cairo support.
85
- email:
56
+ prerelease: false
57
+ version_requirements: *2166800680
58
+ description: ! "A set of bindings between Ruby and Mapnik. Supports many of the common
59
+ uses for \nMapnik, and one day, might support all of them. Rendering is available
60
+ using\nthe standard AGG library, or additionally via Cairo, if the rcairo gem is
61
+ \ninstalled and Mapnik has been compiled with Cairo support."
62
+ email:
86
63
  - elliotlaster@gmail.com
87
64
  executables: []
88
-
89
- extensions:
65
+ extensions:
90
66
  - ext/ruby_mapnik/extconf.rb
91
- extra_rdoc_files:
67
+ extra_rdoc_files:
92
68
  - Manifest.txt
93
69
  - demo/data/COPYRIGHT.txt
94
70
  - demo/data/test/readme.txt
95
- files:
71
+ files:
96
72
  - .autotest
97
73
  - .yardopts
98
74
  - Gemfile
@@ -184,8 +160,6 @@ files:
184
160
  - ext/ruby_mapnik/_mapnik_feature.rb.h
185
161
  - ext/ruby_mapnik/_mapnik_font_engine.rb.cpp
186
162
  - ext/ruby_mapnik/_mapnik_font_engine.rb.h
187
- - ext/ruby_mapnik/_mapnik_geometry.rb.cpp
188
- - ext/ruby_mapnik/_mapnik_geometry.rb.h
189
163
  - ext/ruby_mapnik/_mapnik_layer.rb.cpp
190
164
  - ext/ruby_mapnik/_mapnik_layer.rb.h
191
165
  - ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp
@@ -247,7 +221,6 @@ files:
247
221
  - test/test_mapnik_expression.rb
248
222
  - test/test_mapnik_feature.rb
249
223
  - test/test_mapnik_font_engine.rb
250
- - test/test_mapnik_geometry.rb
251
224
  - test/test_mapnik_layer.rb
252
225
  - test/test_mapnik_line_symbolizer.rb
253
226
  - test/test_mapnik_map.rb
@@ -270,39 +243,31 @@ files:
270
243
  - .gemtest
271
244
  homepage: https://github.com/mapnik/Ruby-Mapnik
272
245
  licenses: []
273
-
274
246
  post_install_message:
275
- rdoc_options:
247
+ rdoc_options:
276
248
  - --main
277
249
  - README.rdoc
278
- require_paths:
250
+ require_paths:
279
251
  - lib
280
- required_ruby_version: !ruby/object:Gem::Requirement
252
+ required_ruby_version: !ruby/object:Gem::Requirement
281
253
  none: false
282
- requirements:
283
- - - ">="
284
- - !ruby/object:Gem::Version
285
- hash: 3
286
- segments:
287
- - 0
288
- version: "0"
289
- required_rubygems_version: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ! '>='
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ required_rubygems_version: !ruby/object:Gem::Requirement
290
259
  none: false
291
- requirements:
292
- - - ">="
293
- - !ruby/object:Gem::Version
294
- hash: 3
295
- segments:
296
- - 0
297
- version: "0"
260
+ requirements:
261
+ - - ! '>='
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
298
264
  requirements: []
299
-
300
265
  rubyforge_project: ruby_mapnik
301
- rubygems_version: 1.8.16
266
+ rubygems_version: 1.8.10
302
267
  signing_key:
303
268
  specification_version: 3
304
269
  summary: A set of bindings between Ruby and Mapnik
305
- test_files:
270
+ test_files:
306
271
  - test/test_helper.rb
307
272
  - test/test_line_pattern_symbolizer.rb
308
273
  - test/test_mapnik_color.rb
@@ -312,7 +277,6 @@ test_files:
312
277
  - test/test_mapnik_expression.rb
313
278
  - test/test_mapnik_feature.rb
314
279
  - test/test_mapnik_font_engine.rb
315
- - test/test_mapnik_geometry.rb
316
280
  - test/test_mapnik_layer.rb
317
281
  - test/test_mapnik_line_symbolizer.rb
318
282
  - test/test_mapnik_map.rb
@@ -1,82 +0,0 @@
1
- /*****************************************************************************
2
- Copyright (C) 2011 Elliot Laster
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of
5
- this software and associated documentation files (the ‘Software’), to deal in
6
- the Software without restriction, including without limitation the rights to
7
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8
- of the Software, and to permit persons to whom the Software is furnished to do
9
- so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.
21
- *****************************************************************************/
22
- #include <_mapnik_geometry.rb.h>
23
-
24
- // Rice
25
- #include <rice/Data_Type.hpp>
26
- #include <rice/Constructor.hpp>
27
- #include <rice/Class.hpp>
28
- #include <rice/Enum.hpp>
29
-
30
- // Mapnik
31
- #include <mapnik/geometry.hpp>
32
- #include <mapnik/wkt/wkt_factory.hpp>
33
-
34
- namespace{
35
-
36
- typedef boost::ptr_vector<mapnik::geometry_type> path_type;
37
-
38
- // Borrowed from the python bindings...
39
- void from_wkt_impl(path_type& p, std::string const& wkt)
40
- {
41
- bool result = mapnik::from_wkt(wkt, p);
42
- if (!result) throw std::runtime_error("Failed to parse WKT");
43
- }
44
-
45
- /*
46
- mapnik::geometry_type * from_wkt_impl(std::string const& wkt) {
47
- std::pair<bool,mapnik::geometry_type*> result = mapnik::from_wkt(wkt);
48
- if (result.first){
49
- return result.second;
50
- }
51
- throw std::runtime_error("Failed to parse WKT");
52
- }
53
- */
54
-
55
- }
56
-
57
- Rice::Enum<mapnik::eGeomType> geometry_enum;
58
-
59
- template<>
60
- mapnik::eGeomType from_ruby<mapnik::eGeomType>(Rice::Object x) {
61
- Rice::Data_Object<mapnik::eGeomType> d(x, geometry_enum);
62
- return *d;
63
- }
64
-
65
-
66
- void register_geometry(Rice::Module rb_mapnik){
67
- /*
68
- @@Module_var rb_mapnik = Mapnik
69
- */
70
- geometry_enum = Rice::define_enum<mapnik::eGeomType>("GeometryType", rb_mapnik);
71
- geometry_enum.define_value("Point",mapnik::Point);
72
- geometry_enum.define_value("LineString",mapnik::LineString);
73
- geometry_enum.define_value("Polygon",mapnik::Polygon);
74
-
75
- Rice::Data_Type< mapnik::geometry_type > rb_cgeometry2d = Rice::define_class_under< mapnik::geometry_type >(rb_mapnik, "Geometry2d");
76
- rb_cgeometry2d.define_method("envelope", &mapnik::geometry_type::envelope);
77
- rb_cgeometry2d.define_method("type", &mapnik::geometry_type::type);
78
-
79
- Rice::Data_Type< path_type > rb_cpath = Rice::define_class_under< path_type >(rb_mapnik, "Path");
80
- rb_cpath.define_singleton_method("from_wkt", &from_wkt_impl, Rice::Arg("wkt"));
81
- }
82
-
@@ -1,32 +0,0 @@
1
- /*****************************************************************************
2
- Copyright (C) 2011 Elliot Laster
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of
5
- this software and associated documentation files (the ‘Software’), to deal in
6
- the Software without restriction, including without limitation the rights to
7
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8
- of the Software, and to permit persons to whom the Software is furnished to do
9
- so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.
21
- *****************************************************************************/
22
- #ifndef PIKA2_MAPNIK_GEOMETRY
23
- #define PIKA2_MAPNIK_GEOMETRY
24
-
25
- namespace Rice
26
- {
27
- class Module;
28
- }
29
-
30
- void register_geometry(Rice::Module rb_mapnik);
31
-
32
- #endif
@@ -1,84 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestMapnikGeometry < Test::Unit::TestCase
4
-
5
- STATEMENT = "Geometry tests no longer valid. See https://github.com/mapnik/Ruby-Mapnik/issues/11"
6
-
7
- def test_presence
8
- assert Mapnik::GeometryType
9
- assert Mapnik::Geometry2d
10
- assert Mapnik::GeometryType::Point
11
- assert Mapnik::GeometryType::LineString
12
- assert Mapnik::GeometryType::Polygon
13
- end
14
-
15
- def test_should_make_point_from_wkt
16
- omit(STATEMENT)
17
- # point = Mapnik::Geometry2d.from_wkt("POINT(30 10)")
18
- # assert_equal Mapnik::GeometryType::Point, point.type
19
- # assert_equal 30, point.envelope.min_x
20
- # assert_equal 30, point.envelope.max_x
21
- # assert_equal 10, point.envelope.max_y
22
- # assert_equal 10, point.envelope.min_y
23
- # assert_equal 0, point.area
24
- end
25
-
26
- def test_should_make_linestring_from_wkt
27
- omit(STATEMENT)
28
- # linestring = Mapnik::Geometry2d.from_wkt("LINESTRING (29 11, 12 30, 41 40)")
29
- # assert_equal Mapnik::GeometryType::LineString, linestring.type
30
- # assert_equal 12, linestring.envelope.min_x
31
- # assert_equal 41, linestring.envelope.max_x
32
- # assert_equal 40, linestring.envelope.max_y
33
- # assert_equal 11, linestring.envelope.min_y
34
- # assert_equal 0, linestring.area -> Not sure what the correct value is here
35
- end
36
-
37
- def test_should_make_polygon_from_wkt
38
- omit(STATEMENT)
39
- # polygon = Mapnik::Geometry2d.from_wkt("POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))")
40
- # assert_equal Mapnik::GeometryType::Polygon, polygon.type
41
- # assert_equal 10, polygon.envelope.min_x
42
- # assert_equal 40, polygon.envelope.max_x
43
- # assert_equal 40, polygon.envelope.max_y
44
- # assert_equal 10, polygon.envelope.min_y
45
- # assert_equal 0, polygon.area
46
- end
47
-
48
- def test_should_make_multipoint_from_wkt
49
- omit(STATEMENT)
50
- # multipoint = Mapnik::Geometry2d.from_wkt("MULTIPOINT (10 40, 40 30, 20 20, 30 10)")
51
- # assert_equal Mapnik::GeometryType::MultiPoint, multipoint.type
52
- # assert_equal 10, multipoint.envelope.min_x
53
- # assert_equal 40, multipoint.envelope.max_x
54
- # assert_equal 40, multipoint.envelope.max_y
55
- # assert_equal 10, multipoint.envelope.min_y
56
- end
57
-
58
- def test_should_make_multilinestring_from_wkt
59
- omit(STATEMENT)
60
- # multi_line = Mapnik::Geometry2d.from_wkt("MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))")
61
- # assert_equal Mapnik::GeometryType::MultiLineString, multi_line.type
62
- # assert_equal 10, multi_line.envelope.min_x
63
- # assert_equal 40, multi_line.envelope.max_x
64
- # assert_equal 40, multi_line.envelope.max_y
65
- # assert_equal 10, multi_line.envelope.min_y
66
- end
67
-
68
- def test_should_make_multipolygon_from_wkt
69
- omit(STATEMENT)
70
- # multi_polygon = Mapnik::Geometry2d.from_wkt("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))")
71
- # assert_equal Mapnik::GeometryType::MultiPolygon, multi_polygon.type
72
- # assert_equal 5, multi_polygon.envelope.min_x
73
- # assert_equal 45, multi_polygon.envelope.max_x
74
- # assert_equal 40, multi_polygon.envelope.max_y
75
- # assert_equal 5, multi_polygon.envelope.min_y
76
- end
77
-
78
- private
79
-
80
- def omit(str)
81
- puts str
82
- end
83
-
84
- end