You can't call a C# extension method off of the object. You might try creating a mixin to add a method_missing to catch and call the appropriate extensions. Otherwise, I think you have to call them as static members, e.g. Enumerable.First.Of(Sheet).call(b). That looks horrifying, I know. I don't have IR available on this machine, or I would try it myself. Let me know how that goes. This seems like it will be a fairly common problem for things like LINQ, PFx and Rx. Maybe we can come up with a simple, one-size-fits-all solution?
Ryan Riley Email: ryan.ri...@panesofglass.org LinkedIn: http://www.linkedin.com/in/ryanriley Blog: http://wizardsofsmart.net/ Website: http://panesofglass.org/ On Fri, Nov 20, 2009 at 9:17 AM, Thibaut Barrère <thibaut.barr...@gmail.com>wrote: > Hi, > > I'm testing out the OpenXML SDK with IronRuby (0.9.2). Turns out it's full > of generics in there, a good play field. > > Here I'm trying to use the API to retrieve a list of sheets in an existing > xslx. > > I'm having a hard-time understanding why I can't call "b.first" in the next > snippet (full version at http://gist.github.com/239555): > > doc = SpreadsheetDocument.open('docs/single-cell.xlsx', false) > > > > a = doc.workbook_part.workbook.method(:get_first_child).of(Sheets).call > > puts a > > # -> DocumentFormat.OpenXml.Spreadsheet.Sheets > > > > b = a.method(:elements).of(Sheet).call > > puts b > > # -> > DocumentFormat.OpenXml.OpenXmlElementList+<OfType>d__0`1[DocumentFormat.OpenXml.Spreadsheet.Sheet] > > > > # b.first or anything similar fails > > * > > * > > It turns out that b.methods shows a "to_a" method is available, then I can > do : > > puts b.to_a.first # woot! > > # -> DocumentFormat.OpenXml.Spreadsheet.Sheet > > > So my questions are: > - why can't I call b.first ? (maybe there's something obvious I didn't see > - I assume it's probably that) > - are there better ways of writing this ? > > And if you are interested to follow (I really need to wrap some ruby sugar > around all this to make it easier to work with), I'll push my experiments > here: > > http://github.com/thbar/openxml-labs > > thanks, > > Thibaut > -- > http://www.learnivore.com > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core