Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

55 lines (42 sloc) 2.049 kb
require 'rubygems'
require 'neography'
@neo = Neography::Rest.new
def create_node(name, mysql_id)
@neo.create_node("name" => name, "mysql_id" => mysql_id)
end
def attended(student, school, degree, graduated)
@neo.create_relationship("attended", student, school, {"degree" => degree, "graduated" => graduated})
end
def graduated_with_me(student)
student = student["self"].split('/').last
student_attended = @neo.get_node_relationships(student)[0]
graduated = student_attended["data"]["graduated"]
school = student_attended["end"].split('/').last
@neo.traverse(school,"nodes", {"order" => "breadth first",
"uniqueness" => "node global",
"relationships" => {"type"=> "attended", "direction" => "in"},
"return filter" => {
"language" => "javascript",
"body" => "position.length() == 1
&& position.endNode().getId() != #{student}
&& position.lastRelationship().getProperty(\"graduated\") == #{graduated};"}})
end
charlie = create_node("Charlie", 1)
max = create_node("Max", 2)
peter = create_node("Peter", 3)
carol = create_node("Carol", 3)
tom = create_node("Tom", 4)
jerry = create_node("Jerry", 5)
larry = create_node("Larry", 6)
yale = create_node("Yale", 7)
harvard = create_node("Harvard", 8)
rutgers = create_node("Rutgers", 9)
attended(charlie,yale,"engineering", 2010)
attended(max,yale,"mathematics", 2005)
attended(peter,yale,"biology", 2010)
attended(carol,yale,"engineering", 2010)
attended(tom,harvard,"biology", 2008)
attended(jerry,rutgers,"physics", 2007)
attended(larry,rutgers,"mathematics", 2010)
puts "Charlie graduated with #{graduated_with_me(charlie).map{|n| n["data"]["name"]}.join(', ')}"
# The node levels returned are Peter, Carol
Jump to Line
Something went wrong with that request. Please try again.