Apologies if this is a basic Ruby question. I have a C# method:

public class Myro {
  ...
  public static IEnumerator getPixels(Picture picture) {
    for (int x=0; x < picture.width; x++) {
      for (int y=0; y < picture.height; y++) {
          yield return picture.getPixel(x, y);
      }
    }
  }
}

I can call this fine in IronPython:

for pixel in getPixels(pic):
    r, g, b = getRGB(pixel)
    gray = (r + g + b)/3
    setRGB(pixel, gray, gray, gray)

But I don't see how to call this from IronRuby:

Myro::getPixels(pic) do |pixel|
    r, g, b = Myro::getRGB pixel
    gray = (r + g + b)/3
    Myro::setRGB(pixel, gray, gray, gray)
end

All I get back is Myro+<getPixels>c__Iterator0.

What do I need to do to actually get each pixel in IronRuby and
process it? Do I need an extension method, perhaps called "each"? If
so, can someone point me to some code?

Thanks in advance for any help,

-Doug
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to