[macruby-changes] [3938] MacRuby/trunk/spec/macruby
source_changes at macosforge.org
source_changes at macosforge.org
Fri Apr 16 17:55:40 PDT 2010
Revision: 3938
http://trac.macosforge.org/projects/ruby/changeset/3938
Author: lsansonetti at apple.com
Date: 2010-04-16 17:55:39 -0700 (Fri, 16 Apr 2010)
Log Message:
-----------
added specs to cover automatic class +initialize upon lazy lookup
Modified Paths:
--------------
MacRuby/trunk/spec/macruby/core/object_spec.rb
MacRuby/trunk/spec/macruby/fixtures/object.m
Modified: MacRuby/trunk/spec/macruby/core/object_spec.rb
===================================================================
--- MacRuby/trunk/spec/macruby/core/object_spec.rb 2010-04-16 23:59:45 UTC (rev 3937)
+++ MacRuby/trunk/spec/macruby/core/object_spec.rb 2010-04-17 00:55:39 UTC (rev 3938)
@@ -51,4 +51,15 @@
o2.frozen?.should == false
end
-end
\ No newline at end of file
+end
+
+describe "An Objective-C class" do
+ it "has its +initialize method called once it is accessed for the first time" do
+ 3.times { ::TestClassInitialization.result.should == 42 }
+
+ # If +[NSPredicate initialize] is not properly called, this will raise a warning in the
+ # running terminal (see https://www.macruby.org/trac/ticket/458).
+ obj = NSPredicate.predicateWithFormat("NOT (SELF in %@)", argumentArray: [[1,2,3,4]])
+ obj.kind_of?(NSPredicate).should == true
+ end
+end
Modified: MacRuby/trunk/spec/macruby/fixtures/object.m
===================================================================
--- MacRuby/trunk/spec/macruby/fixtures/object.m 2010-04-16 23:59:45 UTC (rev 3937)
+++ MacRuby/trunk/spec/macruby/fixtures/object.m 2010-04-17 00:55:39 UTC (rev 3938)
@@ -22,4 +22,25 @@
@end
+ at interface TestClassInitialization : NSObject
+ at end
+
+ at implementation TestClassInitialization
+
+static int res = 0;
+
++ (void)initialize
+{
+ if (self == [TestClassInitialization class]) {
+ res += 42;
+ }
+}
+
++ (int)result
+{
+ return res;
+}
+
+ at end
+
void Init_object(void) {}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100416/199595fa/attachment.html>
More information about the macruby-changes
mailing list