dm-postgis 1.1.0 → 1.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.
- data/Gemfile +3 -0
- data/Gemfile.lock +27 -0
- data/VERSION +1 -1
- data/lib/dm-postgis.rb +14 -9
- data/spec/dummy.rb +30 -0
- data/spec/fixtures/geo.rb +7 -0
- metadata +99 -11
- data/.gitignore +0 -21
data/Gemfile
CHANGED
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
|
+
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 <
|
6
|
+
#class DMGeometry < GeoRuby::SimpleFeatures::Geometry
|
7
|
+
class DMGeometry < Text
|
6
8
|
include GeoRuby::SimpleFeatures
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
21
|
-
|
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
|
+
|
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
|
-
-
|
8
|
+
- 2
|
8
9
|
- 0
|
9
|
-
version: 1.
|
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-
|
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
|
-
|
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.
|
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
|