radiant-event_map-extension 1.3.5 → 1.3.6

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.
@@ -13,10 +13,12 @@ class EventMapExtension < Radiant::Extension
13
13
  end
14
14
 
15
15
  def activate
16
- require 'angle_conversions' # adds String.to_latlng and some degree/radian conversions to Numeric
17
- require 'grid_ref' # converts from UK grid references to lat/long
18
- EventVenue.send :include, Mappable # adds geolocation on validation
19
- Page.send :include, EventMapTags # currently only a basic events:googlemap tag
16
+ require 'angle_conversions' # adds degree/radian conversions to Numeric
17
+ require 'string_conversions' # adds lat/long and gridref conversions to String
18
+ require 'grid_ref' # converts coordinates from UK grid references to lat/long
19
+ EventVenue.send :include, Mappable # adds geolocation on validation
20
+ Page.send :include, EventMapTags # defines a very basic events:googlemap tag
21
+ # the real work is done when the EventVenuesController builds javascript
20
22
  end
21
23
 
22
24
  end
data/lib/grid_ref.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # adapted from Geography::NationalGrid by and (c) P Kent
2
2
  # with reference to the Ordnance Survey guide to coordinate systems in the UK
3
3
  # http://www.ordnancesurvey.co.uk/oswebsite/gps/information/coordinatesystemsinfo/guidecontents/
4
+
4
5
  class Ellipsoid
5
6
  attr_accessor :a, :b, :e2
6
7
 
@@ -263,30 +264,3 @@ private
263
264
  end
264
265
 
265
266
  end
266
-
267
- class String
268
- def is_gridref?
269
- !!(self.upcase =~ /^(H(P|T|U|Y|Z)|N(A|B|C|D|F|G|H|J|K|L|M|N|O|R|S|T|U|W|X|Y|Z)|OV|S(C|D|E|G|H|J|K|M|N|O|P|R|S|T|U|W|X|Y|Z)|T(A|F|G|L|M|Q|R|V)){1}\d{4}(NE|NW|SE|SW)?$|((H(P|T|U|Y|Z)|N(A|B|C|D|F|G|H|J|K|L|M|N|O|R|S|T|U|W|X|Y|Z)|OV|S(C|D|E|G|H|J|K|M|N|O|P|R|S|T|U|W|X|Y|Z)|T(A|F|G|L|M|Q|R|V)){1}(\d{4}|\d{6}|\d{8}|\d{10}))$/)
270
- end
271
-
272
- def is_latlng?
273
- !!(self =~ /(-?\d+\.\d+)[,\s]+(-?\d+\.\d+)/)
274
- end
275
-
276
- def to_latlng(options = {})
277
- if is_latlng?
278
- self
279
- elsif is_gridref?
280
- GridRef.new(self, options).to_latlng
281
- end
282
- end
283
-
284
- def to_wgs84(options = {})
285
- if is_latlng?
286
- self
287
- elsif is_gridref?
288
- GridRef.new(self, options.merge(:datum => :wgs84)).to_latlng
289
- end
290
- end
291
-
292
- end
data/lib/mappable.rb CHANGED
@@ -55,7 +55,7 @@ private
55
55
  else
56
56
  bias = Radiant::Config['event_map.zone'] || 'uk'
57
57
  geo = Geokit::Geocoders::MultiGeocoder.geocode(location, :bias => bias)
58
- errors.add(:postcode, "Could not Geocode location: please specify here") if !geo.success
58
+ errors.add(:postcode, "Could not Geocode location: please specify here") unless geo.success
59
59
  self.lat, self.lng = geo.lat, geo.lng if geo.success
60
60
  end
61
61
  end
@@ -1,5 +1,5 @@
1
1
  module RadiantEventMapExtension
2
- VERSION = '1.3.5'
2
+ VERSION = '1.3.6'
3
3
  SUMMARY = %Q{Event geocoding and map extension for Radiant CMS}
4
4
  DESCRIPTION = "Small additions to the event_calendar that geocode calendar events and display on a google map. Separated here because perhaps only of interest to a few."
5
5
  URL = "http://github.com/radiant/radiant-event_calendar-extension"
