mongoid_spacial 0.2.16 → 0.2.17
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/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +8 -2
- data/README.md +16 -1
- data/lib/mongoid_spacial/spacial/document.rb +4 -6
- data/lib/mongoid_spacial/spacial/version.rb +1 -1
- data/mongoid_spacial.gemspec +3 -9
- data/spec/functional/mongoid/contexts/mongo_spec.rb +5 -4
- data/spec/spec_helper.rb +1 -3
- metadata +29 -69
    
        data/.ruby-gemset
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            mongoid_spacial
         | 
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            ruby-1.9.3
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -34,6 +34,13 @@ class River | |
| 34 34 | 
             
            end
         | 
| 35 35 | 
             
            ```
         | 
| 36 36 |  | 
| 37 | 
            +
            Generate indexes on MongoDB:
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            ```
         | 
| 40 | 
            +
            rake db:mongoid:create_indexes
         | 
| 41 | 
            +
            ```
         | 
| 42 | 
            +
             | 
| 43 | 
            +
             | 
| 37 44 | 
             
            Before we manipulate the data mongoid_spacial handles is what we call points.
         | 
| 38 45 |  | 
| 39 46 | 
             
            Points can be:
         | 
| @@ -65,7 +72,7 @@ hudson.source #=> {:lng => -73.935833, :lat => 44.106667} | |
| 65 72 | 
             
            hudson.mouth  #=> [-74.026667, 40.703056] # notice how this returned as a lng,lat array because return_array was true
         | 
| 66 73 | 
             
            # notice how the order of lng and lat were switched. it will always come out like this when using spacial.
         | 
| 67 74 | 
             
            # Also adds a handy distance function
         | 
| 68 | 
            -
            hudson.distance_from(:source, [-74,40], :mi)
         | 
| 75 | 
            +
            hudson.distance_from(:source, [-74,40], {:unit=>:mi})
         | 
| 69 76 |  | 
| 70 77 | 
             
            ```
         | 
| 71 78 | 
             
            Mongoid Geo has extended all built in spacial symbol extentions
         | 
| @@ -143,6 +150,14 @@ rivers = rivers.per(25).page(1) | |
| 143 150 | 
             
            rivers.reset! # resets the object to it is original state right after query.
         | 
