[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