mongoid_geo 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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