| 144 151 | 
             
            ```
         | 
| 145 152 |  | 
| 153 | 
            +
            Troubleshooting
         | 
| 154 | 
            +
            -------------
         | 
| 155 | 
            +
             | 
| 156 | 
            +
            **Mongo::OperationFailure: can't find special index: 2d**
         | 
| 157 | 
            +
             | 
| 158 | 
            +
            Indexes need to be created. Execute command: <code>rake db:mongoid:create_indexes</code>
         | 
| 159 | 
            +
             | 
| 160 | 
            +
             | 
| 146 161 | 
             
            Thanks
         | 
| 147 162 | 
             
            -----------
         | 
| 148 163 | 
             
            * Thanks to Kristian Mandrup for creating the base of the gem and a few of the tests
         | 
| @@ -16,15 +16,13 @@ module Mongoid | |
| 16 16 | 
             
                    # @param [Hash] options options for spacial_index
         | 
| 17 17 | 
             
                    def spacial_index name, *options
         | 
| 18 18 | 
             
                      self.spacial_fields_indexed << name
         | 
| 19 | 
            -
                      index [[ name, Mongo::GEO2D ]], *options
         | 
| 19 | 
            +
                      index [[ name, ::Mongo::GEO2D ]], *options
         | 
| 20 20 | 
             
                    end
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                   | 
| 24 | 
            -
                     | 
| 25 | 
            -
             | 
| 26 | 
            -
                      Mongoid::Spacial.distance(p1, p2, opts)
         | 
| 27 | 
            -
                    end
         | 
| 23 | 
            +
                  def distance_from(key,p2, opts = {})
         | 
| 24 | 
            +
                    p1 = self.send(key)
         | 
| 25 | 
            +
                    Mongoid::Spacial.distance(p1, p2, opts)
         | 
| 28 26 | 
             
                  end
         | 
| 29 27 | 
             
                end
         | 
| 30 28 | 
             
              end
         | 
    
        data/mongoid_spacial.gemspec
    CHANGED
    
    | @@ -2,8 +2,8 @@ | |
| 2 2 | 
             
            require File.expand_path('../lib/mongoid_spacial/spacial/version', __FILE__)
         | 
| 3 3 |  | 
| 4 4 | 
             
            Gem::Specification.new do |gem|
         | 
| 5 | 
            -
              gem.authors       = ["Ryan Ong"]
         | 
| 6 | 
            -
              gem.email         = ["ryanong@gmail.com"]
         | 
| 5 | 
            +
              gem.authors       = ["Ryan Ong", "Arthur Neves"]
         | 
| 6 | 
            +
              gem.email         = ["ryanong@gmail.com", "arthurnn@gmail.com"]
         | 
| 7 7 | 
             
              gem.description   = %q{mongoid_spacial simplifies spacial calculations. Adds integration into mongoid so pagination and other function continue to work. It adds symbol extentions to simplify query creation.}
         | 
| 8 8 | 
             
              gem.summary       = %q{A Mongoid Extention that simplifies and adds support for MongoDB Geo Spacial Calculations.}
         | 
| 9 9 | 
             
              gem.homepage      = "https://github.com/ryanong/mongoid_spacial"
         | 
| @@ -15,13 +15,7 @@ Gem::Specification.new do |gem| | |
| 15 15 | 
             
              gem.require_paths = ["lib"]
         | 
| 16 16 | 
             
              gem.version       = Mongoid::Spacial::VERSION
         | 
| 17 17 |  | 
| 18 | 
            -
              gem.add_dependency("mongoid", ['>= 2.3.0'])
         | 
| 18 | 
            +
              gem.add_dependency("mongoid", ['>= 2.1.0', '< 3.0.0'])
         | 
| 19 19 | 
             
              gem.add_dependency('activesupport', ["~> 3.0"])
         | 
| 20 | 
            -
              gem.add_development_dependency('yard', ["~>0.6.0"])
         | 
| 21 | 
            -
              gem.add_development_dependency('rspec', ['~>2.3'])
         | 
| 22 | 
            -
              gem.add_development_dependency('rcov', ['>= 0'])
         | 
| 23 | 
            -
              gem.add_development_dependency('mocha', ['>= 0'])
         | 
| 24 | 
            -
              gem.add_development_dependency('will_paginate', ['>= 0'])
         | 
| 25 | 
            -
              gem.add_development_dependency('kaminari', ['>= 0'])
         | 
| 26 20 |  | 
| 27 21 | 
             
            end
         | 
| @@ -91,7 +91,7 @@ describe Mongoid::Contexts::Mongo do | |
| 91 91 | 
             
                  end
         | 
| 92 92 | 
             
                end
         | 
| 93 93 | 
             
                context ":paginator :array" do
         | 
| 94 | 
            -
                  [nil,1,2].each do |page| | 
| 94 | 
            +
                  [nil,1,2].each do |page|
         | 
| 95 95 | 
             
                    it "page=#{page} should have 25" do
         | 
| 96 96 | 
             
                      Bar.geo_near([1,1], :page => page).size.should == 25
         | 
| 97 97 | 
             
                    end
         | 
| @@ -100,26 +100,27 @@ describe Mongoid::Contexts::Mongo do | |
| 100 100 | 
             
                  it "page=3 should have 0" do
         | 
| 101 101 | 
             
                    Bar.geo_near([1,1], :page => 20).size.should == 0
         | 
| 102 102 | 
             
                  end
         | 
| 103 | 
            -
             | 
| 103 | 
            +
             | 
| 104 104 | 
             
                  it "per_page=5" do
         | 
| 105 105 | 
             
                    Bar.geo_near([1,1], :page => 1, :per_page => 5).size.should == 5
         | 
| 106 106 | 
             
                  end
         | 
| 107 107 | 
             
                end
         | 
| 108 108 |  | 
| 109 | 
            -
                context ":paginator :kaminari" do | 
| 109 | 
            +
                context ":paginator :kaminari" do
         | 
| 110 110 | 
             
                  let(:near) {Bar.geo_near([1,1], :page => 1)}
         | 
| 111 111 | 
             
                  it "should have current_page" do
         | 
| 112 112 | 
             
                    near.current_page.should == 1
         | 
| 113 113 | 
             
                  end
         | 
| 114 114 |  | 
| 115 115 | 
             
                  it "should have num_pages" do
         | 
| 116 | 
            +
                    pending
         | 
| 116 117 | 
             
                    near.num_pages.should == 2
         | 
| 117 118 | 
             
                  end
         | 
| 118 119 |  | 
| 119 120 | 
             
                  it "should have limit_value" do
         | 
| 120 121 | 
             
                    near.limit_value.should == 25
         | 
| 121 122 | 
             
                  end
         | 
| 122 | 
            -
                end | 
| 123 | 
            +
                end
         | 
| 123 124 | 
             
              end
         | 
| 124 125 |  | 
| 125 126 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -6,9 +6,8 @@ SUPPORT = File.join(File.dirname(__FILE__), "support") | |
| 6 6 | 
             
            $LOAD_PATH.unshift(MODELS)
         | 
| 7 7 | 
             
            $LOAD_PATH.unshift(SUPPORT)
         | 
| 8 8 |  | 
| 9 | 
            -
            require "mongoid"
         | 
| 10 | 
            -
            require "mocha"
         | 
| 11 9 | 
             
            require "rspec"
         | 
| 10 | 
            +
            require "mongoid"
         | 
| 12 11 | 
             
            require "mongoid_spacial"
         | 
| 13 12 |  | 
| 14 13 | 
             
            LOGGER = Logger.new($stdout)
         | 
| @@ -28,7 +27,6 @@ Dir[ File.join(MODELS, "*.rb") ].sort.each { |file| require File.basename(file) | |
| 28 27 | 
             
            Dir[ File.join(SUPPORT, "*.rb") ].each { |file| require File.basename(file) }
         | 
| 29 28 |  | 
| 30 29 | 
             
            RSpec.configure do |config|
         | 
| 31 | 
            -
              config.mock_with(:mocha)
         | 
| 32 30 |  | 
| 33 31 | 
             
              config.after(:suite) { Mongoid.purge! }
         | 
| 34 32 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,109 +1,61 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mongoid_spacial
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.17
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| 8 8 | 
             
            - Ryan Ong
         | 
| 9 | 
            +
            - Arthur Neves
         | 
| 9 10 | 
             
            autorequire: 
         | 
| 10 11 | 
             
            bindir: bin
         | 
| 11 12 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 13 | 
            +
            date: 2013-05-08 00:00:00.000000000 Z
         | 
| 13 14 | 
             
            dependencies:
         | 
| 14 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 16 | 
             
              name: mongoid
         | 
| 16 | 
            -
              requirement:  | 
| 17 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 18 | 
             
                none: false
         | 
| 18 19 | 
             
                requirements:
         | 
| 19 20 | 
             
                - - ! '>='
         | 
| 20 21 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: 2. | 
| 22 | 
            -
             | 
| 23 | 
            -
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: *2160448560
         | 
| 25 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            -
              name: activesupport
         | 
| 27 | 
            -
              requirement: &2160448020 !ruby/object:Gem::Requirement
         | 
| 28 | 
            -
                none: false
         | 
| 29 | 
            -
                requirements:
         | 
| 30 | 
            -
                - - ~>
         | 
| 22 | 
            +
                    version: 2.1.0
         | 
| 23 | 
            +
                - - <
         | 
| 31 24 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version:  | 
| 25 | 
            +
                    version: 3.0.0
         | 
| 33 26 | 
             
              type: :runtime
         | 
| 34 27 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements:  | 
| 36 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            -
              name: yard
         | 
| 38 | 
            -
              requirement: &2160447500 !ruby/object:Gem::Requirement
         | 
| 39 | 
            -
                none: false
         | 
| 40 | 
            -
                requirements:
         | 
| 41 | 
            -
                - - ~>
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            -
                    version: 0.6.0
         | 
| 44 | 
            -
              type: :development
         | 
| 45 | 
            -
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: *2160447500
         | 
| 47 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 48 | 
            -
              name: rspec
         | 
| 49 | 
            -
              requirement: &2160446960 !ruby/object:Gem::Requirement
         | 
| 50 | 
            -
                none: false
         | 
| 51 | 
            -
                requirements:
         | 
| 52 | 
            -
                - - ~>
         | 
| 53 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: '2.3'
         | 
| 55 | 
            -
              type: :development
         | 
| 56 | 
            -
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: *2160446960
         | 
| 58 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 59 | 
            -
              name: rcov
         | 
| 60 | 
            -
              requirement: &2160446480 !ruby/object:Gem::Requirement
         | 
| 28 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 61 29 | 
             
                none: false
         | 
| 62 30 | 
             
                requirements:
         | 
| 63 31 | 
             
                - - ! '>='
         | 
| 64 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            -
                    version:  | 
| 66 | 
            -
             | 
| 67 | 
            -
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: *2160446480
         | 
| 69 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name: mocha
         | 
| 71 | 
            -
              requirement: &2160445940 !ruby/object:Gem::Requirement
         | 
| 72 | 
            -
                none: false
         | 
| 73 | 
            -
                requirements:
         | 
| 74 | 
            -
                - - ! '>='
         | 
| 33 | 
            +
                    version: 2.1.0
         | 
| 34 | 
            +
                - - <
         | 
| 75 35 | 
             
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            -
                    version:  | 
| 77 | 
            -
              type: :development
         | 
| 78 | 
            -
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: *2160445940
         | 
| 36 | 
            +
                    version: 3.0.0
         | 
| 80 37 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 | 
            -
              name:  | 
| 82 | 
            -
              requirement:  | 
| 38 | 
            +
              name: activesupport
         | 
| 39 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 83 40 | 
             
                none: false
         | 
| 84 41 | 
             
                requirements:
         | 
| 85 | 
            -
                - -  | 
| 42 | 
            +
                - - ~>
         | 
| 86 43 | 
             
                  - !ruby/object:Gem::Version
         | 
| 87 | 
            -
                    version: '0'
         | 
| 88 | 
            -
              type: : | 
| 44 | 
            +
                    version: '3.0'
         | 
| 45 | 
            +
              type: :runtime
         | 
| 89 46 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements:  | 
| 91 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 92 | 
            -
              name: kaminari
         | 
| 93 | 
            -
              requirement: &2160444860 !ruby/object:Gem::Requirement
         | 
| 47 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 94 48 | 
             
                none: false
         | 
| 95 49 | 
             
                requirements:
         | 
| 96 | 
            -
                - -  | 
| 50 | 
            +
                - - ~>
         | 
| 97 51 | 
             
                  - !ruby/object:Gem::Version
         | 
| 98 | 
            -
                    version: '0'
         | 
| 99 | 
            -
              type: :development
         | 
| 100 | 
            -
              prerelease: false
         | 
| 101 | 
            -
              version_requirements: *2160444860
         | 
| 52 | 
            +
                    version: '3.0'
         | 
| 102 53 | 
             
            description: mongoid_spacial simplifies spacial calculations. Adds integration into
         | 
| 103 54 | 
             
              mongoid so pagination and other function continue to work. It adds symbol extentions
         | 
| 104 55 | 
             
              to simplify query creation.
         | 
| 105 56 | 
             
            email:
         | 
| 106 57 | 
             
            - ryanong@gmail.com
         | 
| 58 | 
            +
            - arthurnn@gmail.com
         | 
| 107 59 | 
             
            executables: []
         | 
| 108 60 | 
             
            extensions: []
         | 
| 109 61 | 
             
            extra_rdoc_files: []
         | 
| @@ -111,6 +63,8 @@ files: | |
| 111 63 | 
             
            - .document
         | 
| 112 64 | 
             
            - .gitignore
         | 
| 113 65 | 
             
            - .rspec
         | 
| 66 | 
            +
            - .ruby-gemset
         | 
| 67 | 
            +
            - .ruby-version
         | 
| 114 68 | 
             
            - Gemfile
         | 
| 115 69 | 
             
            - LICENSE.txt
         | 
| 116 70 | 
             
            - README.md
         | 
| @@ -229,15 +183,21 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 229 183 | 
             
              - - ! '>='
         | 
| 230 184 | 
             
                - !ruby/object:Gem::Version
         | 
| 231 185 | 
             
                  version: '0'
         | 
| 186 | 
            +
                  segments:
         | 
| 187 | 
            +
                  - 0
         | 
| 188 | 
            +
                  hash: -2483791480544653354
         | 
| 232 189 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 233 190 | 
             
              none: false
         | 
| 234 191 | 
             
              requirements:
         | 
| 235 192 | 
             
              - - ! '>='
         | 
| 236 193 | 
             
                - !ruby/object:Gem::Version
         | 
| 237 194 | 
             
                  version: '0'
         | 
| 195 | 
            +
                  segments:
         | 
| 196 | 
            +
                  - 0
         | 
| 197 | 
            +
                  hash: -2483791480544653354
         | 
| 238 198 | 
             
            requirements: []
         | 
| 239 199 | 
             
            rubyforge_project: 
         | 
| 240 | 
            -
            rubygems_version: 1.8. | 
| 200 | 
            +
            rubygems_version: 1.8.25
         | 
| 241 201 | 
             
            signing_key: 
         | 
| 242 202 | 
             
            specification_version: 3
         | 
| 243 203 | 
             
            summary: A Mongoid Extention that simplifies and adds support for MongoDB Geo Spacial
         |