Hey guys,
Pacer is definitely being used in production in multiple organizations and is being actively maintained. In my opinion it's by far the best way to work with graphs from Ruby or any other language.
One of the great advantages of it is that while it gives you really great syntax for doing pretty much whatever you need to do with a graph, you still have the option to use the blueprints APIs directly or even move code to pure Java when it comes time to optimize your app (though in my experience that's never been necessary).
There's plenty more to Pacer than just traversal. Your example code produces a route. if you want to get an actual vertex from it, you'd need to terminate the route with a method like #first which will give you one vertex, or #each or #bulk_job that will run through the elements the route produces.
I'd recommend looking at the test suite to see how the core functionality of Pacer works, though a guide would be useful, that'll have to suffice for now... A couple of pointers though:
* elements will always be wrapped in either Pacer::Wrappers::VertexWrapper or EdgeWrapper
* basic core operations are all defined under lib/pacer/core
* more interesting operations are each defined separately under their own modules in the lib/pacer/filter, lib/pacer/transform and lib/pacer/side_effect paths. A lot of those have attr_accessor or settable attributes defined. Each of those is a possible option for the creation of that route step. So for instance with future_filter.rb, you see `attr_accessor :min, :max`. At the top you see that it defines the route chaining method `lookahead` which takes a block. Therefore you can use it like this: `graph.v.lookahead(min: 5, max: 7) { |v| v.out_e }`
Hope that helps, and I'm happy to help you out with specific questions.
Cheers,
Darrick