rgeo-ar 0.6.0 → 0.6.1
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.
- 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
         
     |