What's the easiest way to rotate around an edge that is not parallel to a primary axis? First, the screenshots: 



Given the highlighted edge in the left excerpt of the screenshot collage above, is there a quicker way to be able to rotate the cube around that edge than rotating the whole cube so that the active edge is parallel to one of the primary axes, making the rotation, and then rotating the cube back to its original position?

How about if the cube is chosen, but instead forming the diagonal of one of the faces, one selects the first vertex, and for the other end of the new edge, selects the vertex opposite of the first, along the diagonal of the cube. The new edge referred to is the active edge in the right half of the screenshot excerpt above. Again, is there a faster or more efficient way to rotate around the diagonal, than rotating the cube so the diagonal aligns with one of the primary axes, making the rotation, and then rotating the cube back to its original position? 

In both cases, I want to rotate the cube around and perpendicular to the highlighted edge, as in the results screenshots below.
Here is another way ( without effecting the pivot element ):


switch to (Pivot : cursor, Transform orientation : view, View : orthographic ).
select the element and press Shift+S->cursor to selected.
press Shift+(1 or 3 or 7) to go to one of the ortho views aligned to the selected element.
when in the desired view press Ctrl+I then rotate the object according to the view ( use RXX ..).