cocoa 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (279) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +1 -0
  3. data/VERSION +1 -1
  4. data/cocoa.gemspec +11 -5
  5. data/examples/table_view.rb +72 -0
  6. data/lib/cocoa/bindings/CAConstraint.rb +2 -2
  7. data/lib/cocoa/bindings/CALayer.rb +6 -6
  8. data/lib/cocoa/bindings/CAMediaTimingFunction.rb +1 -1
  9. data/lib/cocoa/bindings/CAOpenGLLayer.rb +2 -2
  10. data/lib/cocoa/bindings/CARenderer.rb +2 -2
  11. data/lib/cocoa/bindings/CATransaction.rb +1 -1
  12. data/lib/cocoa/bindings/CIImage.rb +2 -2
  13. data/lib/cocoa/bindings/NSATSTypesetter.rb +21 -21
  14. data/lib/cocoa/bindings/NSAffineTransform.rb +2 -2
  15. data/lib/cocoa/bindings/NSAlert.rb +2 -2
  16. data/lib/cocoa/bindings/NSAnimation.rb +3 -3
  17. data/lib/cocoa/bindings/NSAnimationContext.rb +1 -1
  18. data/lib/cocoa/bindings/NSAppleEventDescriptor.rb +8 -8
  19. data/lib/cocoa/bindings/NSAppleEventManager.rb +3 -3
  20. data/lib/cocoa/bindings/NSAppleScript.rb +2 -2
  21. data/lib/cocoa/bindings/NSApplication.rb +19 -19
  22. data/lib/cocoa/bindings/NSArchiver.rb +3 -3
  23. data/lib/cocoa/bindings/NSArray.rb +21 -21
  24. data/lib/cocoa/bindings/NSArrayController.rb +2 -2
  25. data/lib/cocoa/bindings/NSAssertionHandler.rb +2 -2
  26. data/lib/cocoa/bindings/NSAttributedString.rb +29 -29
  27. data/lib/cocoa/bindings/NSBezierPath.rb +15 -15
  28. data/lib/cocoa/bindings/NSBitmapImageRep.rb +16 -16
  29. data/lib/cocoa/bindings/NSBrowser.rb +16 -16
  30. data/lib/cocoa/bindings/NSBundle.rb +14 -14
  31. data/lib/cocoa/bindings/NSButton.rb +2 -2
  32. data/lib/cocoa/bindings/NSButtonCell.rb +6 -6
  33. data/lib/cocoa/bindings/NSByteCountFormatter.rb +1 -1
  34. data/lib/cocoa/bindings/NSCache.rb +1 -1
  35. data/lib/cocoa/bindings/NSCachedImageRep.rb +2 -2
  36. data/lib/cocoa/bindings/NSCachedURLResponse.rb +1 -1
  37. data/lib/cocoa/bindings/NSCalendar.rb +4 -4
  38. data/lib/cocoa/bindings/NSCalendarDate.rb +7 -7
  39. data/lib/cocoa/bindings/NSCell.rb +21 -21
  40. data/lib/cocoa/bindings/NSClassDescription.rb +1 -1
  41. data/lib/cocoa/bindings/NSCoder.rb +20 -20
  42. data/lib/cocoa/bindings/NSCollectionView.rb +3 -3
  43. data/lib/cocoa/bindings/NSColor.rb +17 -17
  44. data/lib/cocoa/bindings/NSColorList.rb +3 -3
  45. data/lib/cocoa/bindings/NSColorPanel.rb +1 -1
  46. data/lib/cocoa/bindings/NSColorPicker.rb +2 -2
  47. data/lib/cocoa/bindings/NSComboBox.rb +1 -1
  48. data/lib/cocoa/bindings/NSComboBoxCell.rb +1 -1
  49. data/lib/cocoa/bindings/NSComparisonPredicate.rb +2 -2
  50. data/lib/cocoa/bindings/NSCompoundPredicate.rb +1 -1
  51. data/lib/cocoa/bindings/NSConditionLock.rb +1 -1
  52. data/lib/cocoa/bindings/NSConnection.rb +6 -6
  53. data/lib/cocoa/bindings/NSControl.rb +2 -2
  54. data/lib/cocoa/bindings/NSController.rb +1 -1
  55. data/lib/cocoa/bindings/NSCursor.rb +1 -1
  56. data/lib/cocoa/bindings/NSCustomImageRep.rb +2 -2
  57. data/lib/cocoa/bindings/NSData.rb +12 -12
  58. data/lib/cocoa/bindings/NSDataDetector.rb +2 -2
  59. data/lib/cocoa/bindings/NSDate.rb +5 -5
  60. data/lib/cocoa/bindings/NSDateFormatter.rb +4 -4
  61. data/lib/cocoa/bindings/NSDecimalNumber.rb +10 -10
  62. data/lib/cocoa/bindings/NSDecimalNumberHandler.rb +2 -2
  63. data/lib/cocoa/bindings/NSDictionary.rb +12 -12
  64. data/lib/cocoa/bindings/NSDistantObject.rb +4 -4
  65. data/lib/cocoa/bindings/NSDistributedNotificationCenter.rb +3 -3
  66. data/lib/cocoa/bindings/NSDocument.rb +41 -41
  67. data/lib/cocoa/bindings/NSDocumentController.rb +16 -16
  68. data/lib/cocoa/bindings/NSDraggingItem.rb +1 -1
  69. data/lib/cocoa/bindings/NSDraggingSession.rb +1 -1
  70. data/lib/cocoa/bindings/NSDrawer.rb +1 -1
  71. data/lib/cocoa/bindings/NSError.rb +2 -2
  72. data/lib/cocoa/bindings/NSEvent.rb +9 -9
  73. data/lib/cocoa/bindings/NSException.rb +3 -3
  74. data/lib/cocoa/bindings/NSExpression.rb +8 -8
  75. data/lib/cocoa/bindings/NSFileCoordinator.rb +4 -4
  76. data/lib/cocoa/bindings/NSFileHandle.rb +4 -4
  77. data/lib/cocoa/bindings/NSFileManager.rb +39 -39
  78. data/lib/cocoa/bindings/NSFileVersion.rb +4 -4
  79. data/lib/cocoa/bindings/NSFileWrapper.rb +6 -6
  80. data/lib/cocoa/bindings/NSFont.rb +4 -4
  81. data/lib/cocoa/bindings/NSFontCollection.rb +5 -5
  82. data/lib/cocoa/bindings/NSFontDescriptor.rb +1 -1
  83. data/lib/cocoa/bindings/NSFontManager.rb +10 -10
  84. data/lib/cocoa/bindings/NSFontPanel.rb +1 -1
  85. data/lib/cocoa/bindings/NSForm.rb +1 -1
  86. data/lib/cocoa/bindings/NSFormatter.rb +3 -3
  87. data/lib/cocoa/bindings/NSGlyphGenerator.rb +1 -1
  88. data/lib/cocoa/bindings/NSGlyphInfo.rb +3 -3
  89. data/lib/cocoa/bindings/NSGradient.rb +7 -7
  90. data/lib/cocoa/bindings/NSGraphicsContext.rb +1 -1
  91. data/lib/cocoa/bindings/NSHTTPCookie.rb +1 -1
  92. data/lib/cocoa/bindings/NSHTTPCookieStorage.rb +1 -1
  93. data/lib/cocoa/bindings/NSHTTPURLResponse.rb +1 -1
  94. data/lib/cocoa/bindings/NSHashTable.rb +2 -2
  95. data/lib/cocoa/bindings/NSHelpManager.rb +4 -4
  96. data/lib/cocoa/bindings/NSImage.rb +11 -11
  97. data/lib/cocoa/bindings/NSImageRep.rb +2 -2
  98. data/lib/cocoa/bindings/NSIndexPath.rb +2 -2
  99. data/lib/cocoa/bindings/NSIndexSet.rb +9 -9
  100. data/lib/cocoa/bindings/NSIndexSpecifier.rb +1 -1
  101. data/lib/cocoa/bindings/NSInputManager.rb +2 -2
  102. data/lib/cocoa/bindings/NSInputServer.rb +1 -1
  103. data/lib/cocoa/bindings/NSInputStream.rb +2 -2
  104. data/lib/cocoa/bindings/NSInvocation.rb +2 -2
  105. data/lib/cocoa/bindings/NSInvocationOperation.rb +1 -1
  106. data/lib/cocoa/bindings/NSJSONSerialization.rb +4 -4
  107. data/lib/cocoa/bindings/NSKeyedArchiver.rb +12 -12
  108. data/lib/cocoa/bindings/NSKeyedUnarchiver.rb +3 -3
  109. data/lib/cocoa/bindings/NSLayoutConstraint.rb +2 -2
  110. data/lib/cocoa/bindings/NSLayoutManager.rb +59 -59
  111. data/lib/cocoa/bindings/NSLinguisticTagger.rb +8 -8
  112. data/lib/cocoa/bindings/NSLocale.rb +1 -1
  113. data/lib/cocoa/bindings/NSMachBootstrapServer.rb +2 -2
  114. data/lib/cocoa/bindings/NSMachPort.rb +4 -4
  115. data/lib/cocoa/bindings/NSMapTable.rb +4 -4
  116. data/lib/cocoa/bindings/NSMatrix.rb +20 -20
  117. data/lib/cocoa/bindings/NSMenu.rb +7 -7
  118. data/lib/cocoa/bindings/NSMenuItem.rb +1 -1
  119. data/lib/cocoa/bindings/NSMenuItemCell.rb +6 -6
  120. data/lib/cocoa/bindings/NSMessagePortNameServer.rb +1 -1
  121. data/lib/cocoa/bindings/NSMetadataQuery.rb +1 -1
  122. data/lib/cocoa/bindings/NSMutableArray.rb +12 -12
  123. data/lib/cocoa/bindings/NSMutableAttributedString.rb +11 -11
  124. data/lib/cocoa/bindings/NSMutableData.rb +2 -2
  125. data/lib/cocoa/bindings/NSMutableDictionary.rb +2 -2
  126. data/lib/cocoa/bindings/NSMutableIndexSet.rb +1 -1
  127. data/lib/cocoa/bindings/NSMutableOrderedSet.rb +11 -11
  128. data/lib/cocoa/bindings/NSMutableString.rb +3 -3
  129. data/lib/cocoa/bindings/NSMutableURLRequest.rb +2 -2
  130. data/lib/cocoa/bindings/NSNameSpecifier.rb +1 -1
  131. data/lib/cocoa/bindings/NSNetService.rb +4 -4
  132. data/lib/cocoa/bindings/NSNetServiceBrowser.rb +3 -3
  133. data/lib/cocoa/bindings/NSNib.rb +4 -4
  134. data/lib/cocoa/bindings/NSNibConnector.rb +1 -1
  135. data/lib/cocoa/bindings/NSNotification.rb +1 -1
  136. data/lib/cocoa/bindings/NSNotificationCenter.rb +4 -4
  137. data/lib/cocoa/bindings/NSNotificationQueue.rb +2 -2
  138. data/lib/cocoa/bindings/NSNumberFormatter.rb +2 -2
  139. data/lib/cocoa/bindings/NSObject.rb +142 -142
  140. data/lib/cocoa/bindings/NSObjectController.rb +1 -1
  141. data/lib/cocoa/bindings/NSOpenGLContext.rb +8 -8
  142. data/lib/cocoa/bindings/NSOpenGLLayer.rb +2 -2
  143. data/lib/cocoa/bindings/NSOpenGLPixelBuffer.rb +1 -1
  144. data/lib/cocoa/bindings/NSOpenGLPixelFormat.rb +1 -1
  145. data/lib/cocoa/bindings/NSOpenGLView.rb +1 -1
  146. data/lib/cocoa/bindings/NSOpenPanel.rb +3 -3
  147. data/lib/cocoa/bindings/NSOperationQueue.rb +1 -1
  148. data/lib/cocoa/bindings/NSOrderedSet.rb +21 -21
  149. data/lib/cocoa/bindings/NSOrthography.rb +2 -2
  150. data/lib/cocoa/bindings/NSOutlineView.rb +7 -7
  151. data/lib/cocoa/bindings/NSOutputStream.rb +7 -7
  152. data/lib/cocoa/bindings/NSPageLayout.rb +1 -1
  153. data/lib/cocoa/bindings/NSPasteboard.rb +9 -9
  154. data/lib/cocoa/bindings/NSPasteboardItem.rb +4 -4
  155. data/lib/cocoa/bindings/NSPathCell.rb +4 -4
  156. data/lib/cocoa/bindings/NSPathControl.rb +1 -1
  157. data/lib/cocoa/bindings/NSPersistentDocument.rb +4 -4
  158. data/lib/cocoa/bindings/NSPointerArray.rb +2 -2
  159. data/lib/cocoa/bindings/NSPopUpButton.rb +3 -3
  160. data/lib/cocoa/bindings/NSPopUpButtonCell.rb +5 -5
  161. data/lib/cocoa/bindings/NSPopover.rb +1 -1
  162. data/lib/cocoa/bindings/NSPort.rb +5 -5
  163. data/lib/cocoa/bindings/NSPortCoder.rb +2 -2
  164. data/lib/cocoa/bindings/NSPortMessage.rb +1 -1
  165. data/lib/cocoa/bindings/NSPortNameServer.rb +2 -2
  166. data/lib/cocoa/bindings/NSPositionalSpecifier.rb +1 -1
  167. data/lib/cocoa/bindings/NSPredicate.rb +2 -2
  168. data/lib/cocoa/bindings/NSPredicateEditorRowTemplate.rb +2 -2
  169. data/lib/cocoa/bindings/NSPrintOperation.rb +4 -4
  170. data/lib/cocoa/bindings/NSPrintPanel.rb +1 -1
  171. data/lib/cocoa/bindings/NSPrinter.rb +9 -9
  172. data/lib/cocoa/bindings/NSPropertyListSerialization.rb +7 -7
  173. data/lib/cocoa/bindings/NSProtocolChecker.rb +2 -2
  174. data/lib/cocoa/bindings/NSRangeSpecifier.rb +1 -1
  175. data/lib/cocoa/bindings/NSRegularExpression.rb +10 -10
  176. data/lib/cocoa/bindings/NSRelativeSpecifier.rb +1 -1
  177. data/lib/cocoa/bindings/NSResponder.rb +5 -5
  178. data/lib/cocoa/bindings/NSRuleEditor.rb +4 -4
  179. data/lib/cocoa/bindings/NSRulerMarker.rb +2 -2
  180. data/lib/cocoa/bindings/NSRulerView.rb +4 -4
  181. data/lib/cocoa/bindings/NSRunLoop.rb +7 -7
  182. data/lib/cocoa/bindings/NSSavePanel.rb +3 -3
  183. data/lib/cocoa/bindings/NSScanner.rb +4 -4
  184. data/lib/cocoa/bindings/NSScreen.rb +1 -1
  185. data/lib/cocoa/bindings/NSScriptClassDescription.rb +1 -1
  186. data/lib/cocoa/bindings/NSScriptCoercionHandler.rb +2 -2
  187. data/lib/cocoa/bindings/NSScriptCommandDescription.rb +1 -1
  188. data/lib/cocoa/bindings/NSScriptObjectSpecifier.rb +3 -3
  189. data/lib/cocoa/bindings/NSScriptSuiteRegistry.rb +2 -2
  190. data/lib/cocoa/bindings/NSScrollView.rb +3 -3
  191. data/lib/cocoa/bindings/NSScroller.rb +4 -4
  192. data/lib/cocoa/bindings/NSSegmentedCell.rb +10 -10
  193. data/lib/cocoa/bindings/NSSegmentedControl.rb +7 -7
  194. data/lib/cocoa/bindings/NSSet.rb +9 -9
  195. data/lib/cocoa/bindings/NSSharingService.rb +1 -1
  196. data/lib/cocoa/bindings/NSSharingServicePicker.rb +1 -1
  197. data/lib/cocoa/bindings/NSSliderCell.rb +1 -1
  198. data/lib/cocoa/bindings/NSSocketPort.rb +3 -3
  199. data/lib/cocoa/bindings/NSSocketPortNameServer.rb +2 -2
  200. data/lib/cocoa/bindings/NSSortDescriptor.rb +3 -3
  201. data/lib/cocoa/bindings/NSSound.rb +2 -2
  202. data/lib/cocoa/bindings/NSSpecifierTest.rb +1 -1
  203. data/lib/cocoa/bindings/NSSpeechSynthesizer.rb +3 -3
  204. data/lib/cocoa/bindings/NSSpellChecker.rb +15 -15
  205. data/lib/cocoa/bindings/NSSpellServer.rb +2 -2
  206. data/lib/cocoa/bindings/NSSplitView.rb +2 -2
  207. data/lib/cocoa/bindings/NSStatusItem.rb +1 -1
  208. data/lib/cocoa/bindings/NSStream.rb +4 -4
  209. data/lib/cocoa/bindings/NSString.rb +39 -39
  210. data/lib/cocoa/bindings/NSTabView.rb +1 -1
  211. data/lib/cocoa/bindings/NSTabViewItem.rb +1 -1
  212. data/lib/cocoa/bindings/NSTableHeaderCell.rb +1 -1
  213. data/lib/cocoa/bindings/NSTableView.rb +25 -25
  214. data/lib/cocoa/bindings/NSTask.rb +1 -1
  215. data/lib/cocoa/bindings/NSText.rb +4 -4
  216. data/lib/cocoa/bindings/NSTextAlternatives.rb +1 -1
  217. data/lib/cocoa/bindings/NSTextBlock.rb +9 -9
  218. data/lib/cocoa/bindings/NSTextCheckingResult.rb +12 -12
  219. data/lib/cocoa/bindings/NSTextContainer.rb +1 -1
  220. data/lib/cocoa/bindings/NSTextList.rb +1 -1
  221. data/lib/cocoa/bindings/NSTextStorage.rb +1 -1
  222. data/lib/cocoa/bindings/NSTextTab.rb +2 -2
  223. data/lib/cocoa/bindings/NSTextTable.rb +3 -3
  224. data/lib/cocoa/bindings/NSTextTableBlock.rb +1 -1
  225. data/lib/cocoa/bindings/NSTextView.rb +27 -27
  226. data/lib/cocoa/bindings/NSThread.rb +2 -2
  227. data/lib/cocoa/bindings/NSTimeZone.rb +3 -3
  228. data/lib/cocoa/bindings/NSTimer.rb +3 -3
  229. data/lib/cocoa/bindings/NSToolbar.rb +1 -1
  230. data/lib/cocoa/bindings/NSTrackingArea.rb +1 -1
  231. data/lib/cocoa/bindings/NSTreeController.rb +4 -4
  232. data/lib/cocoa/bindings/NSTreeNode.rb +1 -1
  233. data/lib/cocoa/bindings/NSTypesetter.rb +24 -24
  234. data/lib/cocoa/bindings/NSURL.rb +18 -18
  235. data/lib/cocoa/bindings/NSURLAuthenticationChallenge.rb +2 -2
  236. data/lib/cocoa/bindings/NSURLCache.rb +2 -2
  237. data/lib/cocoa/bindings/NSURLConnection.rb +6 -6
  238. data/lib/cocoa/bindings/NSURLCredential.rb +4 -4
  239. data/lib/cocoa/bindings/NSURLCredentialStorage.rb +3 -3
  240. data/lib/cocoa/bindings/NSURLDownload.rb +3 -3
  241. data/lib/cocoa/bindings/NSURLHandle.rb +3 -3
  242. data/lib/cocoa/bindings/NSURLProtectionSpace.rb +2 -2
  243. data/lib/cocoa/bindings/NSURLProtocol.rb +5 -5
  244. data/lib/cocoa/bindings/NSURLRequest.rb +2 -2
  245. data/lib/cocoa/bindings/NSURLResponse.rb +1 -1
  246. data/lib/cocoa/bindings/NSUbiquitousKeyValueStore.rb +8 -8
  247. data/lib/cocoa/bindings/NSUnarchiver.rb +3 -3
  248. data/lib/cocoa/bindings/NSUndoManager.rb +1 -1
  249. data/lib/cocoa/bindings/NSUniqueIDSpecifier.rb +1 -1
  250. data/lib/cocoa/bindings/NSUserAppleScriptTask.rb +1 -1
  251. data/lib/cocoa/bindings/NSUserAutomatorTask.rb +1 -1
  252. data/lib/cocoa/bindings/NSUserDefaults.rb +9 -9
  253. data/lib/cocoa/bindings/NSUserDefaultsController.rb +1 -1
  254. data/lib/cocoa/bindings/NSUserScriptTask.rb +1 -1
  255. data/lib/cocoa/bindings/NSUserUnixTask.rb +1 -1
  256. data/lib/cocoa/bindings/NSValue.rb +3 -3
  257. data/lib/cocoa/bindings/NSValueTransformer.rb +1 -1
  258. data/lib/cocoa/bindings/NSView.rb +34 -34
  259. data/lib/cocoa/bindings/NSViewController.rb +2 -2
  260. data/lib/cocoa/bindings/NSWhoseSpecifier.rb +1 -1
  261. data/lib/cocoa/bindings/NSWindow.rb +22 -22
  262. data/lib/cocoa/bindings/NSWindowController.rb +2 -2
  263. data/lib/cocoa/bindings/NSWorkspace.rb +18 -18
  264. data/lib/cocoa/bindings/NSXMLDTD.rb +6 -6
  265. data/lib/cocoa/bindings/NSXMLDocument.rb +9 -9
  266. data/lib/cocoa/bindings/NSXMLElement.rb +7 -7
  267. data/lib/cocoa/bindings/NSXMLNode.rb +8 -8
  268. data/lib/cocoa/bindings/NSXPCConnection.rb +1 -1
  269. data/lib/cocoa/bindings/NSXPCInterface.rb +4 -4
  270. data/lib/cocoa/extensions.rb +7 -4
  271. data/lib/cocoa/helpers.rb +99 -179
  272. data/lib/cocoa/objc.rb +63 -217
  273. data/lib/cocoa/objc/method_def.rb +314 -0
  274. data/lib/cocoa/structs/NSRange.rb +3 -0
  275. data/lib/cocoa/structs/NSRect.rb +3 -0
  276. data/spec/cocoa/cocoa_spec.rb +99 -0
  277. data/spec/spec_helper.rb +1 -0
  278. data/tasks/generate.rake +6 -4
  279. metadata +37 -37
@@ -20,4 +20,7 @@ module Cocoa
20
20
  def CFRangeMake loc,len
21
21
  CFRange.new(location: loc, length: len)
22
22
  end
23
+ def NSMakeRange loc,len
24
+ NSRange.new(location: loc, length: len)
25
+ end
23
26
  end
@@ -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
@@ -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
@@ -36,3 +36,4 @@ $: << File.expand_path(File.join(File.dirname(__FILE__), '/../lib'))
36
36
  # end
37
37
 
38
38
  require 'bacon'
39
+ require 'mocha-on-bacon'
@@ -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
- `/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`
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 = Cocoa::String_to_NSString(node['name'])
28
+ klass_name = ObjC::String_to_NSString(node['name'])
27
29
  klass = Cocoa::NSClassFromString(klass_name)
28
- superclass_name = Cocoa::NSString_to_String(Cocoa::NSStringFromClass(ObjC.msgSend(klass,'superclass')))
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.3
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-03-27 00:00:00.000000000 Z
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: 1.8.23
563
+ rubygems_version: 2.2.0
564
564
  signing_key:
565
- specification_version: 3
565
+ specification_version: 4
566
566
  summary: Ruby bindings for Cocoa
567
567
  test_files: []