Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-17 Thread Matt Aimonetti
you could also create a module and mix it in with the objects you want have the custom methods defined in. - Matt On Thu, Nov 17, 2011 at 3:21 PM, Kam Dahlin wrote: > If you didn't want to use a category, you could do: > > orderedSet = NSOrderedSet.orderedSetWithArray(["1", "2", "3"]) > ordered

Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-17 Thread Kam Dahlin
If you didn't want to use a category, you could do: orderedSet = NSOrderedSet.orderedSetWithArray(["1", "2", "3"]) orderedSet.class.send(:define_method, :each) do self.array.each do |item| yield item end end orderedSet.each do |item| puts item end This method also has the advant

Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-17 Thread techzen
The Cbjective-C way to handle this would be to put a category that provided an `each` method on NSOrderedSet. Then when you called `each` it would just work. Ruby has a similar functionality but I can't remember right now what it's called. Using a category would be optimal in the case of Core

Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-16 Thread Mateus Armando
this should work, you can still use enumerateIndexesUsingBlock! framework 'Foundation' class NSIndexSet def each return self.to_enum unless block_given? self.enumerateIndexesUsingBlock -> idx, stop { yield idx } end end indexes = NSIndexSet.indexSetWithIndexesInRange NSMakeRange(0,

Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-16 Thread Henry Maddocks
On 17/11/2011, at 4:07 AM, Daniel Westendorf wrote: > Give it some ruby love! I found this somewhere in the interwebs to iterate > over an NSIndexSet, which should be similar. https://gist.github.com/1370277 And while you're at it, check out Bean... https://github.com/dj2/Bean Lots more helpf

Re: [MacRuby-devel] rubyfying Cocoa iterators

2011-11-16 Thread Daniel Westendorf
Give it some ruby love! I found this somewhere in the interwebs to iterate over an NSIndexSet, which should be similar. https://gist.github.com/1370277 dw On Wed, Nov 16, 2011 at 3:11 AM, Jean-Denis MUYS wrote: > I have this ordered Core Data to-many relation named "operations" that I > want to

[MacRuby-devel] rubyfying Cocoa iterators

2011-11-16 Thread Jean-Denis MUYS
I have this ordered Core Data to-many relation named "operations" that I want to iterate over. I wrote: self.operations.each { | operation | operation.doSomething } However this fails because self.operations returns an NSOrderedSet and NSOrderedSet doesn't have an 'each' method. I was able