pacer 1.6.0-java → 2.0.0.pre-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e492827750d0f50e895dea5a6b847634f5800d7
4
- data.tar.gz: 21025ddf6898e6f432c9466cf61f3ff04b0d286d
3
+ metadata.gz: b34d5a129efd227a81ed3a38ae6ec7d4691422f3
4
+ data.tar.gz: e57767503cfc83db3fc921065bcf588e029df734
5
5
  SHA512:
6
- metadata.gz: e20c5e2ee2b402909c8ade3b8116ea01496d9e2c5947b5cef83abf4680136d78ee05395cc41f18604d49a6e0514ba8538b03b62f3072cedd76beb3e5b3c5bac7
7
- data.tar.gz: ef58e5ca6852f6b9ed63ce2386c647c1ae378aa416d9e27d4489bcf2546cc1546b0291cffbe676638545967d4b13467c7cea679826e77ea9f8c936c056c24ddf
6
+ metadata.gz: 84f28ee240a81f2d782073d9bf3d867342f68334d08b9b769f12135475c71120a1b878435997481183a238601c70e39d25f86d740bc117661679707c28a64f49
7
+ data.tar.gz: 5100e3160ad530c4bed327d002fc6855b64675cb90f4dd4423b34c01c55ecc42a15b036b8b35fc5319f4bb8c53ee079a8c5b508008b30e5d6c8233cbf572accc
data/.gitignore CHANGED
@@ -32,3 +32,5 @@ coverage/*
32
32
  dex.log
33
33
  vendor/
34
34
  private/
35
+ Gemfile-custom
36
+ Jarfile.lock
data/Gemfile CHANGED
@@ -8,44 +8,13 @@ group :development do
8
8
  gem 'rr', '~> 1.0'
9
9
  gem 'simplecov'
10
10
  gem 'rake'
11
-
12
- # pacer-* gems are required for testing pacer.
13
- # If you have the gem repos cloned locally, we'll use them.
14
- #
15
- [ 'pacer-orient', 'pacer-dex' ].each do |lib|
16
- if File.directory? "../#{lib}"
17
- gem lib, :path => "../#{lib}"
18
- end
19
- end
20
-
21
- # Neo4j versions are mutually incompatible
22
- # To test Pacer against Neo4j 1.x when the neo2 gem is present, use:
23
- #
24
- # neo=1 bundle
25
- # rspec
26
- #
27
- # To switch back, just use:
28
- #
29
- # bundle
30
- # rspec
31
- #
32
- if File.directory? "../pacer-neo4j" and (ENV['neo'] == '1' or not File.directory? "../pacer-neo4j2")
33
- gem 'pacer-neo4j', :path => "../pacer-neo4j"
34
- end
35
-
36
- if File.directory? "../pacer-neo4j2" and ENV['neo'] != '1'
37
- gem 'pacer-neo4j2', :path => "../pacer-neo4j2"
38
- end
39
-
40
- if File.directory? "../mcfly"
41
- gem 'pacer-mcfly', :path => "../mcfly"
42
- end
43
-
44
-
45
-
46
11
  gem 'autotest-standalone'
47
12
  gem 'autotest-growl'
48
13
  gem 'pry'
49
14
  gem 'awesome_print', '0.4.0'
50
15
  end
51
16
 
17
+
18
+ # Gemfile-custom is .gitignored, but eval'd here so you can add
19
+ # whatever dev tools you like to use to your local environment.
20
+ eval File.read('Gemfile-custom') if File.exist?('Gemfile-custom')
@@ -0,0 +1,41 @@
1
+ group :development do
2
+ # pacer-* gems are required for testing pacer.
3
+ # If you have the gem repos cloned locally, we'll use them.
4
+ #
5
+ [ 'pacer-orient', 'pacer-dex' ].each do |lib|
6
+ if File.directory? "../#{lib}"
7
+ gem lib, :path => "../#{lib}"
8
+ end
9
+ end
10
+
11
+ # Neo4j versions are mutually incompatible
12
+ # To test Pacer against Neo4j 1.x when the neo2 gem is present, use:
13
+ #
14
+ # neo=1 bundle
15
+ # rspec
16
+ #
17
+ # To switch back, just use:
18
+ #
19
+ # bundle
20
+ # rspec
21
+ #
22
+
23
+ neo_test_ver = ENV.fetch('neo') do
24
+ if File.directory?("../pacer-neo4j2")
25
+ '2'
26
+ elsif File.directory?("../pacer-neo4j")
27
+ '1'
28
+ else
29
+ '0'
30
+ end
31
+ end
32
+ if neo_test_ver == '1'
33
+ gem 'pacer-neo4j', :path => "../pacer-neo4j"
34
+ elsif neo_test_ver == '2'
35
+ gem 'pacer-neo4j2', :path => "../pacer-neo4j2"
36
+ end
37
+
38
+ if File.directory? "../mcfly"
39
+ gem 'pacer-mcfly', :path => "../mcfly"
40
+ end
41
+ end
data/Jarfile ADDED
@@ -0,0 +1,2 @@
1
+ jar "com.tinkerpop.blueprints:blueprints-core:2.6.0"
2
+ jar "com.tinkerpop:pipes:2.5.0"
data/Rakefile CHANGED
@@ -11,49 +11,9 @@ end
11
11
 
12
12
  task :default => :spec
13
13
 
14
- desc 'update pom.xml with current versions from lib/pacer/version.rb'
15
- file 'pom.xml' => 'lib/pacer/version.rb' do
16
- pom = File.read 'pom.xml'
17
- when_writing('Update pom.xml version number') do
18
- open 'pom.xml', 'w' do |f|
19
- pom.each_line do |line|
20
- line.sub!(%r{<gem.version>.*</gem.version>}, "<gem.version>#{ Pacer::VERSION }</gem.version>")
21
- line.sub!(%r{<blueprints.version>.*</blueprints.version>}, "<blueprints.version>#{ Pacer::BLUEPRINTS_VERSION }</blueprints.version>")
22
- line.sub!(%r{<pipes.version>.*</pipes.version>}, "<pipes.version>#{ Pacer::PIPES_VERSION }</pipes.version>")
23
- f << line
24
- end
25
- end
26
- end
27
- end
28
-
29
- file Pacer::JAR_PATH => 'pom.xml' do
30
- when_writing("Execute 'mvn package' task") do
31
- system 'mvn', 'clean'
32
- system 'mvn', 'package'
33
- end
34
- end
35
-
36
14
  task :check_18_mode do
37
15
  if RUBY_VERSION !~ /1\.8/
38
16
  warn 'Releasing gems in 1.9 mode does not work as of JRuby 1.6.5'
39
17
  raise 'Nooooooo!'
40
18
  end
41
19
  end
42
-
43
- task :gemfile_devel do
44
- File.delete 'Gemfile' if File.exists? 'Gemfile'
45
- File.symlink 'Gemfile-dev', 'Gemfile'
46
- end
47
-
48
- desc 'Touch version.rb so that the jar rebuilds'
49
- task :touch do
50
- system 'touch', 'lib/pacer/version.rb'
51
- end
52
-
53
- desc "build the JAR at #{ Pacer::JAR_PATH }"
54
- task :jar => Pacer::JAR_PATH
55
-
56
- # Add dependency to bundler default tasks:
57
- task :build => Pacer::JAR_PATH
58
- task :install => Pacer::JAR_PATH
59
- task :release => Pacer::JAR_PATH
data/lib/pacer/loader.rb CHANGED
@@ -101,6 +101,7 @@ require 'pacer/transform/sort_section'
101
101
  require 'pacer/transform/intersect_sections'
102
102
  require 'pacer/transform/payload'
103
103
  require 'pacer/transform/lookup_ids'
104
+ require 'pacer/transform/count_section'
104
105
 
105
106
  require 'pacer/side_effect/aggregate'
106
107
  require 'pacer/side_effect/as_var'
data/lib/pacer/route.rb CHANGED
@@ -100,7 +100,7 @@ module Pacer
100
100
  #
101
101
  # @param [Hash] args
102
102
  # @option args [Graph] :graph the graph this route is based on
103
- # @option args [Route] :bace the previous route in the chain
103
+ # @option args [Route] :back the previous route in the chain
104
104
  # @option args [element type] :element_type
105
105
  # @option args [Module] :modules additional modules to mix in
106
106
  # @option args [Symbol, Module] :filter the filter to use as this
@@ -0,0 +1,80 @@
1
+ module Pacer
2
+ module Routes
3
+ module RouteOperations
4
+ def count_section(section = nil, &block)
5
+ chain_route transform: Pacer::Transform::CountSection, key_block: block, section: section,
6
+ element_type: :array
7
+ end
8
+ end
9
+ end
10
+
11
+
12
+ module Transform
13
+ module CountSection
14
+ # VisitsSection module provides:
15
+ # section=
16
+ # section_visitor
17
+ # section_route
18
+ include Pacer::Visitors::VisitsSection
19
+
20
+ attr_accessor :key_block
21
+
22
+ protected
23
+
24
+ def attach_pipe(end_pipe)
25
+ block = key_block || proc { |x| x }
26
+ pf = Pacer::Wrappers::WrappingPipeFunction.new section_route, block
27
+ pipe = CountSectionPipe.new(section_visitor, pf)
28
+ pipe.setStarts end_pipe if end_pipe
29
+ pipe
30
+ end
31
+
32
+ class CountSectionPipe < Pacer::Pipes::RubyPipe
33
+ attr_reader :pf, :to_emit, :section, :count, :section_key
34
+
35
+ def initialize(section, pipe_function)
36
+ super()
37
+ @count = 0
38
+ @section = section
39
+ if section
40
+ section.visitor = self
41
+ else
42
+ on_element nil
43
+ end
44
+ @pf = pipe_function
45
+ end
46
+
47
+ def processNextStart
48
+ until to_emit
49
+ starts.next
50
+ @count += 1
51
+ end
52
+ raise EmptyPipe.instance if to_emit.empty?
53
+ emit = to_emit
54
+ @to_emit = nil
55
+ emit
56
+ rescue EmptyPipe, java.util.NoSuchElementException
57
+ if count == 0
58
+ raise EmptyPipe.instance
59
+ else
60
+ after_element
61
+ to_emit
62
+ end
63
+ end
64
+
65
+ def getPathToHere
66
+ section.getCurrentPath
67
+ end
68
+
69
+ def on_element(element)
70
+ @section_key = pf.compute element
71
+ end
72
+
73
+ def after_element
74
+ @to_emit = [section_key, count]
75
+ @count = 0
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
data/lib/pacer/version.rb CHANGED
@@ -1,13 +1,7 @@
1
1
  module Pacer
2
2
  unless const_defined? :VERSION
3
- VERSION = "1.6.0"
4
-
5
- JAR = "pacer-#{ VERSION }-standalone.jar"
6
- JAR_PATH = "lib/#{ JAR }"
3
+ VERSION = "2.0.0.pre"
7
4
 
8
5
  START_TIME = Time.now
9
-
10
- BLUEPRINTS_VERSION = "2.6.0"
11
- PIPES_VERSION = "2.5.0"
12
6
  end
13
7
  end
data/lib/pacer.rb CHANGED
@@ -22,6 +22,10 @@ require 'java'
22
22
  require 'pp'
23
23
  require 'rubygems'
24
24
 
25
+ require 'lock_jar'
26
+ LockJar.lock(File.join(File.dirname(__FILE__), "..", "Jarfile"))
27
+ LockJar.load
28
+
25
29
  module Pacer
26
30
  unless const_defined? :PATH
27
31
  PATH = File.expand_path(File.join(File.dirname(__FILE__), '..'))
@@ -37,7 +41,6 @@ module Pacer
37
41
  Enumerator = Enumerable::Enumerator
38
42
  end
39
43
 
40
- require JAR
41
44
 
42
45
  require 'pacer/loader'
43
46
 
data/pacer.gemspec CHANGED
@@ -7,14 +7,15 @@ Gem::Specification.new do |s|
7
7
  s.version = Pacer::VERSION
8
8
  s.platform = 'java'
9
9
  s.authors = ["Darrick Wiebe"]
10
- s.email = "darrick@innatesoftware.com"
10
+ s.email = "dw@xnlogic.com"
11
11
  s.homepage = "http://github.com/pangloss/pacer"
12
12
  s.license = "MIT"
13
13
  s.summary = %Q{A very efficient and easy to use graph traversal engine.}
14
- s.description = %Q{Pacer defines routes through a graph and then traverses them very quickly.}
14
+ s.description = %Q{Pacer defines composeable routes through a graph and then traverses them very quickly.}
15
15
 
16
- s.files = `git ls-files`.split("\n") + [Pacer::JAR_PATH]
16
+ s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- spec/*`.split("\n")
18
18
  s.require_paths = ['lib']
19
+ s.add_dependency "lock_jar", "~> 0.10.0"
19
20
  end
20
21
 
metadata CHANGED
@@ -1,17 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 2.0.0.pre
5
5
  platform: java
6
6
  authors:
7
7
  - Darrick Wiebe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Pacer defines routes through a graph and then traverses them very quickly.
14
- email: darrick@innatesoftware.com
11
+ date: 2014-11-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lock_jar
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.0
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 0.10.0
25
+ prerelease: false
26
+ type: :runtime
27
+ description: Pacer defines composeable routes through a graph and then traverses them very quickly.
28
+ email: dw@xnlogic.com
15
29
  executables: []
16
30
  extensions: []
17
31
  extra_rdoc_files: []
@@ -22,6 +36,8 @@ files:
22
36
  - .rspec
23
37
  - CONTRIBUTORS
24
38
  - Gemfile
39
+ - Gemfile-custom.sample
40
+ - Jarfile
25
41
  - LICENSE.txt
26
42
  - README.md
27
43
  - Rakefile
@@ -127,6 +143,7 @@ files:
127
143
  - lib/pacer/support/proc.rb
128
144
  - lib/pacer/transform/branch.rb
129
145
  - lib/pacer/transform/cap.rb
146
+ - lib/pacer/transform/count_section.rb
130
147
  - lib/pacer/transform/flat_map.rb
131
148
  - lib/pacer/transform/gather.rb
132
149
  - lib/pacer/transform/has_count_cap.rb
@@ -163,8 +180,6 @@ files:
163
180
  - lib/pacer/wrappers/wrapper_selector.rb
164
181
  - lib/pacer/wrappers/wrapping_pipe_function.rb
165
182
  - pacer.gemspec
166
- - pom.xml
167
- - pom/standalone.xml
168
183
  - samples/grateful-dead.xml
169
184
  - samples/grateful_dead.rb
170
185
  - samples/profile.rb
@@ -218,7 +233,6 @@ files:
218
233
  - spec/support/use_transactions.rb
219
234
  - spec/tackle/simple_mixin.rb
220
235
  - spec/tackle/tinkerpop_graph_mixins.rb
221
- - lib/pacer-1.6.0-standalone.jar
222
236
  homepage: http://github.com/pangloss/pacer
223
237
  licenses:
224
238
  - MIT
@@ -234,9 +248,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
248
  version: '0'
235
249
  required_rubygems_version: !ruby/object:Gem::Requirement
236
250
  requirements:
237
- - - '>='
251
+ - - '>'
238
252
  - !ruby/object:Gem::Version
239
- version: '0'
253
+ version: 1.3.1
240
254
  requirements: []
241
255
  rubyforge_project:
242
256
  rubygems_version: 2.1.9
@@ -294,3 +308,4 @@ test_files:
294
308
  - spec/support/use_transactions.rb
295
309
  - spec/tackle/simple_mixin.rb
296
310
  - spec/tackle/tinkerpop_graph_mixins.rb
311
+ has_rdoc:
Binary file
data/pom/standalone.xml DELETED
@@ -1,22 +0,0 @@
1
- <assembly>
2
- <id>standalone</id>
3
- <formats>
4
- <format>jar</format>
5
- </formats>
6
- <includeBaseDirectory>false</includeBaseDirectory>
7
-
8
- <fileSets>
9
- <fileSet>
10
- <directory>target/classes</directory>
11
- <outputDirectory>/</outputDirectory>
12
- </fileSet>
13
- </fileSets>
14
-
15
- <dependencySets>
16
- <dependencySet>
17
- <outputDirectory>/</outputDirectory>
18
- <unpack>true</unpack>
19
- <scope>runtime</scope>
20
- </dependencySet>
21
- </dependencySets>
22
- </assembly>
data/pom.xml DELETED
@@ -1,104 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project xmlns="http://maven.apache.org/POM/4.0.0"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
5
- <modelVersion>4.0.0</modelVersion>
6
- <groupId>com.tinkerpop.pacer</groupId>
7
- <artifactId>pacer</artifactId>
8
- <!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
9
- <properties>
10
- <blueprints.version>2.6.0</blueprints.version>
11
- <gem.version>1.6.0</gem.version>
12
- <pipes.version>2.5.0</pipes.version>
13
- </properties>
14
- <!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
15
- <version>${gem.version}</version>
16
- <packaging>pom</packaging>
17
- <url>https://github.com/pangloss/pacer</url>
18
- <name>Pacer Tinkerpop core dependencies including Blueprints Core
19
- and Pipes.</name>
20
- <description>
21
- </description>
22
- <inceptionYear>2011</inceptionYear>
23
- <developers>
24
- <developer>
25
- <name>Darrick Wiebe</name>
26
- <email>darrick@innatesoftware.com</email>
27
- <url>http://github.com/pangloss</url>
28
- </developer>
29
- </developers>
30
- <dependencies>
31
- <!-- PROPERTY GRAPH MODEL SUPPORT -->
32
- <dependency>
33
- <groupId>com.tinkerpop.blueprints</groupId>
34
- <artifactId>blueprints-core</artifactId>
35
- <version>${blueprints.version}</version>
36
- </dependency>
37
- <!-- GRAPH TRAVERSAL SUPPORT -->
38
- <dependency>
39
- <groupId>com.tinkerpop</groupId>
40
- <artifactId>pipes</artifactId>
41
- <version>${pipes.version}</version>
42
- </dependency>
43
- </dependencies>
44
-
45
- <build>
46
- <directory>${basedir}/target</directory>
47
- <finalName>${project.artifactId}-${project.version}</finalName>
48
- <resources>
49
- <resource>
50
- <directory>${basedir}/src/main/resources
51
- </directory>
52
- </resource>
53
- </resources>
54
- <testResources>
55
- <testResource>
56
- <directory>${basedir}/src/test/resources
57
- </directory>
58
- </testResource>
59
- </testResources>
60
- <plugins>
61
- <plugin>
62
- <artifactId>maven-compiler-plugin</artifactId>
63
- <configuration>
64
- <source>1.6</source>
65
- <target>1.6</target>
66
- </configuration>
67
- </plugin>
68
- <plugin>
69
- <artifactId>maven-assembly-plugin</artifactId>
70
- <version>2.2-beta-4</version>
71
- <executions>
72
- <execution>
73
- <phase>package</phase>
74
- <goals>
75
- <goal>attached</goal>
76
- </goals>
77
- </execution>
78
- </executions>
79
- <configuration>
80
- <descriptors>
81
- <descriptor>pom/standalone.xml</descriptor>
82
- </descriptors>
83
- <finalName>${project.artifactId}-${project.version}</finalName>
84
- <outputDirectory>lib</outputDirectory>
85
- <workDirectory>target/assembly/work</workDirectory>
86
- <tarLongFileMode>warn</tarLongFileMode>
87
- </configuration>
88
- </plugin>
89
- <plugin>
90
- <groupId>org.apache.maven.plugins</groupId>
91
- <artifactId>maven-javadoc-plugin</artifactId>
92
- <version>2.6.1</version>
93
- </plugin>
94
- </plugins>
95
- <extensions>
96
- <extension>
97
- <groupId>org.apache.maven.wagon</groupId>
98
- <artifactId>wagon-ftp</artifactId>
99
- <version>1.0-alpha-6</version>
100
- </extension>
101
- </extensions>
102
- </build>
103
-
104
- </project>