[macruby-changes] [779] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jan 7 05:49:43 PST 2009
Revision: 779
http://trac.macosforge.org/projects/ruby/changeset/779
Author: eloy.de.enige at gmail.com
Date: 2009-01-07 05:49:40 -0800 (Wed, 07 Jan 2009)
Log Message:
-----------
Added first part of Objective-C extensions from RubyCocoa's oc_attachments. Not yet required by default.
Added Paths:
-----------
MacRuby/trunk/lib/objc_ext/
MacRuby/trunk/lib/objc_ext/ns_user_defaults.rb
MacRuby/trunk/test-macruby/test_objc_ext.rb
Added: MacRuby/trunk/lib/objc_ext/ns_user_defaults.rb
===================================================================
--- MacRuby/trunk/lib/objc_ext/ns_user_defaults.rb (rev 0)
+++ MacRuby/trunk/lib/objc_ext/ns_user_defaults.rb 2009-01-07 13:49:40 UTC (rev 779)
@@ -0,0 +1,19 @@
+module MacRuby
+ module ObjcExt
+ module NSUserDefaults
+ def [](key)
+ valueForKey(key)
+ end
+
+ def []=(key, value)
+ setValue(value, forKey: key)
+ end
+
+ def delete(key)
+ removeObjectForKey(key)
+ end
+ end
+ end
+end
+
+NSUserDefaults.send(:include, MacRuby::ObjcExt::NSUserDefaults)
\ No newline at end of file
Added: MacRuby/trunk/test-macruby/test_objc_ext.rb
===================================================================
--- MacRuby/trunk/test-macruby/test_objc_ext.rb (rev 0)
+++ MacRuby/trunk/test-macruby/test_objc_ext.rb 2009-01-07 13:49:40 UTC (rev 779)
@@ -0,0 +1,39 @@
+#!/usr/bin/env macruby
+
+require 'test/unit'
+class Test::Unit::TestCase
+ class << self
+ def it(name, &block)
+ define_method("test_#{name}", &block)
+ end
+ end
+end
+
+$: << File.expand_path('../../lib', __FILE__)
+require 'objc_ext/ns_user_defaults'
+
+# These tests should probably move to the macruby part of rubyspec once we get to that point.
+
+class TestNSUserDefaults < Test::Unit::TestCase
+ it "returns a value for a given key through the #[] reader method" do
+ defaults.setValue('foo', forKey: 'key')
+ assert_equal 'foo', defaults['key']
+ end
+
+ it "assigns a value for a given key through the #[]= writer method" do
+ defaults['key'] = 'foo'
+ assert_equal 'foo', defaults.valueForKey('key')
+ end
+
+ it "removes an object for a given key with the #delete method" do
+ defaults.setValue('foo', forKey: 'key')
+ defaults.delete('key')
+ assert_nil defaults.valueForKey('key')
+ end
+
+ private
+
+ def defaults
+ NSUserDefaults.standardUserDefaults
+ end
+end
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090107/853b657a/attachment.html>
More information about the macruby-changes
mailing list