mongoid_geo 0.1.7 → 0.1.8

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/README.textile CHANGED
@@ -102,7 +102,13 @@ With the new @:geo@ option supplied by _mongoid-geo_ :
102
102
  field :location, :type => Array, :geo => true, :lat => :latitude, :lng => :longitude
103
103
 
104
104
  assert(45.1 , p.latitude)
105
- assert(-3.4 , p.longitude)
105
+ assert(-3.4 , p.longitude)
106
+
107
+ # or set the array attributes using symmetric setter convenience methods!
108
+ p.latitude = 44
109
+ assert(44 , p.latitude)
110
+
111
+ # PURE MAGIC!!!
106
112
  </pre>
107
113
 
108
114
  h2. News update
@@ -5,11 +5,22 @@ 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) { read_attribute(name) }
8
+
9
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] }
10
+ lat_meth = options[:lat] || "lat"
11
+ lng_meth = options[:lng] || "lng"
12
+
13
+ define_method(lat_meth) { read_attribute(name)[0] }
14
+ define_method(lng_meth) { read_attribute(name)[1] }
15
+
16
+ define_method "#{lat_meth}=" do |value|
17
+ send(name)[0] = value
18
+ end
19
+ define_method "#{lng_meth}=" do |value|
20
+ send(name)[1] = value
21
+ end
12
22
  end
23
+
13
24
  define_method("#{meth}=") do |value|
14
25
  if options[:type] == Array && options[:geo]
15
26
  value = case value
@@ -24,6 +35,7 @@ module Mongoid #:nodoc
24
35
  end
25
36
  write_attribute(name, value)
26
37
  end
38
+
27
39
  define_method("#{meth}?") do
28
40
  attr = read_attribute(name)
29
41
  (options[:type] == Boolean) ? attr == true : attr.present?
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.7
4
+ version: 0.1.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &2153054640 !ruby/object:Gem::Requirement
17
+ requirement: &2156123600 !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: *2153054640
25
+ version_requirements: *2156123600
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mongoid
28
- requirement: &2153054100 !ruby/object:Gem::Requirement
28
+ requirement: &2156123060 !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: *2153054100
36
+ version_requirements: *2156123060
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson_ext
39
- requirement: &2153053600 !ruby/object:Gem::Requirement
39
+ requirement: &2154833320 !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: *2153053600
47
+ version_requirements: *2154833320
48
48
  description: Geo spatial extension on Mongoid 2, to add more geo-spatial capabilities
49
49
  email:
50
50
  - kmandrup@gmail.com