Class: Delfos::Neo4j::Distance::Update
- Inherits:
-
Object
- Object
- Delfos::Neo4j::Distance::Update
- Defined in:
- lib/delfos/neo4j/distance/update.rb
Instance Method Summary collapse
Instance Method Details
#perform ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/delfos/neo4j/distance/update.rb', line 9 def perform results = CallSiteFetcher.perform return if results.length.negative? results.each do |start_file, call_site_id, finish_file, called_id| calc = FileSystem::DistanceCalculation.new(start_file, finish_file) update(call_site_id, called_id, calc) end Neo4j.flush! end |
#query ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/delfos/neo4j/distance/update.rb', line 32 def query <<-QUERY START call_site = node({call_site_id}), called = node({called_id}) MERGE (call_site) - [:EFFERENT_COUPLING { distance: {sum_traversals}, possible_distance: {sum_possible_traversals} } ] -> (called) QUERY end |
#update(call_site_id, called_id, calc) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/delfos/neo4j/distance/update.rb', line 22 def update(call_site_id, called_id, calc) Neo4j.execute( query, call_site_id: call_site_id, called_id: called_id, sum_traversals: calc.sum_traversals, sum_possible_traversals: calc.sum_possible_traversals ) end |