rgeo-ar 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rgeo-activerecord.rb +0 -1
- data/lib/rgeo/active_record.rb +0 -2
- data/lib/rgeo/active_record/adapter_test_helper.rb +0 -8
- data/lib/rgeo/active_record/ar_factory_settings.rb +0 -2
- data/lib/rgeo/active_record/arel_spatial_queries.rb +18 -76
- data/lib/rgeo/active_record/common_adapter_elements.rb +0 -1
- data/lib/rgeo/active_record/geometry_mixin.rb +0 -2
- data/lib/rgeo/active_record/spatial_expressions.rb +0 -2
- data/lib/rgeo/active_record/task_hacker.rb +0 -1
- data/lib/rgeo/active_record/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07f4e76f082da2fd612d850b83cd7d30194755b9
|
4
|
+
data.tar.gz: d847ade0068d38b282b81775545d61431fffddcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ec86f237ef08314c084f795d55366fa0be9c345451a82352dce1d1ba4edd414d0da3ef29551e4ef98f21da97e08e5e5c0ead220093018e97fe44f9cbca3046a
|
7
|
+
data.tar.gz: 989f88e983a96cbc1fb615df1f2035580ec09606bc4c79d5bef533a7e279dd89171047996951600aef23f0bdd00537ac3a39fc1cf1db7b0c4d325d683d2d3c67
|
data/lib/rgeo-activerecord.rb
CHANGED
data/lib/rgeo/active_record.rb
CHANGED
@@ -31,8 +31,6 @@
|
|
31
31
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
32
|
# POSSIBILITY OF SUCH DAMAGE.
|
33
33
|
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
|
-
|
36
34
|
|
37
35
|
require 'rgeo/active_record'
|
38
36
|
require 'yaml'
|
@@ -150,12 +148,10 @@ module RGeo
|
|
150
148
|
|
151
149
|
# Clear out any ActiveRecord caches that are present.
|
152
150
|
# Different Rails versions use different types of caches.
|
153
|
-
has_schema_cache_ = false
|
154
151
|
klass_.connection_pool.with_connection do |c_|
|
155
152
|
if c_.respond_to?(:schema_cache)
|
156
153
|
# 3.2.x and 4.0.x
|
157
154
|
c_.schema_cache.clear!
|
158
|
-
has_schema_cache_ = true
|
159
155
|
end
|
160
156
|
if c_.respond_to?(:clear_cache!)
|
161
157
|
# 3.1 and above
|
@@ -164,10 +160,6 @@ module RGeo
|
|
164
160
|
# All 3.x and 4.0
|
165
161
|
c_.clear_query_cache
|
166
162
|
end
|
167
|
-
if !has_schema_cache_ && klass_.connection_pool.respond_to?(:clear_cache!)
|
168
|
-
# 3.1.x only
|
169
|
-
klass_.connection_pool.clear_cache!
|
170
|
-
end
|
171
163
|
end
|
172
164
|
|
173
165
|
|
@@ -31,14 +31,9 @@
|
|
31
31
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
32
|
# POSSIBILITY OF SUCH DAMAGE.
|
33
33
|
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
|
-
|
36
34
|
|
37
35
|
module RGeo
|
38
|
-
|
39
36
|
module ActiveRecord
|
40
|
-
|
41
|
-
|
42
37
|
# A set of common Arel visitor hacks for spatial ToSql visitors.
|
43
38
|
# Generally, a spatial ActiveRecord adapter should provide a custom
|
44
39
|
# ToSql Arel visitor that includes and customizes this module.
|
@@ -47,7 +42,6 @@ module RGeo
|
|
47
42
|
|
48
43
|
module SpatialToSql
|
49
44
|
|
50
|
-
|
51
45
|
# Map a standard OGC SQL function name to the actual name used by
|
52
46
|
# a particular database. This method should take a name and
|
53
47
|
# return either the changed name or the original name.
|
@@ -56,7 +50,6 @@ module RGeo
|
|
56
50
|
standard_name_
|
57
51
|
end
|
58
52
|
|
59
|
-
|
60
53
|
# Visit the SpatialNamedFunction node. This operates similarly to
|
61
54
|
# the standard NamedFunction node, but it performs function name
|
62
55
|
# mapping for the database, and it also uses the type information
|
@@ -71,11 +64,9 @@ module RGeo
|
|
71
64
|
"#{name_}(#{node_.distinct ? 'DISTINCT ' : ''}#{exprs_.join(', ')})#{node_.alias ? " AS #{visit(node_.alias, *args)}" : ''}"
|
72
65
|
end
|
73
66
|
|
74
|
-
|
75
67
|
# Generates SQL for a spatial node.
|
76
68
|
# The node must be a string (in which case it is treated as WKT),
|
77
69
|
# an RGeo feature, or a spatial attribute.
|
78
|
-
|
79
70
|
def visit_in_spatial_context(node_, *args)
|
80
71
|
case node_
|
81
72
|
when ::String
|
@@ -88,50 +79,24 @@ module RGeo
|
|
88
79
|
visit(node_, *args)
|
89
80
|
end
|
90
81
|
end
|
91
|
-
|
92
|
-
|
93
82
|
end
|
94
83
|
|
95
|
-
|
96
84
|
# This node wraps an RGeo feature and gives it spatial expression
|
97
85
|
# constructors.
|
98
|
-
|
99
86
|
class SpatialConstantNode
|
100
|
-
|
101
87
|
include ::RGeo::ActiveRecord::SpatialExpressions
|
102
88
|
|
103
|
-
|
104
89
|
# The delegate should be the RGeo feature.
|
105
|
-
|
106
90
|
def initialize(delegate_)
|
107
91
|
@delegate = delegate_
|
108
92
|
end
|
109
93
|
|
110
|
-
|
111
94
|
# Return the RGeo feature
|
112
|
-
|
113
95
|
attr_reader :delegate
|
114
|
-
|
115
|
-
|
116
96
|
end
|
117
97
|
|
118
|
-
|
119
98
|
# :stopdoc:
|
120
99
|
|
121
|
-
|
122
|
-
# Hack Arel Attributes dispatcher to recognize geometry columns.
|
123
|
-
# This is deprecated but necessary to support legacy Arel versions.
|
124
|
-
|
125
|
-
if ::Arel::Attributes.method_defined?(:for)
|
126
|
-
module ArelAttributesLegacyClassMethods
|
127
|
-
def for(column_)
|
128
|
-
column_.type == :spatial ? Attribute : super
|
129
|
-
end
|
130
|
-
end
|
131
|
-
::Arel::Attributes.extend(ArelAttributesLegacyClassMethods)
|
132
|
-
end
|
133
|
-
|
134
|
-
|
135
100
|
# Make sure the standard Arel visitors can handle RGeo feature objects
|
136
101
|
# by default.
|
137
102
|
|
@@ -157,59 +122,36 @@ module RGeo
|
|
157
122
|
alias :visit_RGeo_Cartesian_BoundingBox :visit_String
|
158
123
|
end
|
159
124
|
|
160
|
-
|
161
125
|
# Add tools to build spatial structures in the AST.
|
162
|
-
# This stuff requires Arel 2.1 or later.
|
163
126
|
|
164
|
-
|
127
|
+
# Allow chaining of spatial expressions from attributes
|
128
|
+
::Arel::Attribute.class_eval do
|
129
|
+
include ::RGeo::ActiveRecord::SpatialExpressions
|
130
|
+
end
|
165
131
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
132
|
+
# A NamedFunction subclass that keeps track of the spatial-ness of
|
133
|
+
# the arguments and return values, so that it can provide context to
|
134
|
+
# visitors that want to interpret syntax differently when dealing with
|
135
|
+
# spatial elements.
|
136
|
+
class SpatialNamedFunction < ::Arel::Nodes::NamedFunction
|
137
|
+
include ::RGeo::ActiveRecord::SpatialExpressions
|
171
138
|
|
172
|
-
|
173
|
-
|
174
|
-
|
139
|
+
def initialize(name_, expr_, spatial_flags_=[], aliaz_=nil)
|
140
|
+
super(name_, expr_, aliaz_)
|
141
|
+
@spatial_flags = spatial_flags_
|
175
142
|
end
|
176
143
|
|
177
|
-
|
178
|
-
|
179
|
-
# the arguments and return values, so that it can provide context to
|
180
|
-
# visitors that want to interpret syntax differently when dealing with
|
181
|
-
# spatial elements.
|
182
|
-
|
183
|
-
class SpatialNamedFunction < ::Arel::Nodes::NamedFunction
|
184
|
-
|
185
|
-
include ::RGeo::ActiveRecord::SpatialExpressions
|
186
|
-
|
187
|
-
def initialize(name_, expr_, spatial_flags_=[], aliaz_=nil)
|
188
|
-
super(name_, expr_, aliaz_)
|
189
|
-
@spatial_flags = spatial_flags_
|
190
|
-
end
|
191
|
-
|
192
|
-
def spatial_result?
|
193
|
-
@spatial_flags.first
|
194
|
-
end
|
195
|
-
|
196
|
-
def spatial_argument?(index_)
|
197
|
-
@spatial_flags[index_+1]
|
198
|
-
end
|
199
|
-
|
144
|
+
def spatial_result?
|
145
|
+
@spatial_flags.first
|
200
146
|
end
|
201
147
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
class SpatialNamedFunction; end
|
148
|
+
def spatial_argument?(index_)
|
149
|
+
@spatial_flags[index_+1]
|
150
|
+
end
|
206
151
|
|
207
152
|
end
|
208
153
|
|
209
|
-
|
210
154
|
# :startdoc:
|
211
155
|
|
212
|
-
|
213
156
|
end
|
214
|
-
|
215
157
|
end
|
@@ -31,7 +31,6 @@
|
|
31
31
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
32
|
# POSSIBILITY OF SUCH DAMAGE.
|
33
33
|
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
34
|
|
36
35
|
|
37
36
|
require 'active_support/core_ext/class' # Workaround for a missing require in ActiveRecord 3.2.1
|