cocoa 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/cocoa.gemspec +11 -5
- data/examples/table_view.rb +72 -0
- data/lib/cocoa/bindings/CAConstraint.rb +2 -2
- data/lib/cocoa/bindings/CALayer.rb +6 -6
- data/lib/cocoa/bindings/CAMediaTimingFunction.rb +1 -1
- data/lib/cocoa/bindings/CAOpenGLLayer.rb +2 -2
- data/lib/cocoa/bindings/CARenderer.rb +2 -2
- data/lib/cocoa/bindings/CATransaction.rb +1 -1
- data/lib/cocoa/bindings/CIImage.rb +2 -2
- data/lib/cocoa/bindings/NSATSTypesetter.rb +21 -21
- data/lib/cocoa/bindings/NSAffineTransform.rb +2 -2
- data/lib/cocoa/bindings/NSAlert.rb +2 -2
- data/lib/cocoa/bindings/NSAnimation.rb +3 -3
- data/lib/cocoa/bindings/NSAnimationContext.rb +1 -1
- data/lib/cocoa/bindings/NSAppleEventDescriptor.rb +8 -8
- data/lib/cocoa/bindings/NSAppleEventManager.rb +3 -3
- data/lib/cocoa/bindings/NSAppleScript.rb +2 -2
- data/lib/cocoa/bindings/NSApplication.rb +19 -19
- data/lib/cocoa/bindings/NSArchiver.rb +3 -3
- data/lib/cocoa/bindings/NSArray.rb +21 -21
- data/lib/cocoa/bindings/NSArrayController.rb +2 -2
- data/lib/cocoa/bindings/NSAssertionHandler.rb +2 -2
- data/lib/cocoa/bindings/NSAttributedString.rb +29 -29
- data/lib/cocoa/bindings/NSBezierPath.rb +15 -15
- data/lib/cocoa/bindings/NSBitmapImageRep.rb +16 -16
- data/lib/cocoa/bindings/NSBrowser.rb +16 -16
- data/lib/cocoa/bindings/NSBundle.rb +14 -14
- data/lib/cocoa/bindings/NSButton.rb +2 -2
- data/lib/cocoa/bindings/NSButtonCell.rb +6 -6
- data/lib/cocoa/bindings/NSByteCountFormatter.rb +1 -1
- data/lib/cocoa/bindings/NSCache.rb +1 -1
- data/lib/cocoa/bindings/NSCachedImageRep.rb +2 -2
- data/lib/cocoa/bindings/NSCachedURLResponse.rb +1 -1
- data/lib/cocoa/bindings/NSCalendar.rb +4 -4
- data/lib/cocoa/bindings/NSCalendarDate.rb +7 -7
- data/lib/cocoa/bindings/NSCell.rb +21 -21
- data/lib/cocoa/bindings/NSClassDescription.rb +1 -1
- data/lib/cocoa/bindings/NSCoder.rb +20 -20
- data/lib/cocoa/bindings/NSCollectionView.rb +3 -3
- data/lib/cocoa/bindings/NSColor.rb +17 -17
- data/lib/cocoa/bindings/NSColorList.rb +3 -3
- data/lib/cocoa/bindings/NSColorPanel.rb +1 -1
- data/lib/cocoa/bindings/NSColorPicker.rb +2 -2
- data/lib/cocoa/bindings/NSComboBox.rb +1 -1
- data/lib/cocoa/bindings/NSComboBoxCell.rb +1 -1
- data/lib/cocoa/bindings/NSComparisonPredicate.rb +2 -2
- data/lib/cocoa/bindings/NSCompoundPredicate.rb +1 -1
- data/lib/cocoa/bindings/NSConditionLock.rb +1 -1
- data/lib/cocoa/bindings/NSConnection.rb +6 -6
- data/lib/cocoa/bindings/NSControl.rb +2 -2
- data/lib/cocoa/bindings/NSController.rb +1 -1
- data/lib/cocoa/bindings/NSCursor.rb +1 -1
- data/lib/cocoa/bindings/NSCustomImageRep.rb +2 -2
- data/lib/cocoa/bindings/NSData.rb +12 -12
- data/lib/cocoa/bindings/NSDataDetector.rb +2 -2
- data/lib/cocoa/bindings/NSDate.rb +5 -5
- data/lib/cocoa/bindings/NSDateFormatter.rb +4 -4
- data/lib/cocoa/bindings/NSDecimalNumber.rb +10 -10
- data/lib/cocoa/bindings/NSDecimalNumberHandler.rb +2 -2
- data/lib/cocoa/bindings/NSDictionary.rb +12 -12
- data/lib/cocoa/bindings/NSDistantObject.rb +4 -4
- data/lib/cocoa/bindings/NSDistributedNotificationCenter.rb +3 -3
- data/lib/cocoa/bindings/NSDocument.rb +41 -41
- data/lib/cocoa/bindings/NSDocumentController.rb +16 -16
- data/lib/cocoa/bindings/NSDraggingItem.rb +1 -1
- data/lib/cocoa/bindings/NSDraggingSession.rb +1 -1
- data/lib/cocoa/bindings/NSDrawer.rb +1 -1
- data/lib/cocoa/bindings/NSError.rb +2 -2
- data/lib/cocoa/bindings/NSEvent.rb +9 -9
- data/lib/cocoa/bindings/NSException.rb +3 -3
- data/lib/cocoa/bindings/NSExpression.rb +8 -8
- data/lib/cocoa/bindings/NSFileCoordinator.rb +4 -4
- data/lib/cocoa/bindings/NSFileHandle.rb +4 -4
- data/lib/cocoa/bindings/NSFileManager.rb +39 -39
- data/lib/cocoa/bindings/NSFileVersion.rb +4 -4
- data/lib/cocoa/bindings/NSFileWrapper.rb +6 -6
- data/lib/cocoa/bindings/NSFont.rb +4 -4
- data/lib/cocoa/bindings/NSFontCollection.rb +5 -5
- data/lib/cocoa/bindings/NSFontDescriptor.rb +1 -1
- data/lib/cocoa/bindings/NSFontManager.rb +10 -10
- data/lib/cocoa/bindings/NSFontPanel.rb +1 -1
- data/lib/cocoa/bindings/NSForm.rb +1 -1
- data/lib/cocoa/bindings/NSFormatter.rb +3 -3
- data/lib/cocoa/bindings/NSGlyphGenerator.rb +1 -1
- data/lib/cocoa/bindings/NSGlyphInfo.rb +3 -3
- data/lib/cocoa/bindings/NSGradient.rb +7 -7
- data/lib/cocoa/bindings/NSGraphicsContext.rb +1 -1
- data/lib/cocoa/bindings/NSHTTPCookie.rb +1 -1
- data/lib/cocoa/bindings/NSHTTPCookieStorage.rb +1 -1
- data/lib/cocoa/bindings/NSHTTPURLResponse.rb +1 -1
- data/lib/cocoa/bindings/NSHashTable.rb +2 -2
- data/lib/cocoa/bindings/NSHelpManager.rb +4 -4
- data/lib/cocoa/bindings/NSImage.rb +11 -11
- data/lib/cocoa/bindings/NSImageRep.rb +2 -2
- data/lib/cocoa/bindings/NSIndexPath.rb +2 -2
- data/lib/cocoa/bindings/NSIndexSet.rb +9 -9
- data/lib/cocoa/bindings/NSIndexSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSInputManager.rb +2 -2
- data/lib/cocoa/bindings/NSInputServer.rb +1 -1
- data/lib/cocoa/bindings/NSInputStream.rb +2 -2
- data/lib/cocoa/bindings/NSInvocation.rb +2 -2
- data/lib/cocoa/bindings/NSInvocationOperation.rb +1 -1
- data/lib/cocoa/bindings/NSJSONSerialization.rb +4 -4
- data/lib/cocoa/bindings/NSKeyedArchiver.rb +12 -12
- data/lib/cocoa/bindings/NSKeyedUnarchiver.rb +3 -3
- data/lib/cocoa/bindings/NSLayoutConstraint.rb +2 -2
- data/lib/cocoa/bindings/NSLayoutManager.rb +59 -59
- data/lib/cocoa/bindings/NSLinguisticTagger.rb +8 -8
- data/lib/cocoa/bindings/NSLocale.rb +1 -1
- data/lib/cocoa/bindings/NSMachBootstrapServer.rb +2 -2
- data/lib/cocoa/bindings/NSMachPort.rb +4 -4
- data/lib/cocoa/bindings/NSMapTable.rb +4 -4
- data/lib/cocoa/bindings/NSMatrix.rb +20 -20
- data/lib/cocoa/bindings/NSMenu.rb +7 -7
- data/lib/cocoa/bindings/NSMenuItem.rb +1 -1
- data/lib/cocoa/bindings/NSMenuItemCell.rb +6 -6
- data/lib/cocoa/bindings/NSMessagePortNameServer.rb +1 -1
- data/lib/cocoa/bindings/NSMetadataQuery.rb +1 -1
- data/lib/cocoa/bindings/NSMutableArray.rb +12 -12
- data/lib/cocoa/bindings/NSMutableAttributedString.rb +11 -11
- data/lib/cocoa/bindings/NSMutableData.rb +2 -2
- data/lib/cocoa/bindings/NSMutableDictionary.rb +2 -2
- data/lib/cocoa/bindings/NSMutableIndexSet.rb +1 -1
- data/lib/cocoa/bindings/NSMutableOrderedSet.rb +11 -11
- data/lib/cocoa/bindings/NSMutableString.rb +3 -3
- data/lib/cocoa/bindings/NSMutableURLRequest.rb +2 -2
- data/lib/cocoa/bindings/NSNameSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSNetService.rb +4 -4
- data/lib/cocoa/bindings/NSNetServiceBrowser.rb +3 -3
- data/lib/cocoa/bindings/NSNib.rb +4 -4
- data/lib/cocoa/bindings/NSNibConnector.rb +1 -1
- data/lib/cocoa/bindings/NSNotification.rb +1 -1
- data/lib/cocoa/bindings/NSNotificationCenter.rb +4 -4
- data/lib/cocoa/bindings/NSNotificationQueue.rb +2 -2
- data/lib/cocoa/bindings/NSNumberFormatter.rb +2 -2
- data/lib/cocoa/bindings/NSObject.rb +142 -142
- data/lib/cocoa/bindings/NSObjectController.rb +1 -1
- data/lib/cocoa/bindings/NSOpenGLContext.rb +8 -8
- data/lib/cocoa/bindings/NSOpenGLLayer.rb +2 -2
- data/lib/cocoa/bindings/NSOpenGLPixelBuffer.rb +1 -1
- data/lib/cocoa/bindings/NSOpenGLPixelFormat.rb +1 -1
- data/lib/cocoa/bindings/NSOpenGLView.rb +1 -1
- data/lib/cocoa/bindings/NSOpenPanel.rb +3 -3
- data/lib/cocoa/bindings/NSOperationQueue.rb +1 -1
- data/lib/cocoa/bindings/NSOrderedSet.rb +21 -21
- data/lib/cocoa/bindings/NSOrthography.rb +2 -2
- data/lib/cocoa/bindings/NSOutlineView.rb +7 -7
- data/lib/cocoa/bindings/NSOutputStream.rb +7 -7
- data/lib/cocoa/bindings/NSPageLayout.rb +1 -1
- data/lib/cocoa/bindings/NSPasteboard.rb +9 -9
- data/lib/cocoa/bindings/NSPasteboardItem.rb +4 -4
- data/lib/cocoa/bindings/NSPathCell.rb +4 -4
- data/lib/cocoa/bindings/NSPathControl.rb +1 -1
- data/lib/cocoa/bindings/NSPersistentDocument.rb +4 -4
- data/lib/cocoa/bindings/NSPointerArray.rb +2 -2
- data/lib/cocoa/bindings/NSPopUpButton.rb +3 -3
- data/lib/cocoa/bindings/NSPopUpButtonCell.rb +5 -5
- data/lib/cocoa/bindings/NSPopover.rb +1 -1
- data/lib/cocoa/bindings/NSPort.rb +5 -5
- data/lib/cocoa/bindings/NSPortCoder.rb +2 -2
- data/lib/cocoa/bindings/NSPortMessage.rb +1 -1
- data/lib/cocoa/bindings/NSPortNameServer.rb +2 -2
- data/lib/cocoa/bindings/NSPositionalSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSPredicate.rb +2 -2
- data/lib/cocoa/bindings/NSPredicateEditorRowTemplate.rb +2 -2
- data/lib/cocoa/bindings/NSPrintOperation.rb +4 -4
- data/lib/cocoa/bindings/NSPrintPanel.rb +1 -1
- data/lib/cocoa/bindings/NSPrinter.rb +9 -9
- data/lib/cocoa/bindings/NSPropertyListSerialization.rb +7 -7
- data/lib/cocoa/bindings/NSProtocolChecker.rb +2 -2
- data/lib/cocoa/bindings/NSRangeSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSRegularExpression.rb +10 -10
- data/lib/cocoa/bindings/NSRelativeSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSResponder.rb +5 -5
- data/lib/cocoa/bindings/NSRuleEditor.rb +4 -4
- data/lib/cocoa/bindings/NSRulerMarker.rb +2 -2
- data/lib/cocoa/bindings/NSRulerView.rb +4 -4
- data/lib/cocoa/bindings/NSRunLoop.rb +7 -7
- data/lib/cocoa/bindings/NSSavePanel.rb +3 -3
- data/lib/cocoa/bindings/NSScanner.rb +4 -4
- data/lib/cocoa/bindings/NSScreen.rb +1 -1
- data/lib/cocoa/bindings/NSScriptClassDescription.rb +1 -1
- data/lib/cocoa/bindings/NSScriptCoercionHandler.rb +2 -2
- data/lib/cocoa/bindings/NSScriptCommandDescription.rb +1 -1
- data/lib/cocoa/bindings/NSScriptObjectSpecifier.rb +3 -3
- data/lib/cocoa/bindings/NSScriptSuiteRegistry.rb +2 -2
- data/lib/cocoa/bindings/NSScrollView.rb +3 -3
- data/lib/cocoa/bindings/NSScroller.rb +4 -4
- data/lib/cocoa/bindings/NSSegmentedCell.rb +10 -10
- data/lib/cocoa/bindings/NSSegmentedControl.rb +7 -7
- data/lib/cocoa/bindings/NSSet.rb +9 -9
- data/lib/cocoa/bindings/NSSharingService.rb +1 -1
- data/lib/cocoa/bindings/NSSharingServicePicker.rb +1 -1
- data/lib/cocoa/bindings/NSSliderCell.rb +1 -1
- data/lib/cocoa/bindings/NSSocketPort.rb +3 -3
- data/lib/cocoa/bindings/NSSocketPortNameServer.rb +2 -2
- data/lib/cocoa/bindings/NSSortDescriptor.rb +3 -3
- data/lib/cocoa/bindings/NSSound.rb +2 -2
- data/lib/cocoa/bindings/NSSpecifierTest.rb +1 -1
- data/lib/cocoa/bindings/NSSpeechSynthesizer.rb +3 -3
- data/lib/cocoa/bindings/NSSpellChecker.rb +15 -15
- data/lib/cocoa/bindings/NSSpellServer.rb +2 -2
- data/lib/cocoa/bindings/NSSplitView.rb +2 -2
- data/lib/cocoa/bindings/NSStatusItem.rb +1 -1
- data/lib/cocoa/bindings/NSStream.rb +4 -4
- data/lib/cocoa/bindings/NSString.rb +39 -39
- data/lib/cocoa/bindings/NSTabView.rb +1 -1
- data/lib/cocoa/bindings/NSTabViewItem.rb +1 -1
- data/lib/cocoa/bindings/NSTableHeaderCell.rb +1 -1
- data/lib/cocoa/bindings/NSTableView.rb +25 -25
- data/lib/cocoa/bindings/NSTask.rb +1 -1
- data/lib/cocoa/bindings/NSText.rb +4 -4
- data/lib/cocoa/bindings/NSTextAlternatives.rb +1 -1
- data/lib/cocoa/bindings/NSTextBlock.rb +9 -9
- data/lib/cocoa/bindings/NSTextCheckingResult.rb +12 -12
- data/lib/cocoa/bindings/NSTextContainer.rb +1 -1
- data/lib/cocoa/bindings/NSTextList.rb +1 -1
- data/lib/cocoa/bindings/NSTextStorage.rb +1 -1
- data/lib/cocoa/bindings/NSTextTab.rb +2 -2
- data/lib/cocoa/bindings/NSTextTable.rb +3 -3
- data/lib/cocoa/bindings/NSTextTableBlock.rb +1 -1
- data/lib/cocoa/bindings/NSTextView.rb +27 -27
- data/lib/cocoa/bindings/NSThread.rb +2 -2
- data/lib/cocoa/bindings/NSTimeZone.rb +3 -3
- data/lib/cocoa/bindings/NSTimer.rb +3 -3
- data/lib/cocoa/bindings/NSToolbar.rb +1 -1
- data/lib/cocoa/bindings/NSTrackingArea.rb +1 -1
- data/lib/cocoa/bindings/NSTreeController.rb +4 -4
- data/lib/cocoa/bindings/NSTreeNode.rb +1 -1
- data/lib/cocoa/bindings/NSTypesetter.rb +24 -24
- data/lib/cocoa/bindings/NSURL.rb +18 -18
- data/lib/cocoa/bindings/NSURLAuthenticationChallenge.rb +2 -2
- data/lib/cocoa/bindings/NSURLCache.rb +2 -2
- data/lib/cocoa/bindings/NSURLConnection.rb +6 -6
- data/lib/cocoa/bindings/NSURLCredential.rb +4 -4
- data/lib/cocoa/bindings/NSURLCredentialStorage.rb +3 -3
- data/lib/cocoa/bindings/NSURLDownload.rb +3 -3
- data/lib/cocoa/bindings/NSURLHandle.rb +3 -3
- data/lib/cocoa/bindings/NSURLProtectionSpace.rb +2 -2
- data/lib/cocoa/bindings/NSURLProtocol.rb +5 -5
- data/lib/cocoa/bindings/NSURLRequest.rb +2 -2
- data/lib/cocoa/bindings/NSURLResponse.rb +1 -1
- data/lib/cocoa/bindings/NSUbiquitousKeyValueStore.rb +8 -8
- data/lib/cocoa/bindings/NSUnarchiver.rb +3 -3
- data/lib/cocoa/bindings/NSUndoManager.rb +1 -1
- data/lib/cocoa/bindings/NSUniqueIDSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSUserAppleScriptTask.rb +1 -1
- data/lib/cocoa/bindings/NSUserAutomatorTask.rb +1 -1
- data/lib/cocoa/bindings/NSUserDefaults.rb +9 -9
- data/lib/cocoa/bindings/NSUserDefaultsController.rb +1 -1
- data/lib/cocoa/bindings/NSUserScriptTask.rb +1 -1
- data/lib/cocoa/bindings/NSUserUnixTask.rb +1 -1
- data/lib/cocoa/bindings/NSValue.rb +3 -3
- data/lib/cocoa/bindings/NSValueTransformer.rb +1 -1
- data/lib/cocoa/bindings/NSView.rb +34 -34
- data/lib/cocoa/bindings/NSViewController.rb +2 -2
- data/lib/cocoa/bindings/NSWhoseSpecifier.rb +1 -1
- data/lib/cocoa/bindings/NSWindow.rb +22 -22
- data/lib/cocoa/bindings/NSWindowController.rb +2 -2
- data/lib/cocoa/bindings/NSWorkspace.rb +18 -18
- data/lib/cocoa/bindings/NSXMLDTD.rb +6 -6
- data/lib/cocoa/bindings/NSXMLDocument.rb +9 -9
- data/lib/cocoa/bindings/NSXMLElement.rb +7 -7
- data/lib/cocoa/bindings/NSXMLNode.rb +8 -8
- data/lib/cocoa/bindings/NSXPCConnection.rb +1 -1
- data/lib/cocoa/bindings/NSXPCInterface.rb +4 -4
- data/lib/cocoa/extensions.rb +7 -4
- data/lib/cocoa/helpers.rb +99 -179
- data/lib/cocoa/objc.rb +63 -217
- data/lib/cocoa/objc/method_def.rb +314 -0
- data/lib/cocoa/structs/NSRange.rb +3 -0
- data/lib/cocoa/structs/NSRect.rb +3 -0
- data/spec/cocoa/cocoa_spec.rb +99 -0
- data/spec/spec_helper.rb +1 -0
- data/tasks/generate.rake +6 -4
- metadata +37 -37
data/lib/cocoa/structs/NSRect.rb
CHANGED
@@ -20,6 +20,9 @@ module Cocoa
|
|
20
20
|
def CGRectMake x,y,width,height
|
21
21
|
CGRect.new(x: x, y: y, width: width, height: height)
|
22
22
|
end
|
23
|
+
def NSMakeRect x,y,width,height
|
24
|
+
CGRect.new(x: x, y: y, width: width, height: height)
|
25
|
+
end
|
23
26
|
|
24
27
|
NSZeroRect = CGRect.new(x: 0, y: 0, width: 0, height: 0)
|
25
28
|
end
|
data/spec/cocoa/cocoa_spec.rb
CHANGED
@@ -10,6 +10,11 @@ describe 'Cocoa' do
|
|
10
10
|
end
|
11
11
|
Derived.new.get_lazy.class.name.should == 'Cocoa::NSMenu'
|
12
12
|
end
|
13
|
+
it 'should provide ruby superclass' do
|
14
|
+
class Derived < Cocoa::NSObject
|
15
|
+
end
|
16
|
+
Derived.superclass.name.should == 'Cocoa::NSObject'
|
17
|
+
end
|
13
18
|
it 'should provide correct return types for class methods' do
|
14
19
|
Cocoa::NSMutableArray.array.class.name.should == 'Cocoa::NSMutableArray'
|
15
20
|
end
|
@@ -29,4 +34,98 @@ describe 'Cocoa' do
|
|
29
34
|
array.addObject "tail"
|
30
35
|
array.description.to_s.should == "(\n head,\n tail\n)"
|
31
36
|
end
|
37
|
+
|
38
|
+
it 'should call singular methods' do
|
39
|
+
Cocoa::NSString.stringWithString('a string').should == 'a string'
|
40
|
+
end
|
41
|
+
# TODO: known bug
|
42
|
+
# it 'should call variadic singular methods' do
|
43
|
+
# Cocoa::NSSet.setWithObjects "A", "B", "and C"
|
44
|
+
# end
|
45
|
+
|
46
|
+
it 'should return structs' do
|
47
|
+
rect = Cocoa::NSView.alloc.initWithFrame(Cocoa::NSMakeRect(12,34,56,78))
|
48
|
+
rect.frame[:origin][:x].should == 12.0
|
49
|
+
rect.frame[:origin][:y].should == 34.0
|
50
|
+
rect.frame[:size][:width].should == 56.0
|
51
|
+
rect.frame[:size][:height].should == 78.0
|
52
|
+
end
|
53
|
+
|
54
|
+
# context 'callbacks' do
|
55
|
+
it 'should call methods with a argument' do
|
56
|
+
class Derived < Cocoa::NSObject
|
57
|
+
def foobar foo; end
|
58
|
+
end
|
59
|
+
derived = Derived.new
|
60
|
+
derived.expects(:foobar).with(Cocoa::NSString.stringWithString("a argument"))
|
61
|
+
ObjC.msgSend_pointer(derived.object,"foobar:",:pointer,ObjC.String_to_NSString("a argument"))
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should call overridden methods with no arguments' do
|
65
|
+
class Derived < Cocoa::NSObject
|
66
|
+
def accessibilityActionNames; end
|
67
|
+
end
|
68
|
+
derived = Derived.new
|
69
|
+
derived.expects(:accessibilityActionNames)
|
70
|
+
ObjC.msgSend_pointer(derived.object,"accessibilityActionNames")
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should call overridden methods with keword arguments' do
|
74
|
+
# fake ruby 2
|
75
|
+
unbound_method = mock('UnboundMethod')
|
76
|
+
Cocoa::NSObject.expects(:instance_method).with(:tableView).at_least_once.returns(unbound_method)
|
77
|
+
unbound_method.expects(:parameters).at_least_once.returns([[:req, :table_view], [:key, :objectValueForTableColumn], [:key, :row]])
|
78
|
+
class Derived < Cocoa::NSObject
|
79
|
+
#def tableView(table_view, objectValueForTableColumn: column, row: i); end
|
80
|
+
def tableView; end
|
81
|
+
end
|
82
|
+
|
83
|
+
derived = Derived.new
|
84
|
+
derived.expects(:tableView).with(
|
85
|
+
Cocoa::NSString.stringWithString("arg1"),
|
86
|
+
objectValueForTableColumn: Cocoa::NSString.stringWithString("arg2"),
|
87
|
+
row: 123
|
88
|
+
)
|
89
|
+
ObjC.msgSend_pointer(derived.object,"tableView:objectValueForTableColumn:row:",
|
90
|
+
:pointer,ObjC.String_to_NSString("arg1"),
|
91
|
+
:pointer,ObjC.String_to_NSString("arg2"),
|
92
|
+
:int,123)
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should call overridden methods with keword arguments and return a value' do
|
96
|
+
# fake ruby 2
|
97
|
+
unbound_method = mock('UnboundMethod')
|
98
|
+
Cocoa::NSObject.expects(:instance_method).with(:tableView).at_least_once.returns(unbound_method)
|
99
|
+
unbound_method.expects(:parameters).at_least_once.returns([[:req, :table_view], [:key, :objectValueForTableColumn], [:key, :row]])
|
100
|
+
class Derived < Cocoa::NSObject
|
101
|
+
#def tableView(table_view, objectValueForTableColumn: column, row: i); end
|
102
|
+
def tableView *args; "returned value"; end
|
103
|
+
end
|
104
|
+
|
105
|
+
derived = Derived.new
|
106
|
+
ret = ObjC.msgSend_pointer(derived.object,"tableView:objectValueForTableColumn:row:",
|
107
|
+
:pointer,ObjC.String_to_NSString("arg1"),
|
108
|
+
:pointer,ObjC.String_to_NSString("arg2"),
|
109
|
+
:int,123)
|
110
|
+
ObjC.NSString_to_String(ret).to_s.should == "returned value"
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'should call overridden methods covered by splat' do
|
114
|
+
class Derived < Cocoa::NSObject
|
115
|
+
def tableView *args; end
|
116
|
+
end
|
117
|
+
|
118
|
+
derived = Derived.new
|
119
|
+
derived.expects(:tableView).with(
|
120
|
+
Cocoa::NSString.stringWithString("arg1"),
|
121
|
+
objectValueForTableColumn: Cocoa::NSString.stringWithString("arg2"),
|
122
|
+
row: 123
|
123
|
+
)
|
124
|
+
ret = ObjC.msgSend_pointer(derived.object,"tableView:objectValueForTableColumn:row:",
|
125
|
+
:pointer,ObjC.String_to_NSString("arg1"),
|
126
|
+
:pointer,ObjC.String_to_NSString("arg2"),
|
127
|
+
:int,123)
|
128
|
+
end
|
129
|
+
|
130
|
+
# end
|
32
131
|
end
|
data/spec/spec_helper.rb
CHANGED
data/tasks/generate.rake
CHANGED
@@ -8,7 +8,9 @@ task :generate do
|
|
8
8
|
sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
|
9
9
|
frameworks = ['AppKit','Foundation','QuartzCore','CoreGraphics','CoreText','CoreFoundation']
|
10
10
|
FileUtils.mkdir_p('tmp')
|
11
|
-
|
11
|
+
Bundler.with_clean_env do
|
12
|
+
`/usr/bin/gen_bridge_metadata --no-32-bit -F complete #{frameworks.map{ |fw| "-f #{sdkroot}/System/Library/Frameworks/#{fw}.framework" }.join(' ')} -c "-isysroot #{sdkroot} #{frameworks.map{ |fw| "-framework #{fw}" }.join(' ')} -O0 -g" -o tmp/Foundation.bridgesupport`
|
13
|
+
end
|
12
14
|
|
13
15
|
# TODO: This spaghetti can be done both dynamicly and properly
|
14
16
|
enums = {}
|
@@ -23,9 +25,9 @@ task :generate do
|
|
23
25
|
enums[node['name']] = node['value64'] || node['value']
|
24
26
|
when 'class'
|
25
27
|
out = File.open("lib/cocoa/bindings/#{node['name']}.rb",'w')
|
26
|
-
klass_name =
|
28
|
+
klass_name = ObjC::String_to_NSString(node['name'])
|
27
29
|
klass = Cocoa::NSClassFromString(klass_name)
|
28
|
-
superclass_name =
|
30
|
+
superclass_name = ObjC::NSString_to_String(Cocoa::NSStringFromClass(ObjC.msgSend_pointer(klass,'superclass')))
|
29
31
|
out.puts "# generated by 'rake generate'"
|
30
32
|
out.puts "require 'cocoa/bindings/#{superclass_name}'" unless superclass_name == '(NULL)'
|
31
33
|
out.puts "module Cocoa"
|
@@ -61,7 +63,7 @@ task :generate do
|
|
61
63
|
next if method==nil
|
62
64
|
method = "self.#{method}" if node['class_method']
|
63
65
|
methods[method] ||= []
|
64
|
-
h = { args: selector.count(':'), names: selector.split(':')[1..-1], :types => arg_types, :retval => retval }
|
66
|
+
h = { args: selector.count(':'), names: selector.split(':')[1..-1].map(&:to_sym), :types => arg_types, :retval => retval }
|
65
67
|
h[:variadic] = true if node['variadic']
|
66
68
|
methods[method] << h unless methods[method].include?(h)
|
67
69
|
else
|
metadata
CHANGED
@@ -1,126 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Patrick Hanevold
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-04-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: ffi
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bacon
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha-on-bacon
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rdoc
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- - ~>
|
73
|
+
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '3.12'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- - ~>
|
80
|
+
- - "~>"
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '3.12'
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: bundler
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
|
-
- - ~>
|
87
|
+
- - "~>"
|
84
88
|
- !ruby/object:Gem::Version
|
85
89
|
version: '1.0'
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- - ~>
|
94
|
+
- - "~>"
|
92
95
|
- !ruby/object:Gem::Version
|
93
96
|
version: '1.0'
|
94
97
|
- !ruby/object:Gem::Dependency
|
95
98
|
name: jeweler
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
100
|
requirements:
|
99
|
-
- - ~>
|
101
|
+
- - "~>"
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
version: 2.0.1
|
102
104
|
type: :development
|
103
105
|
prerelease: false
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
|
-
- - ~>
|
108
|
+
- - "~>"
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: 2.0.1
|
110
111
|
- !ruby/object:Gem::Dependency
|
111
112
|
name: simplecov
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
121
|
requirements:
|
123
|
-
- -
|
122
|
+
- - ">="
|
124
123
|
- !ruby/object:Gem::Version
|
125
124
|
version: '0'
|
126
125
|
description: Ruby FFI bindings for the OSX Cocoa API
|
@@ -138,6 +137,7 @@ files:
|
|
138
137
|
- VERSION
|
139
138
|
- cocoa.gemspec
|
140
139
|
- examples/hello_world.rb
|
140
|
+
- examples/table_view.rb
|
141
141
|
- examples/window.rb
|
142
142
|
- lib/cocoa.rb
|
143
143
|
- lib/cocoa/bindings/CAAnimation.rb
|
@@ -530,6 +530,7 @@ files:
|
|
530
530
|
- lib/cocoa/extensions.rb
|
531
531
|
- lib/cocoa/helpers.rb
|
532
532
|
- lib/cocoa/objc.rb
|
533
|
+
- lib/cocoa/objc/method_def.rb
|
533
534
|
- lib/cocoa/structs/NSPoint.rb
|
534
535
|
- lib/cocoa/structs/NSRange.rb
|
535
536
|
- lib/cocoa/structs/NSRect.rb
|
@@ -542,26 +543,25 @@ files:
|
|
542
543
|
homepage: http://github.com/patrickhno/cocoa
|
543
544
|
licenses:
|
544
545
|
- MIT
|
546
|
+
metadata: {}
|
545
547
|
post_install_message:
|
546
548
|
rdoc_options: []
|
547
549
|
require_paths:
|
548
550
|
- lib
|
549
551
|
required_ruby_version: !ruby/object:Gem::Requirement
|
550
|
-
none: false
|
551
552
|
requirements:
|
552
|
-
- -
|
553
|
+
- - ">="
|
553
554
|
- !ruby/object:Gem::Version
|
554
555
|
version: '0'
|
555
556
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
556
|
-
none: false
|
557
557
|
requirements:
|
558
|
-
- -
|
558
|
+
- - ">="
|
559
559
|
- !ruby/object:Gem::Version
|
560
560
|
version: '0'
|
561
561
|
requirements: []
|
562
562
|
rubyforge_project:
|
563
|
-
rubygems_version:
|
563
|
+
rubygems_version: 2.2.0
|
564
564
|
signing_key:
|
565
|
-
specification_version:
|
565
|
+
specification_version: 4
|
566
566
|
summary: Ruby bindings for Cocoa
|
567
567
|
test_files: []
|