pacer 2.0.20-java → 2.0.22-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ede667c0ca3db98a52bdaf0ce235dbd48d385b6
4
- data.tar.gz: 0f47be21c31fe29b6d4118a122ef39f228b321a3
3
+ metadata.gz: 795f8abed85009564fee9dab5d216b8da0e4b376
4
+ data.tar.gz: 3c11929329d4a038d3866ec02969955f2f5f9570
5
5
  SHA512:
6
- metadata.gz: 14853e307f9b435bf698615a2cb4062dc42082e3d9e23f0b4644403313879a7cb8ecf85dbf23c1dd4d58988d8c1aa4c649fcbe776ccc4cba8e971862f12bee66
7
- data.tar.gz: b3c8567f061894f60e98a2d0b7977aa2f401c7f959f23e1a8715659bd9f5798fd62dc652406f02a2b6ac600e03802a24b4999d036bcd8ed4d08505a0f8cb300c
6
+ metadata.gz: 40b05f5d1665ed2dd697f8b3c99bfb099c40d5412a8966c38b4d79f13488c60d67a636d73aed70dc60d3bbbb49365c5beb5e4736b81391c70fdfc47743386f44
7
+ data.tar.gz: 59ed57f1501dda498244bb17ae62d903cd8026f53ebb9cb1ce2a7d1e4d1460b66e244c9ba1afd8bd8f3f8bebc01cad3f4de9294f34f3973e970d64632733b160
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Pacer
2
2
  [![Coverage Status](https://img.shields.io/coveralls/pangloss/pacer.svg)](https://coveralls.io/r/pangloss/pacer) [![Build Status](https://travis-ci.org/pangloss/pacer.svg)](https://travis-ci.org/pangloss/pacer) [![Code Climate](https://codeclimate.com/github/pangloss/pacer/badges/gpa.svg)](https://codeclimate.com/github/pangloss/pacer)
3
3
 
4
+
4
5
  Pacer is a JRuby library that enables very expressive graph traversals.
5
6
 
6
7
  It currently supports all of the major graph databases including [OrientDB](http://orientdb.com), [Neo4j](http://neo4j.org)
data/lib/pacer/loader.rb CHANGED
@@ -103,6 +103,7 @@ require 'pacer/transform/intersect_sections'
103
103
  require 'pacer/transform/payload'
104
104
  require 'pacer/transform/lookup_ids'
105
105
  require 'pacer/transform/count_section'
106
+ require 'pacer/transform/gather_section'
106
107
 
107
108
  require 'pacer/side_effect/aggregate'
108
109
  require 'pacer/side_effect/as_var'
@@ -0,0 +1,100 @@
1
+ module Pacer
2
+ module Routes
3
+ module RouteOperations
4
+ def gather_section(section = nil, opts = {})
5
+ wrapper = Pacer::Wrappers::WrapperSelector.build graph, element_type, extensions
6
+ chain_route opts.merge(element_type: :array, transform: :gather_section,
7
+ section: section, build_wrapper: wrapper)
8
+ end
9
+ end
10
+ end
11
+
12
+ module Transform
13
+ module GatherSection
14
+ # VisitsSection module provides:
15
+ # section=
16
+ # section_visitor
17
+ include Pacer::Visitors::VisitsSection
18
+
19
+ attr_accessor :build_wrapper
20
+
21
+ def to_id_hash
22
+ id_pairs = paths.pairs(-2, -1).map(element_type: :array) do |(k, v)|
23
+ [k.element_id, v.map { |e| e.element_id }]
24
+ end
25
+ Hash[*id_pairs.flatten]
26
+ end
27
+
28
+ def to_hash
29
+ Hash[*paths.pairs(-2, -1).flatten]
30
+ end
31
+
32
+ protected
33
+
34
+ def attach_pipe(end_pipe)
35
+ # TODO: wrap gathered vertices
36
+ pipe = GatherSectionPipe.new(section_visitor, graph, build_wrapper)
37
+ pipe.setStarts end_pipe if end_pipe
38
+ pipe
39
+ end
40
+
41
+ class GatherSectionPipe < Pacer::Pipes::RubyPipe
42
+ attr_reader :to_emit, :collecting, :collecting_path, :section, :graph, :wrapper
43
+ attr_reader :getPathToHere
44
+
45
+ def initialize(visitor_pipe, graph, wrapper)
46
+ super()
47
+ @collecting = []
48
+ @graph = graph
49
+ @wrapper = wrapper
50
+ @visitor_pipe = visitor_pipe
51
+ if visitor_pipe
52
+ visitor_pipe.visitor = self
53
+ end
54
+ end
55
+
56
+ def processNextStart
57
+ if pathEnabled
58
+ while !to_emit
59
+ e = wrapper.new(graph, starts.next)
60
+ collecting << e
61
+ @collecting_path = @visitor_pipe.getCurrentPath
62
+ end
63
+ else
64
+ while !to_emit
65
+ e = wrapper.new(graph, starts.next)
66
+ collecting << e
67
+ end
68
+ end
69
+ if !to_emit
70
+ raise EmptyPipe.instance
71
+ else
72
+ emit
73
+ end
74
+ rescue EmptyPipe, java.util.NoSuchElementException
75
+ if collecting
76
+ @collecting = nil
77
+ emit
78
+ else
79
+ raise EmptyPipe.instance
80
+ end
81
+ end
82
+
83
+ def emit
84
+ e = to_emit
85
+ @to_emit = nil
86
+ e
87
+ end
88
+
89
+ def after_element
90
+ unless collecting.empty?
91
+ @to_emit = collecting
92
+ @getPathToHere = collecting_path
93
+ @collecting = []
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
100
+
data/lib/pacer/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Pacer
2
- VERSION = "2.0.20"
2
+ VERSION = "2.0.22"
3
3
  # Clients may optionally define the following constants in the Pacer namespace:
4
4
  # - LOAD_JARS : set to false to manage jar loading in the client. Be sure to load the jars defined in JARFILES.
5
5
  # - LOCKJAR_LOCK_OPTS : set some options to be passed to LockJar.lock (ie. :lockfile, :download_artifacts, :local_repo)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.20
4
+ version: 2.0.22
5
5
  platform: java
6
6
  authors:
7
7
  - Darrick Wiebe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-03 00:00:00.000000000 Z
11
+ date: 2015-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lock_jar
@@ -194,6 +194,7 @@ files:
194
194
  - lib/pacer/transform/count_section.rb
195
195
  - lib/pacer/transform/flat_map.rb
196
196
  - lib/pacer/transform/gather.rb
197
+ - lib/pacer/transform/gather_section.rb
197
198
  - lib/pacer/transform/has_count_cap.rb
198
199
  - lib/pacer/transform/identity.rb
199
200
  - lib/pacer/transform/intersect_sections.rb