Revision: 779 http://trac.macosforge.org/projects/ruby/changeset/779 Author: eloy.de.enige@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