mongoid_geo 0.1.6 → 0.1.7

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.
Files changed (3) hide show
  1. data/README.textile +11 -0
  2. data/lib/mongoid/geo/fields.rb +10 -5
  3. metadata +8 -8
data/README.textile CHANGED
@@ -92,6 +92,17 @@ With the new @:geo@ option supplied by _mongoid-geo_ :
92
92
 
93
93
  # for each of the above, the following holds
94
94
  assert([45.1, -3.4], p.location)
95
+
96
+ # also by default adds #lat and #lng convenience methods (thanks to TeuF)
97
+
98
+ assert(45.1 , p.lat)
99
+ assert(-3.4 , p.lng)
100
+
101
+ # the #lat and #lng convenience methods can also be customized with the :lat and :lng options
102
+ field :location, :type => Array, :geo => true, :lat => :latitude, :lng => :longitude
103
+
104
+ assert(45.1 , p.latitude)
105
+ assert(-3.4 , p.longitude)
95
106
  </pre>
96
107
 
97
108
  h2. News update
@@ -5,18 +5,23 @@ module Mongoid #:nodoc
5
5
  def create_accessors(name, meth, options = {})
6
6
  generated_field_methods.module_eval do
7
7
  define_method(meth) { read_attribute(name) }
8
- define_method("#{meth}=") do |value|
8
+ define_method(meth) { read_attribute(name) }
9
+ if options[:type] == Array && options[:geo]
10
+ define_method(options[:lat] || "lat") { read_attribute(name)[0] }
11
+ define_method(options[:lng] || "lng") { read_attribute(name)[1] }
12
+ end
13
+ define_method("#{meth}=") do |value|
9
14
  if options[:type] == Array && options[:geo]
10
15
  value = case value
11
- when String
16
+ when String
12
17
  value.split(",").map(&:to_f)
13
- when Array
18
+ when Array
14
19
  value.compact.extend(Mongoid::Geo::Point).to_points
15
20
  else
16
21
  !value.nil? ? value.extend(Mongoid::Geo::Point).to_point : value
17
- end
22
+ end
18
23
  value = value[0..1] if !value.nil?
19
- end
24
+ end
20
25
  write_attribute(name, value)
21
26
  end
22
27
  define_method("#{meth}?") do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_geo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-02-22 00:00:00.000000000 +01:00
12
+ date: 2011-02-23 00:00:00.000000000 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &2156988560 !ruby/object:Gem::Requirement
17
+ requirement: &2153054640 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *2156988560
25
+ version_requirements: *2153054640
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mongoid
28
- requirement: &2156988020 !ruby/object:Gem::Requirement
28
+ requirement: &2153054100 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 2.0.0.rc.6
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2156988020
36
+ version_requirements: *2153054100
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson_ext
39
- requirement: &2156987520 !ruby/object:Gem::Requirement
39
+ requirement: &2153053600 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: 1.1.6
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2156987520
47
+ version_requirements: *2153053600
48
48
  description: Geo spatial extension on Mongoid 2, to add more geo-spatial capabilities
49
49
  email:
50
50
  - kmandrup@gmail.com