dr-postgis_adapter 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -19
- data/lib/postgis_adapter/acts_as_geom.rb +31 -34
- data/lib/postgis_adapter/functions/class.rb +13 -18
- data/pkg/dr-postgis_adapter-0.8.1.gem +0 -0
- data/pkg/dr-postgis_adapter-0.8.2.gem +0 -0
- data/pkg/dr-postgis_adapter-0.8.4.gem +0 -0
- data/postgis_adapter.gemspec +1 -1
- metadata +27 -25
- data/pkg/dr-postgis_adapter-0.8.3.gem +0 -0
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,16 +1,7 @@
|
|
1
|
-
GIT
|
2
|
-
remote: git://github.com/dryade/activerecord-jdbc-adapter.git
|
3
|
-
revision: 0bf424bc3bcaf9f44646976cc4c1a8e9e57f11b4
|
4
|
-
specs:
|
5
|
-
activerecord-jdbc-adapter (1.2.2)
|
6
|
-
activerecord-jdbcpostgresql-adapter (1.2.2)
|
7
|
-
activerecord-jdbc-adapter (~> 1.2.2)
|
8
|
-
jdbc-postgres (>= 9.0, < 9.2)
|
9
|
-
|
10
1
|
PATH
|
11
2
|
remote: .
|
12
3
|
specs:
|
13
|
-
dr-postgis_adapter (0.8.
|
4
|
+
dr-postgis_adapter (0.8.4)
|
14
5
|
nofxx-georuby
|
15
6
|
rake
|
16
7
|
|
@@ -20,16 +11,11 @@ GEM
|
|
20
11
|
ZenTest (4.5.0)
|
21
12
|
autotest (4.4.6)
|
22
13
|
ZenTest (>= 4.4.1)
|
23
|
-
|
24
|
-
diff-lcs (1.1.2)
|
25
|
-
jdbc-postgres (9.0.801)
|
26
|
-
jruby-openssl (0.7.7)
|
27
|
-
bouncy-castle-java (>= 1.5.0146.1)
|
14
|
+
diff-lcs (1.1.3)
|
28
15
|
nofxx-georuby (1.9.2)
|
29
16
|
pg (0.11.0)
|
30
|
-
rake (10.
|
17
|
+
rake (10.3.1)
|
31
18
|
rcov (0.9.9)
|
32
|
-
rcov (0.9.9-java)
|
33
19
|
rspec (2.3.0)
|
34
20
|
rspec-core (~> 2.3.0)
|
35
21
|
rspec-expectations (~> 2.3.0)
|
@@ -40,11 +26,10 @@ GEM
|
|
40
26
|
rspec-mocks (2.3.0)
|
41
27
|
|
42
28
|
PLATFORMS
|
43
|
-
java
|
44
29
|
ruby
|
45
30
|
|
46
31
|
DEPENDENCIES
|
47
|
-
activerecord-jdbcpostgresql-adapter
|
32
|
+
activerecord-jdbcpostgresql-adapter
|
48
33
|
autotest
|
49
34
|
dr-postgis_adapter!
|
50
35
|
jruby-openssl
|
@@ -4,46 +4,43 @@
|
|
4
4
|
# http://github.com/nofxx/postgis_adapter
|
5
5
|
#
|
6
6
|
module PostgisAdapter
|
7
|
-
module Functions
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
module Functions
|
8
|
+
def self.included(base)
|
9
|
+
base.send :extend, ClassMethods
|
10
|
+
end
|
11
11
|
|
12
|
-
|
12
|
+
module ClassMethods
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
14
|
+
# has_geom :db_field => :geom_type
|
15
|
+
# Examples:
|
16
|
+
#
|
17
|
+
# has_geom :data => :point
|
18
|
+
# has_geom :geom => :line_string
|
19
|
+
# has_geom :geom => :polygon
|
20
|
+
#
|
21
|
+
def has_geom(*geom)
|
22
|
+
cattr_accessor :postgis_geoms
|
23
|
+
self.postgis_geoms = geom[0].keys.first # {:columns => column }
|
24
|
+
send :include, case geom[0].values[0]
|
25
|
+
when :point then PointFunctions
|
26
|
+
when :polygon then PolygonFunctions
|
27
|
+
when :line_string, :multi_line_string then LineStringFunctions
|
28
|
+
when :multi_polygon then MultiPolygonFunctions
|
29
|
+
when :geometry then GeometryFunctions
|
30
|
+
end unless geom[0].kind_of? Symbol
|
31
|
+
end
|
32
|
+
alias :acts_as_geom :has_geom
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
# rescue ActiveRecord::StatementInvalid => e
|
38
|
-
# nil
|
39
|
-
end
|
34
|
+
def get_geom_type(column)
|
35
|
+
self.postgis_geoms.values[0] rescue nil
|
36
|
+
end
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
def default_geometry
|
39
|
+
postgis_geoms
|
40
|
+
end
|
44
41
|
|
42
|
+
end
|
45
43
|
end
|
46
44
|
end
|
47
|
-
end
|
48
45
|
|
49
46
|
ActiveRecord::Base.send :include, PostgisAdapter::Functions
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module PostgisAdapter
|
2
|
-
module Functions
|
2
|
+
module Functions
|
3
3
|
|
4
4
|
#
|
5
5
|
# Class Methods
|
@@ -10,59 +10,54 @@ module Functions
|
|
10
10
|
# Returns the closest record
|
11
11
|
def closest_to(p, opts = {})
|
12
12
|
srid = opts.delete(:srid) || 4326
|
13
|
-
|
14
|
-
find(:first, opts)
|
13
|
+
order("ST_Distance(#{default_geometry}, '#{p.as_ewkt}' )").first
|
15
14
|
end
|
16
15
|
|
17
16
|
#
|
18
17
|
# Order by distance
|
19
18
|
def close_to(p, opts = {})
|
20
19
|
srid = opts.delete(:srid) || 4326
|
21
|
-
|
22
|
-
find(:all, opts)
|
20
|
+
order "ST_Distance(#{default_geometry}, '#{p.as_ewkt}' )"
|
23
21
|
end
|
24
22
|
|
25
23
|
def by_length opts = {}
|
26
24
|
sort = opts.delete(:sort) || 'asc'
|
27
|
-
|
28
|
-
find(:all, opts)
|
25
|
+
order "ST_length(#{default_geometry}) #{sort}"
|
29
26
|
end
|
30
27
|
|
31
28
|
def longest
|
32
|
-
|
29
|
+
order("ST_length(geom) DESC").first
|
33
30
|
end
|
34
31
|
|
35
32
|
def contains(p, srid=4326)
|
36
|
-
|
33
|
+
where "ST_Contains(#{default_geometry}, '#{p.as_ewkt}' )"
|
37
34
|
end
|
38
35
|
|
39
36
|
def contain(p, srid=4326)
|
40
|
-
|
37
|
+
where("ST_Contains(#{default_geometry}, '#{p.as_ewkt}' )").first
|
41
38
|
end
|
42
39
|
|
43
40
|
def by_area sort='asc'
|
44
|
-
|
41
|
+
order "ST_Area(#{default_geometry}) #{sort}"
|
45
42
|
end
|
46
43
|
|
47
44
|
def by_perimeter sort='asc'
|
48
|
-
|
45
|
+
order "ST_Perimeter(#{default_geometry}) #{sort}"
|
49
46
|
end
|
50
47
|
|
51
48
|
def all_dwithin(other, margin=1)
|
52
|
-
|
53
|
-
# where "ST_DWithin(ST_GeomFromText(?, 4326), geometry, ?)", location_as_text, distance
|
54
|
-
where "ST_DWithin(#{default_geometry}, ST_GeomFromEWKT(?), ?)", other.as_hex_ewkb, margin
|
49
|
+
where "ST_DWithin(#{default_geometry}, '#{other.as_ewkt}', #{margin})"
|
55
50
|
end
|
56
51
|
|
57
52
|
def all_within(other)
|
58
|
-
|
53
|
+
where "ST_Within(#{default_geometry}, '#{other.as_ewkt}' )"
|
59
54
|
end
|
60
55
|
|
61
56
|
def by_boundaries sort='asc'
|
62
|
-
|
57
|
+
order "ST_Boundary(#{default_geometry}) #{sort}"
|
63
58
|
end
|
64
59
|
|
65
60
|
end
|
66
61
|
|
67
|
-
end
|
62
|
+
end
|
68
63
|
end
|
Binary file
|
Binary file
|
Binary file
|
data/postgis_adapter.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'dr-postgis_adapter'
|
3
|
-
spec.version = '0.8.
|
3
|
+
spec.version = '0.8.4'
|
4
4
|
spec.authors = ['Marcos Piccinini', 'Luc Donnet', 'Marc Florisson']
|
5
5
|
spec.summary = 'PostGIS Adapter for Active Record'
|
6
6
|
spec.email = 'x@nofxx.com, luc.donnet@free.fr, mflorisson@gmail.com'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dr-postgis_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-05-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nofxx-georuby
|
@@ -52,34 +52,36 @@ extensions: []
|
|
52
52
|
extra_rdoc_files:
|
53
53
|
- README.rdoc
|
54
54
|
files:
|
55
|
-
-
|
56
|
-
- Gemfile.lock
|
55
|
+
- rails/init.rb
|
57
56
|
- History.txt
|
58
|
-
- lib/postgis_adapter/acts_as_geom.rb
|
59
57
|
- lib/postgis_adapter/common_spatial_adapter.rb
|
60
|
-
- lib/postgis_adapter/functions
|
58
|
+
- lib/postgis_adapter/functions.rb
|
59
|
+
- lib/postgis_adapter/railtie.rb
|
60
|
+
- lib/postgis_adapter/acts_as_geom.rb
|
61
61
|
- lib/postgis_adapter/functions/class.rb
|
62
62
|
- lib/postgis_adapter/functions/common.rb
|
63
|
-
- lib/postgis_adapter/functions.rb
|
63
|
+
- lib/postgis_adapter/functions/bbox.rb
|
64
64
|
- lib/postgis_adapter/init.rb
|
65
|
-
- lib/postgis_adapter/railtie.rb
|
66
65
|
- lib/postgis_adapter.rb
|
67
|
-
-
|
68
|
-
- pkg/dr-postgis_adapter-0.8.
|
69
|
-
- postgis_adapter.
|
70
|
-
-
|
66
|
+
- pkg/dr-postgis_adapter-0.8.4.gem
|
67
|
+
- pkg/dr-postgis_adapter-0.8.2.gem
|
68
|
+
- pkg/dr-postgis_adapter-0.8.1.gem
|
69
|
+
- Gemfile.lock
|
71
70
|
- Rakefile
|
72
|
-
- README.rdoc
|
73
|
-
- spec/db/models_postgis.rb
|
74
|
-
- spec/db/schema_postgis.rb
|
75
71
|
- spec/postgis_adapter/acts_as_geom_spec.rb
|
76
72
|
- spec/postgis_adapter/common_spatial_adapter_spec.rb
|
73
|
+
- spec/postgis_adapter/functions_spec.rb
|
77
74
|
- spec/postgis_adapter/functions/bbox_spec.rb
|
78
|
-
- spec/postgis_adapter/functions/class_spec.rb
|
79
75
|
- spec/postgis_adapter/functions/common_spec.rb
|
80
|
-
- spec/postgis_adapter/
|
81
|
-
- spec/postgis_adapter_spec.rb
|
76
|
+
- spec/postgis_adapter/functions/class_spec.rb
|
82
77
|
- spec/spec_helper.rb
|
78
|
+
- spec/postgis_adapter_spec.rb
|
79
|
+
- spec/db/schema_postgis.rb
|
80
|
+
- spec/db/models_postgis.rb
|
81
|
+
- README.rdoc
|
82
|
+
- postgis_adapter.gemspec
|
83
|
+
- Gemfile
|
84
|
+
- MIT-LICENSE
|
83
85
|
homepage: http://github.com/dryade/postgis_adapter
|
84
86
|
licenses: []
|
85
87
|
post_install_message:
|
@@ -95,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
97
|
version: '0'
|
96
98
|
segments:
|
97
99
|
- 0
|
98
|
-
hash: -
|
100
|
+
hash: -2230142580083608280
|
99
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
102
|
none: false
|
101
103
|
requirements:
|
@@ -104,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
106
|
version: '0'
|
105
107
|
segments:
|
106
108
|
- 0
|
107
|
-
hash: -
|
109
|
+
hash: -2230142580083608280
|
108
110
|
requirements: []
|
109
111
|
rubyforge_project: postgis_adapter
|
110
112
|
rubygems_version: 1.8.23
|
@@ -112,13 +114,13 @@ signing_key:
|
|
112
114
|
specification_version: 3
|
113
115
|
summary: PostGIS Adapter for Active Record
|
114
116
|
test_files:
|
115
|
-
- spec/db/models_postgis.rb
|
116
|
-
- spec/db/schema_postgis.rb
|
117
117
|
- spec/postgis_adapter/acts_as_geom_spec.rb
|
118
118
|
- spec/postgis_adapter/common_spatial_adapter_spec.rb
|
119
|
+
- spec/postgis_adapter/functions_spec.rb
|
119
120
|
- spec/postgis_adapter/functions/bbox_spec.rb
|
120
|
-
- spec/postgis_adapter/functions/class_spec.rb
|
121
121
|
- spec/postgis_adapter/functions/common_spec.rb
|
122
|
-
- spec/postgis_adapter/
|
123
|
-
- spec/postgis_adapter_spec.rb
|
122
|
+
- spec/postgis_adapter/functions/class_spec.rb
|
124
123
|
- spec/spec_helper.rb
|
124
|
+
- spec/postgis_adapter_spec.rb
|
125
|
+
- spec/db/schema_postgis.rb
|
126
|
+
- spec/db/models_postgis.rb
|
Binary file
|