<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">John--<div><br></div><div>I've started a github repo at&nbsp;<a href="http://github.com/sxross/raiseman-rb">http://github.com/sxross/raiseman-rb</a>, but it doesn't yet reflect that I can now do initial editing of an inserted row, but undo is not there yet.</div><div><br></div><div>Thanks,</div><div><br></div><div>Steve</div><div><br><div><br><div><div>On Oct 26, 2009, at 1:22 AM, John Shea wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Steve,<div>did you solve this one?</div><div>if not perhaps you could post somewhere the MyDocument.rb code for us to look at?</div><div>Cheers,</div><div>J<br><br><div class="gmail_quote">On Sun, Oct 25, 2009 at 7:17 PM, s.ross <span dir="ltr">&lt;<a href="mailto:cwdinfo@gmail.com">cwdinfo@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">I'm trying to implement the RaiseMan example from Aaron Hillegass's book in MacRuby. All has gone pretty well until I reached undo. The idea is to handle the insertObject message each time a Person is inserted and manipulate the undo stack.<div>
<br></div><div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">&nbsp;&nbsp;<span style="color:rgb(180, 20, 161)">def</span>&nbsp;insertObject(p, inEmployeesAtIndex:index)</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(200, 42, 37)">
<span style="color:rgb(0, 0, 0)">&nbsp; &nbsp; NSLog(</span>"adding #{p} to #{employees}"<span style="color:rgb(0, 0, 0)">) # &lt;= Not called, huh?</span></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">
&nbsp; &nbsp; undo = @undoManager</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">&nbsp; &nbsp; undo.prepareWithInvocationTarget(<span style="color:rgb(180, 20, 161)">self</span>, removeObjectFromEmployeesAtIndex:index)</div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">&nbsp; &nbsp;&nbsp;<span style="color:rgb(180, 20, 161)">if</span>&nbsp;!undo.isUndoing</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">
&nbsp; &nbsp; &nbsp; undo.setActionName(<span style="color:rgb(200, 42, 37)">"Insert Person"</span>)</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">&nbsp; &nbsp;&nbsp;<span style="color:rgb(180, 20, 161)">end</span></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">&nbsp; &nbsp; employees.insertObject(p, atIndex:index)</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<span style="color:rgb(0, 0, 0)">&nbsp;&nbsp;</span>end</div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><br></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">The Objective-C signature for this is:</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium">- (void)insertObject:(Person *)p inEmployeesAtIndex:(int)index</span></font></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">Works in Objective-C but in my Ruby, the method is not recognized as a handler to be invoked when a Person object is to be inserted in the employees array. I should note that I created the employees array using Ruby syntax:</span></font></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">@employees ||= []</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br>
</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium">Changing this to:</span></font></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">@employees ||= NSMutableArray.alloc.init</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium">makes no difference in this scenario.</span></font></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">Any hints with respect to what I'm missing here?</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium">Thanks,</span></font></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)"><font color="#000000" face="Helvetica"><span style="font-size:medium"><br></span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(180, 20, 161)">
<font color="#000000" face="Helvetica"><span style="font-size:medium">Steve</span></font></div><div><br></div></div></div><br>_______________________________________________<br>
MacRuby-devel mailing list<br>
<a href="mailto:MacRuby-devel@lists.macosforge.org">MacRuby-devel@lists.macosforge.org</a><br>
<a href="http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel" target="_blank">http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>MacRuby-devel mailing list<br><a href="mailto:MacRuby-devel@lists.macosforge.org">MacRuby-devel@lists.macosforge.org</a><br>http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel<br></blockquote></div><br></div></div></body></html>