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, 300)
indexes.each do |idx|
  puts idx
end