dm-postgis 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,7 @@
1
1
  source :rubyforge
2
2
 
3
+ dm_version = "1.0.2"
3
4
  gem "GeoRuby"
5
+ gem "dm-core", dm_version
6
+ gem "dm-postgres-adapter", dm_version
4
7
 
data/Gemfile.lock ADDED
@@ -0,0 +1,27 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ GeoRuby (1.3.4)
5
+ addressable (2.2.2)
6
+ data_objects (0.10.2)
7
+ addressable (~> 2.1)
8
+ dm-core (1.0.2)
9
+ addressable (~> 2.2)
10
+ extlib (~> 0.9.15)
11
+ dm-do-adapter (1.0.2)
12
+ data_objects (~> 0.10.2)
13
+ dm-core (~> 1.0.2)
14
+ dm-postgres-adapter (1.0.2)
15
+ dm-do-adapter (~> 1.0.2)
16
+ do_postgres (~> 0.10.2)
17
+ do_postgres (0.10.2)
18
+ data_objects (= 0.10.2)
19
+ extlib (0.9.15)
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ GeoRuby
26
+ dm-core (= 1.0.2)
27
+ dm-postgres-adapter (= 1.0.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
data/lib/dm-postgis.rb CHANGED
@@ -1,25 +1,30 @@
1
1
  require 'geo_ruby'
2
+ require 'dm-core'
2
3
 
3
4
  module DataMapper
4
5
  class Property
5
- class DMGeometry < Property
6
+ #class DMGeometry < GeoRuby::SimpleFeatures::Geometry
7
+ class DMGeometry < Text
6
8
  include GeoRuby::SimpleFeatures
7
- primitive ::Object
8
- default nil
9
- # length nil
10
- lazy false
11
-
9
+
10
+ def primitive?(value)
11
+ value.kind_of? Geometry
12
+ end
13
+
12
14
  def dump(value)
13
15
  value.nil? ? nil : value.as_hex_ewkb
14
16
  end
15
17
 
18
+ def valid?(value, negated = false)
19
+ super || dump(value).kind_of?(::String)
20
+ end
21
+
16
22
  def load(value)
17
23
  value.nil? ? nil : Geometry.from_hex_ewkb(value)
18
24
  end
19
25
 
20
- def self.typecast(value, property)
21
- return value if value.nil? || value.kind_of?(Geometry)
22
- return Geometry.from_hex_ewkb(value)
26
+ def typecast_to_primitive(value)
27
+ load(value)
23
28
  end
24
29
  end # class Text
25
30
  end # module Types
data/spec/dummy.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'dm-core/spec/setup'
2
+ require 'dm-core/spec/lib/adapter_helpers'
3
+ require 'dm-migrations'
4
+
5
+ ENV['ADAPTER']='postgres'
6
+ DataMapper::Spec.setup
7
+
8
+ describe "dm-postgis" do
9
+ it "should load" do
10
+ require 'dm-postgis'
11
+ end
12
+
13
+ describe "should allow DMGeometry property" do
14
+ require 'dm-postgis'
15
+ require 'fixtures/geo'
16
+ it 'should work for empty values' do
17
+ TestTable.new.should_not be_nil
18
+ end
19
+
20
+ it 'should work for positions' do
21
+ g = GeoRuby::SimpleFeatures::Point.from_x_y(1, 2)
22
+ t = TestTable.new(:position => g)
23
+ t.save.should be(true)
24
+ t.reload
25
+ t.position.x.should == 1
26
+ t.position.y.should == 2
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,7 @@
1
+ class TestTable
2
+ include ::DataMapper::Resource
3
+ property :id, Serial
4
+ property :position, DMGeometry, :required => false
5
+ end
6
+ DataMapper.auto_upgrade!
7
+
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-postgis
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 31
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
- - 1
8
+ - 2
8
9
  - 0
9
- version: 1.1.0
10
+ version: 1.2.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Roman Kamyk jr
@@ -14,21 +15,101 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-06-16 00:00:00 +02:00
18
+ date: 2010-11-16 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- type: :runtime
22
- name: GeoRuby
23
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
+ hash: 3
27
28
  segments:
28
29
  - 0
29
30
  version: "0"
30
31
  requirement: *id001
31
32
  prerelease: false
33
+ type: :runtime
34
+ name: GeoRuby
35
+ - !ruby/object:Gem::Dependency
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - "="
40
+ - !ruby/object:Gem::Version
41
+ hash: 19
42
+ segments:
43
+ - 1
44
+ - 0
45
+ - 2
46
+ version: 1.0.2
47
+ requirement: *id002
48
+ prerelease: false
49
+ type: :runtime
50
+ name: dm-core
51
+ - !ruby/object:Gem::Dependency
52
+ version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - "="
56
+ - !ruby/object:Gem::Version
57
+ hash: 19
58
+ segments:
59
+ - 1
60
+ - 0
61
+ - 2
62
+ version: 1.0.2
63
+ requirement: *id003
64
+ prerelease: false
65
+ type: :runtime
66
+ name: dm-postgres-adapter
67
+ - !ruby/object:Gem::Dependency
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ requirement: *id004
78
+ prerelease: false
79
+ type: :runtime
80
+ name: GeoRuby
81
+ - !ruby/object:Gem::Dependency
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - "="
86
+ - !ruby/object:Gem::Version
87
+ hash: 19
88
+ segments:
89
+ - 1
90
+ - 0
91
+ - 2
92
+ version: 1.0.2
93
+ requirement: *id005
94
+ prerelease: false
95
+ type: :runtime
96
+ name: dm-core
97
+ - !ruby/object:Gem::Dependency
98
+ version_requirements: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - "="
102
+ - !ruby/object:Gem::Version
103
+ hash: 19
104
+ segments:
105
+ - 1
106
+ - 0
107
+ - 2
108
+ version: 1.0.2
109
+ requirement: *id006
110
+ prerelease: false
111
+ type: :runtime
112
+ name: dm-postgres-adapter
32
113
  description: Adds DMGeometry type to DataMapper that uses GeoRuby for (de)serializing Geometry types into Postgis
33
114
  email: roman.kamyk@gmail.com
34
115
  executables: []
@@ -40,8 +121,8 @@ extra_rdoc_files:
40
121
  - README.rdoc
41
122
  files:
42
123
  - .document
43
- - .gitignore
44
124
  - Gemfile
125
+ - Gemfile.lock
45
126
  - LICENSE
46
127
  - README.rdoc
47
128
  - Rakefile
@@ -49,35 +130,42 @@ files:
49
130
  - lib/dm-postgis-adapter.rb
50
131
  - lib/dm-postgis.rb
51
132
  - lib/postgis_adapter.rb
133
+ - spec/dummy.rb
134
+ - spec/fixtures/geo.rb
52
135
  has_rdoc: true
53
136
  homepage: http://github.com/rkj/dm-postgis
54
137
  licenses: []
55
138
 
56
139
  post_install_message:
57
- rdoc_options:
58
- - --charset=UTF-8
140
+ rdoc_options: []
141
+
59
142
  require_paths:
60
143
  - lib
61
144
  required_ruby_version: !ruby/object:Gem::Requirement
145
+ none: false
62
146
  requirements:
63
147
  - - ">="
64
148
  - !ruby/object:Gem::Version
149
+ hash: 3
65
150
  segments:
66
151
  - 0
67
152
  version: "0"
68
153
  required_rubygems_version: !ruby/object:Gem::Requirement
154
+ none: false
69
155
  requirements:
70
156
  - - ">="
71
157
  - !ruby/object:Gem::Version
158
+ hash: 3
72
159
  segments:
73
160
  - 0
74
161
  version: "0"
75
162
  requirements: []
76
163
 
77
164
  rubyforge_project:
78
- rubygems_version: 1.3.6
165
+ rubygems_version: 1.3.7
79
166
  signing_key:
80
167
  specification_version: 3
81
168
  summary: Geometry type for DataMapper
82
- test_files: []
83
-
169
+ test_files:
170
+ - spec/dummy.rb
171
+ - spec/fixtures/geo.rb
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC