[macruby-changes] [4805] MacRuby/trunk/sample-macruby/Scripts/locator.rb
source_changes at macosforge.org
source_changes at macosforge.org
Mon Oct 18 21:34:45 PDT 2010
Revision: 4805
http://trac.macosforge.org/projects/ruby/changeset/4805
Author: mattaimonetti at gmail.com
Date: 2010-10-18 21:34:43 -0700 (Mon, 18 Oct 2010)
Log Message:
-----------
added a sample showing how to use CoreLocation to find the user's location and open it in a google map page using the default browser
Added Paths:
-----------
MacRuby/trunk/sample-macruby/Scripts/locator.rb
Added: MacRuby/trunk/sample-macruby/Scripts/locator.rb
===================================================================
--- MacRuby/trunk/sample-macruby/Scripts/locator.rb (rev 0)
+++ MacRuby/trunk/sample-macruby/Scripts/locator.rb 2010-10-19 04:34:43 UTC (rev 4805)
@@ -0,0 +1,65 @@
+#!/usr/local/bin/macruby
+
+# Copyright (c) 2010 Matt Aimonetti
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# Example script that finds your location and opens it on Google map page.
+# Requires MacRuby 0.7.1 or newer
+
+framework 'Cocoa'
+framework 'CoreLocation'
+
+# CLLocationManager wrapper
+# more info on the CoreLocation:
+# http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html
+class LocationManager
+
+ def initialize(&block)
+ @loc = CLLocationManager.alloc.init
+ @loc.delegate = self
+ @callback = block
+ end
+
+ def start
+ @loc.startUpdatingLocation
+ end
+
+ def stop
+ @loc.stopUpdatingLocation
+ end
+
+ # Dispatch the CLLocationManager callback to the Ruby callback
+ def locationManager(manager, didUpdateToLocation: new_location, fromLocation: old_location)
+ @callback.call(new_location, self)
+ end
+
+end
+
+location_manager = LocationManager.new do |new_location, manager|
+ manager.stop
+ puts "location: #{new_location.description}"
+ url_string = "http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=#{new_location.coordinate.latitude},#{new_location.coordinate.longitude}"
+ url = NSURL.URLWithString(url_string)
+ NSWorkspace.sharedWorkspace.openURL(url)
+ exit
+end
+
+location_manager.start
+NSRunLoop.currentRunLoop.runUntilDate(NSDate.distantFuture)
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101018/44305357/attachment.html>
More information about the macruby-changes
mailing list