@@ -0,0 +1,36 @@
1
+ class String
2
+ require 'grid_ref'
3
+ attr_accessor :coordinates
4
+
5
+ def is_gridref?
6
+ !!(self.upcase =~ /^(H(P|T|U|Y|Z)|N(A|B|C|D|F|G|H|J|K|L|M|N|O|R|S|T|U|W|X|Y|Z)|OV|S(C|D|E|G|H|J|K|M|N|O|P|R|S|T|U|W|X|Y|Z)|T(A|F|G|L|M|Q|R|V)){1}\d{4}(NE|NW|SE|SW)?$|((H(P|T|U|Y|Z)|N(A|B|C|D|F|G|H|J|K|L|M|N|O|R|S|T|U|W|X|Y|Z)|OV|S(C|D|E|G|H|J|K|M|N|O|P|R|S|T|U|W|X|Y|Z)|T(A|F|G|L|M|Q|R|V)){1}(\d{4}|\d{6}|\d{8}|\d{10}))$/)
7
+ end
8
+
9
+ def is_latlng?
10
+ !!coordinates
11
+ end
12
+
13
+ def coordinates
14
+ if matches = self.match(/(-?\d+\.\d+)[,\s]+(-?\d+\.\d+)/)
15
+ matches[1,2].join(', ')
16
+ else
17
+ nil
18
+ end
19
+ end
20
+
21
+ def to_latlng(options = {})
22
+ if is_gridref?
23
+ GridRef.new(self, options).to_latlng
24
+ else
25
+ self.coordinates
26
+ end
27
+ end
28
+
29
+ def to_wgs84(options = {})
30
+ if is_gridref?
31
+ GridRef.new(self, options.merge(:datum => :wgs84)).to_latlng
32
+ else
33
+ self.coordinates
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,52 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe String do
4
+ describe "that is already a lat/long pair" do
5
+ it "should respond negatively to .is_gridref?" do
6
+ "54.07469997904575,-3.175048828125".is_gridref?.should be_false
7
+ end
8
+
9
+ it "should respond positively to .is_latlng?" do
10
+ "54.07469997904575,-3.175048828125".is_latlng?.should be_true
11
+ "54.07469997904575 -3.175048828125".is_latlng?.should be_true
12
+ "54.07469997904575 3.175048828125".is_latlng?.should be_true
13
+ "54.0 -3.0".is_latlng?.should be_true
14
+ "54 3".is_latlng?.should be_false
15
+ "543".is_latlng?.should be_false
16
+ "54-3".is_latlng?.should be_false
17
+ end
18
+
19
+ it "should respond to .to_latlng with coordinates" do
20
+ "54.07469997904575 -3.175048828125".to_latlng.should == "54.07469997904575, -3.175048828125"
21
+ end
22
+
23
+ it "should convert to grid ref"
24
+ end
25
+
26
+ describe "that is a grid reference" do
27
+ it "should respond positively to .is_gridref?" do
28
+ "SD123456".is_gridref?.should be_true
29
+ end
30
+
31
+ it "should respond to .to_latlng with coordinates" do
32
+ "SD2873178452".to_latlng.should == "54.196698, -3.092537"
33
+ end
34
+
35
+ it "should pass through options to the grid ref" do
36
+ "SD2873178452".to_latlng(:datum => :wgs84).should == "54.19685, -3.093901"
37
+ "SD2873178452".to_wgs84.should == "54.19685, -3.093901"
38
+ end
39
+ end
40
+
41
+ describe "that is a not recognised as a grid reference" do
42
+ it "should respond negatively to .is_gridref?" do
43
+ "banana".is_gridref?.should be_false
44
+ end
45
+
46
+ it "should return nil to .to_latlng" do
47
+ lambda{ "banana".to_latlng }.should_not raise_error
48
+ "banana".to_latlng.should be_nil
49
+ end
50
+ end
51
+
52
+ end
@@ -9,7 +9,7 @@ describe GridRef do
9
9
  lambda{ GridRef.new("SD1234567890") }.should_not raise_error
10
10
  end
11
11
 
12
- describe " standard transformation" do
12
+ describe "standard transformation" do
13
13
  before do
14
14
  @gr = GridRef.new("SD2873178452")
15
15
  end
@@ -59,32 +59,3 @@ describe GridRef do
59
59
  end
60
60
  end
61
61
  end
62
-
63
- describe String do
64
- describe "that is a grid reference" do
65
- it "should respond positively to .is_gridref?" do
66
- "SD123456".is_gridref?.should be_true
67
- end
68
-
69
- it "should respond to .to_latlng with coordinates" do
70
- "SD2873178452".to_latlng.should == "54.196698, -3.092537"
71
- end
72
-
73
- it "should pass through options to the grid ref" do
74
- "SD2873178452".to_latlng(:datum => :wgs84).should == "54.19685, -3.093901"
75
- "SD2873178452".to_wgs84.should == "54.19685, -3.093901"
76
- end
77
- end
78
-
79
- describe "that is a not recognised as a grid reference" do
80
- it "should respond negatively to .is_gridref?" do
81
- "banana".is_gridref?.should be_false
82
- end
83
-
84
- it "should return nil to .to_latlng" do
85
- lambda{ "banana".to_latlng }.should_not raise_error
86
- "banana".to_latlng.should be_nil
87
- end
88
- end
89
-
90
- end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-event_map-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 5
10
- version: 1.3.5
9
+ - 6
10
+ version: 1.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - William Ross
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-18 00:00:00 +01:00
18
+ date: 2011-07-28 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -78,13 +78,14 @@ files:
78
78
  - lib/grid_ref.rb
79
79
  - lib/mappable.rb
80
80
  - lib/radiant-event_map-extension.rb
81
+ - lib/string_conversions.rb
81
82
  - lib/tasks/event_map_extension_tasks.rake
82
83
  - public/images/map_icons/pink-dot.png
83
84
  - public/images/map_icons/shadow.png
84
- - radiant-event_map-extension-1.3.4.gem
85
85
  - radiant-event_map-extension.gemspec
86
86
  - Rakefile
87
87
  - README.md
88
+ - spec/lib/conversions_spec.rb
88
89
  - spec/lib/grid_ref_spec.rb
89
90
  - spec/spec.opts
90
91
  - spec/spec_helper.rb
@@ -93,7 +94,7 @@ has_rdoc: true
93
94
  homepage: http://github.com/radiant/radiant-event_calendar-extension
94
95
  licenses: []
95
96
 
96
- post_install_message: "\n Add this to your radiant project with:\n\n config.gem 'radiant-event_map-extension', :version => '~> 1.3.5'\n\n "
97
+ post_install_message: "\n Add this to your radiant project with:\n\n config.gem 'radiant-event_map-extension', :version => '~> 1.3.6'\n\n "
97
98
  rdoc_options: []
98
99
 
99
100
  require_paths:
@@ -124,6 +125,7 @@ signing_key:
124
125
  specification_version: 3
125
126
  summary: Event geocoding and map extension for Radiant CMS
126
127
  test_files:
128
+ - spec/lib/conversions_spec.rb
127
129
  - spec/lib/grid_ref_spec.rb
128
130
  - spec/spec.opts
129
131
  - spec/spec_helper.rb
Binary file