rgeo-activerecord 0.6.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +29 -0
- data/lib/rgeo-activerecord.rb +0 -1
- data/lib/rgeo/active_record.rb +5 -64
- data/lib/rgeo/active_record/adapter_test_helper.rb +0 -56
- data/lib/rgeo/active_record/ar_factory_settings.rb +1 -81
- data/lib/rgeo/active_record/arel_spatial_queries.rb +13 -111
- data/lib/rgeo/active_record/common_adapter_elements.rb +35 -77
- data/lib/rgeo/active_record/geometry_mixin.rb +0 -49
- data/lib/rgeo/active_record/spatial_expressions.rb +5 -49
- data/lib/rgeo/active_record/version.rb +1 -52
- data/test/tc_basic.rb +2 -56
- data/test/test_helper.rb +8 -13
- metadata +21 -20
- data/Version +0 -1
- data/lib/rgeo/active_record/task_hacker.rb +0 -105
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3891bad7ab5e1f7408095e87bcf8a731a7130ba7
|
4
|
+
data.tar.gz: 4d466201e93d07234853ea049823968898761407
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f493f620c706f0adc498ec9f729c9d0a019fdd316f4e41e2e4fa4faef7df2a93a32143329ad01d34ad850dda6ec55a5830a6792c6f908fbe79025691540c6d32
|
7
|
+
data.tar.gz: 38b04b4a6938fea2e95128409bc9e3346a213ce9289e267e023a7da19c9e6afe3ced84ef59020a4f501081dd9969ba28dff60e8913435b0927fdbe41155f4eef
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Copyright 2010-2012 Daniel Azuma
|
3
|
+
#
|
4
|
+
# All rights reserved.
|
5
|
+
#
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
7
|
+
# modification, are permitted provided that the following conditions are met:
|
8
|
+
#
|
9
|
+
# * Redistributions of source code must retain the above copyright notice,
|
10
|
+
# this list of conditions and the following disclaimer.
|
11
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
# * Neither the name of the copyright holder, nor the names of any other
|
15
|
+
# contributors to this software, may be used to endorse or promote products
|
16
|
+
# derived from this software without specific prior written permission.
|
17
|
+
#
|
18
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
19
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
20
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
21
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
22
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
23
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
24
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
25
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
26
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
27
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
28
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
29
|
+
# -----------------------------------------------------------------------------
|
data/lib/rgeo-activerecord.rb
CHANGED
data/lib/rgeo/active_record.rb
CHANGED
@@ -1,44 +1,3 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
#
|
3
|
-
# ActiveRecord extensions for RGeo
|
4
|
-
#
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
# Copyright 2010-2012 Daniel Azuma
|
7
|
-
#
|
8
|
-
# All rights reserved.
|
9
|
-
#
|
10
|
-
# Redistribution and use in source and binary forms, with or without
|
11
|
-
# modification, are permitted provided that the following conditions are met:
|
12
|
-
#
|
13
|
-
# * Redistributions of source code must retain the above copyright notice,
|
14
|
-
# this list of conditions and the following disclaimer.
|
15
|
-
# * Redistributions in binary form must reproduce the above copyright notice,
|
16
|
-
# this list of conditions and the following disclaimer in the documentation
|
17
|
-
# and/or other materials provided with the distribution.
|
18
|
-
# * Neither the name of the copyright holder, nor the names of any other
|
19
|
-
# contributors to this software, may be used to endorse or promote products
|
20
|
-
# derived from this software without specific prior written permission.
|
21
|
-
#
|
22
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
23
|
-
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
24
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
25
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
26
|
-
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
27
|
-
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
28
|
-
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
29
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
30
|
-
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
31
|
-
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
-
# POSSIBILITY OF SUCH DAMAGE.
|
33
|
-
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
|
-
|
36
|
-
|
37
|
-
# Dependencies
|
38
|
-
require 'rgeo'
|
39
|
-
require 'active_record'
|
40
|
-
|
41
|
-
|
42
1
|
# RGeo is a spatial data library for Ruby, provided by the "rgeo" gem.
|
43
2
|
#
|
44
3
|
# The optional RGeo::ActiveRecord module provides spatial extensions for
|
@@ -46,8 +5,6 @@ require 'active_record'
|
|
46
5
|
# spatial connection adapters.
|
47
6
|
|
48
7
|
module RGeo
|
49
|
-
|
50
|
-
|
51
8
|
# This module contains a set of ActiveRecord extensions for RGeo.
|
52
9
|
# Generally, you will not need to interact with the contents of this
|
53
10
|
# module directly, unless you are writing a spatial ActiveRecord
|
@@ -55,29 +12,13 @@ module RGeo
|
|
55
12
|
|
56
13
|
module ActiveRecord
|
57
14
|
end
|
58
|
-
|
59
|
-
|
60
15
|
end
|
61
16
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
module Arel
|
67
|
-
end
|
68
|
-
|
69
|
-
|
70
|
-
# The rgeo-activerecord gem installs several patches to ActiveRecord
|
71
|
-
# to support services needed by spatial adapters.
|
72
|
-
|
73
|
-
module ActiveRecord
|
74
|
-
end
|
75
|
-
|
76
|
-
|
77
|
-
# Implementation files
|
78
|
-
require 'rgeo/active_record/version.rb'
|
79
|
-
require 'rgeo/active_record/spatial_expressions.rb'
|
17
|
+
require 'rgeo'
|
18
|
+
require 'active_record'
|
19
|
+
require 'rgeo/active_record/version'
|
20
|
+
require 'rgeo/active_record/spatial_expressions'
|
80
21
|
require 'rgeo/active_record/arel_spatial_queries'
|
81
|
-
require 'rgeo/active_record/common_adapter_elements
|
22
|
+
require 'rgeo/active_record/common_adapter_elements'
|
82
23
|
require 'rgeo/active_record/ar_factory_settings'
|
83
24
|
require 'rgeo/active_record/geometry_mixin'
|
@@ -1,55 +1,13 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
#
|
3
|
-
# Helper methods for ActiveRecord adapter tests
|
4
|
-
#
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
# Copyright 2010-2012 Daniel Azuma
|
7
|
-
#
|
8
|
-
# All rights reserved.
|
9
|
-
#
|
10
|
-
# Redistribution and use in source and binary forms, with or without
|
11
|
-
# modification, are permitted provided that the following conditions are met:
|
12
|
-
#
|
13
|
-
# * Redistributions of source code must retain the above copyright notice,
|
14
|
-
# this list of conditions and the following disclaimer.
|
15
|
-
# * Redistributions in binary form must reproduce the above copyright notice,
|
16
|
-
# this list of conditions and the following disclaimer in the documentation
|
17
|
-
# and/or other materials provided with the distribution.
|
18
|
-
# * Neither the name of the copyright holder, nor the names of any other
|
19
|
-
# contributors to this software, may be used to endorse or promote products
|
20
|
-
# derived from this software without specific prior written permission.
|
21
|
-
#
|
22
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
23
|
-
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
24
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
25
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
26
|
-
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
27
|
-
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
28
|
-
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
29
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
30
|
-
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
31
|
-
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
-
# POSSIBILITY OF SUCH DAMAGE.
|
33
|
-
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
|
-
|
36
|
-
|
37
1
|
require 'rgeo/active_record'
|
38
2
|
require 'yaml'
|
39
3
|
require 'logger'
|
40
4
|
|
41
|
-
|
42
5
|
module RGeo
|
43
6
|
module ActiveRecord
|
44
|
-
|
45
|
-
|
46
7
|
# A helper module for creating unit tests for adapters.
|
47
|
-
|
48
8
|
module AdapterTestHelper
|
49
|
-
|
50
9
|
@class_num = 0
|
51
10
|
|
52
|
-
|
53
11
|
# When this module is included in a test case class, it
|
54
12
|
# automatically attempts to load the database config file from the
|
55
13
|
# path specified by constants defined in the class. It first tries
|
@@ -89,7 +47,6 @@ module RGeo
|
|
89
47
|
end
|
90
48
|
end
|
91
49
|
|
92
|
-
|
93
50
|
def self.new_class(param_) # :nodoc:
|
94
51
|
base_ = param_.kind_of?(::Class) ? param_ : ::ActiveRecord::Base
|
95
52
|
config_ = param_.kind_of?(::Hash) ? param_ : nil
|
@@ -103,7 +60,6 @@ module RGeo
|
|
103
60
|
klass_
|
104
61
|
end
|
105
62
|
|
106
|
-
|
107
63
|
# Default setup method that calls cleanup_tables.
|
108
64
|
# It also defines a couple of useful factories: @factory (a
|
109
65
|
# cartesian factory) and @geographic_factory (a spherical factory)
|
@@ -115,7 +71,6 @@ module RGeo
|
|
115
71
|
cleanup_caches
|
116
72
|
end
|
117
73
|
|
118
|
-
|
119
74
|
# Default teardown method that calls cleanup_tables.
|
120
75
|
|
121
76
|
def teardown
|
@@ -123,7 +78,6 @@ module RGeo
|
|
123
78
|
cleanup_caches
|
124
79
|
end
|
125
80
|
|
126
|
-
|
127
81
|
# Utility method that attempts to clean up any table that was
|
128
82
|
# created by a test method. Normally called automatically at setup
|
129
83
|
# and teardown. If you override those methods, you'll need to call
|
@@ -150,12 +104,10 @@ module RGeo
|
|
150
104
|
|
151
105
|
# Clear out any ActiveRecord caches that are present.
|
152
106
|
# Different Rails versions use different types of caches.
|
153
|
-
has_schema_cache_ = false
|
154
107
|
klass_.connection_pool.with_connection do |c_|
|
155
108
|
if c_.respond_to?(:schema_cache)
|
156
109
|
# 3.2.x and 4.0.x
|
157
110
|
c_.schema_cache.clear!
|
158
|
-
has_schema_cache_ = true
|
159
111
|
end
|
160
112
|
if c_.respond_to?(:clear_cache!)
|
161
113
|
# 3.1 and above
|
@@ -164,13 +116,8 @@ module RGeo
|
|
164
116
|
# All 3.x and 4.0
|
165
117
|
c_.clear_query_cache
|
166
118
|
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
119
|
end
|
172
120
|
|
173
|
-
|
174
121
|
# Utility method that creates and returns a new ActiveRecord class
|
175
122
|
# subclassing the DEFAULT_AR_CLASS.
|
176
123
|
|
@@ -178,9 +125,6 @@ module RGeo
|
|
178
125
|
@ar_class = AdapterTestHelper.new_class(self.class.const_get(:DEFAULT_AR_CLASS))
|
179
126
|
end
|
180
127
|
|
181
|
-
|
182
128
|
end
|
183
|
-
|
184
|
-
|
185
129
|
end
|
186
130
|
end
|
@@ -1,47 +1,5 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
#
|
3
|
-
# Additions to ActiveRecord::Base for factory settings
|
4
|
-
#
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
# Copyright 2010-2012 Daniel Azuma
|
7
|
-
#
|
8
|
-
# All rights reserved.
|
9
|
-
#
|
10
|
-
# Redistribution and use in source and binary forms, with or without
|
11
|
-
# modification, are permitted provided that the following conditions are met:
|
12
|
-
#
|
13
|
-
# * Redistributions of source code must retain the above copyright notice,
|
14
|
-
# this list of conditions and the following disclaimer.
|
15
|
-
# * Redistributions in binary form must reproduce the above copyright notice,
|
16
|
-
# this list of conditions and the following disclaimer in the documentation
|
17
|
-
# and/or other materials provided with the distribution.
|
18
|
-
# * Neither the name of the copyright holder, nor the names of any other
|
19
|
-
# contributors to this software, may be used to endorse or promote products
|
20
|
-
# derived from this software without specific prior written permission.
|
21
|
-
#
|
22
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
23
|
-
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
24
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
25
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
26
|
-
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
27
|
-
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
28
|
-
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
29
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
30
|
-
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
31
|
-
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
-
# POSSIBILITY OF SUCH DAMAGE.
|
33
|
-
# -----------------------------------------------------------------------------
|
34
|
-
;
|
35
|
-
|
36
|
-
|
37
|
-
require 'active_record'
|
38
|
-
|
39
|
-
|
40
1
|
module RGeo
|
41
|
-
|
42
2
|
module ActiveRecord
|
43
|
-
|
44
|
-
|
45
3
|
# The default factory generator for ActiveRecord::Base.
|
46
4
|
|
47
5
|
DEFAULT_FACTORY_GENERATOR = ::Proc.new do |config_|
|
@@ -52,9 +10,7 @@ module RGeo
|
|
52
10
|
end
|
53
11
|
end
|
54
12
|
|
55
|
-
|
56
13
|
# An object that manages the RGeo factories for a ConnectionPool.
|
57
|
-
|
58
14
|
class RGeoFactorySettings
|
59
15
|
|
60
16
|
def initialize # :nodoc:
|
@@ -62,24 +18,18 @@ module RGeo
|
|
62
18
|
@column_factories = {}
|
63
19
|
end
|
64
20
|
|
65
|
-
|
66
21
|
# Get the default factory generator for the given table
|
67
|
-
|
68
22
|
def get_factory_generator(table_name_)
|
69
23
|
@factory_generators[table_name_.to_s] || ::RGeo::ActiveRecord::DEFAULT_FACTORY_GENERATOR
|
70
24
|
end
|
71
25
|
|
72
|
-
|
73
26
|
# Set the default factory generator for the given table
|
74
|
-
|
75
27
|
def set_factory_generator(table_name_, gen_)
|
76
28
|
@factory_generators[table_name_.to_s] = gen_
|
77
29
|
end
|
78
30
|
|
79
|
-
|
80
31
|
# Get the factory or factory generator for the given table name
|
81
32
|
# and column name.
|
82
|
-
|
83
33
|
def get_column_factory(table_name_, column_name_, params_=nil)
|
84
34
|
table_name_ = table_name_.to_s
|
85
35
|
column_name_ = column_name_.to_s
|
@@ -91,17 +41,13 @@ module RGeo
|
|
91
41
|
result_
|
92
42
|
end
|
93
43
|
|
94
|
-
|
95
44
|
# Set the factory or factory generator for the given table name
|
96
45
|
# and column name.
|
97
|
-
|
98
46
|
def set_column_factory(table_name_, column_name_, factory_)
|
99
47
|
(@column_factories[table_name_.to_s] ||= {})[column_name_.to_s] = factory_
|
100
48
|
end
|
101
49
|
|
102
|
-
|
103
50
|
# Clear settings for the given table name, or for all tables
|
104
|
-
|
105
51
|
def clear!(table_name_=nil)
|
106
52
|
if table_name_
|
107
53
|
table_name_ = table_name_.to_s
|
@@ -113,22 +59,14 @@ module RGeo
|
|
113
59
|
end
|
114
60
|
end
|
115
61
|
|
116
|
-
|
117
62
|
DEFAULT = self.new
|
118
|
-
|
119
|
-
|
120
63
|
end
|
121
64
|
|
122
|
-
|
123
65
|
# Additional class methods on ::ActiveRecord::Base that provide
|
124
66
|
# a way to control the RGeo factory used for ActiveRecord objects.
|
125
|
-
|
126
67
|
module ActiveRecordBaseFactorySettings
|
127
|
-
|
128
|
-
|
129
68
|
# Return the RGeoFactorySettings object associated with this
|
130
69
|
# class's connection.
|
131
|
-
|
132
70
|
def rgeo_factory_settings
|
133
71
|
pool_ = begin
|
134
72
|
connection_pool
|
@@ -138,7 +76,6 @@ module RGeo
|
|
138
76
|
pool_ ? pool_.rgeo_factory_settings : RGeoFactorySettings::DEFAULT
|
139
77
|
end
|
140
78
|
|
141
|
-
|
142
79
|
# The value of this attribute is a RGeo::Feature::FactoryGenerator
|
143
80
|
# that is used to generate the proper factory when loading geometry
|
144
81
|
# objects from the database. For example, if the data being loaded
|
@@ -154,31 +91,24 @@ module RGeo
|
|
154
91
|
rgeo_factory_settings.get_factory_generator(table_name)
|
155
92
|
end
|
156
93
|
|
157
|
-
|
158
94
|
# Set the rgeo_factory_generator attribute
|
159
|
-
|
160
95
|
def rgeo_factory_generator=(gen_)
|
161
96
|
rgeo_factory_settings.set_factory_generator(table_name, gen_)
|
162
97
|
end
|
163
98
|
|
164
|
-
|
165
99
|
# This is a convenient way to set the rgeo_factory_generator by
|
166
100
|
# passing a block.
|
167
|
-
|
168
101
|
def to_generate_rgeo_factory(&block_)
|
169
102
|
rgeo_factory_settings.set_factory_generator(table_name, block_)
|
170
103
|
end
|
171
104
|
|
172
|
-
|
173
105
|
# Set a specific factory for this ActiveRecord class and the given
|
174
106
|
# column name. This setting, if present, overrides the result of the
|
175
107
|
# rgeo_factory_generator.
|
176
|
-
|
177
108
|
def set_rgeo_factory_for_column(column_name_, factory_)
|
178
109
|
rgeo_factory_settings.set_column_factory(table_name, column_name_, factory_)
|
179
110
|
end
|
180
111
|
|
181
|
-
|
182
112
|
# Returns the factory generator or specific factory to use for this
|
183
113
|
# ActiveRecord class and the given column name.
|
184
114
|
# If an explicit factory was set for the given column, returns it.
|
@@ -186,29 +116,23 @@ module RGeo
|
|
186
116
|
# rgeo_factory_generator for this class, and returns the resulting
|
187
117
|
# factory. Otherwise, if no params hash is given, just returns the
|
188
118
|
# rgeo_factory_generator for this class.
|
189
|
-
|
190
119
|
def rgeo_factory_for_column(column_name_, params_=nil)
|
191
120
|
rgeo_factory_settings.get_column_factory(table_name, column_name_, params_)
|
192
121
|
end
|
193
|
-
|
194
|
-
|
195
122
|
end
|
196
123
|
|
197
124
|
::ActiveRecord::Base.extend(ActiveRecordBaseFactorySettings)
|
198
125
|
|
199
|
-
|
200
126
|
# :stopdoc:
|
201
127
|
|
202
|
-
|
203
128
|
# Patch for connection pool to track geo factories per table name
|
204
|
-
|
205
129
|
::ActiveRecord::ConnectionAdapters::ConnectionPool.class_eval do
|
206
|
-
|
207
130
|
def rgeo_factory_settings
|
208
131
|
@_rgeo_factory_settings ||= RGeoFactorySettings.new
|
209
132
|
end
|
210
133
|
|
211
134
|
private
|
135
|
+
|
212
136
|
alias_method :new_connection_without_rgeo_modification, :new_connection
|
213
137
|
def new_connection
|
214
138
|
result_ = new_connection_without_rgeo_modification
|
@@ -217,13 +141,9 @@ module RGeo
|
|
217
141
|
end
|
218
142
|
result_
|
219
143
|
end
|
220
|
-
|
221
144
|
end
|
222
145
|
|
223
|
-
|
224
146
|
# :startdoc:
|
225
147
|
|
226
|
-
|
227
148
|
end
|
228
|
-
|
229
149
|
end
|