cocoa 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []