pacer-neo4j 1.1.1-java → 2.0.0-java

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -22,8 +22,14 @@ file Pacer::Neo4j::JAR_PATH => 'pom.xml' do
22
22
  end
23
23
 
24
24
  task :note do
25
- puts "NOTE: touch lib/pacer-neo4j/version.rb to force everything to rebuild"
25
+ puts "NOTE: touch lib/pacer-neo4j/version.rb (or rake touch) to force everything to rebuild"
26
26
  end
27
27
 
28
28
  task :build => [:note, Pacer::Neo4j::JAR_PATH]
29
29
  task :install => [:note, Pacer::Neo4j::JAR_PATH]
30
+
31
+ desc 'Touch version.rb so that the jar rebuilds'
32
+ task :touch do
33
+ system 'touch', 'lib/pacer-neo4j/version.rb'
34
+ end
35
+
@@ -1,8 +1,6 @@
1
1
  require 'yaml'
2
2
 
3
3
  module Pacer
4
- Neo4jGraph = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jGraph
5
- Neo4jElement = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jElement
6
4
 
7
5
  # Add 'static methods' to the Pacer namespace.
8
6
  class << self
@@ -12,137 +10,41 @@ module Pacer
12
10
  # If the graph is opened from a path, it will be registered to be closed by
13
11
  # Ruby's at_exit callback, but if an already open graph is given, it will
14
12
  # not.
13
+ #
14
+ # Please note that Pacer turns on Neo4j's checkElementsInTransaction
15
+ # feature by default. For some sort of performance improvement at
16
+ # the expense of an odd consistency model within transactions that
17
+ # require considerable more complexity in client code, you can use
18
+ # `graph.setCheckElementsInTransaction(false)` to disable the
19
+ # feature.
15
20
  def neo4j(path_or_graph, args = nil)
21
+ neo = com.tinkerpop.blueprints.impls.neo4j.Neo4jGraph
16
22
  if path_or_graph.is_a? String
17
23
  path = File.expand_path(path_or_graph)
18
- Pacer.starting_graph(self, path) do
19
- if args
20
- Neo4jGraph.new(path, args.to_hash_map)
21
- else
22
- Neo4jGraph.new(path)
23
- end
24
- end
25
- else
26
- # Don't register the new graph so that it won't be automatically closed.
27
- Neo4jGraph.new(path_or_graph)
28
- end
29
- end
30
- end
31
-
32
-
33
- # Extend the java class imported from blueprints.
34
- class Neo4jGraph
35
- include GraphMixin
36
- include GraphIndicesMixin
37
- include GraphTransactionsMixin
38
- include ManagedTransactionsMixin
39
- include Pacer::Core::Route
40
- include Pacer::Core::Graph::GraphRoute
41
- include Pacer::Core::Graph::GraphIndexRoute
42
-
43
- # Override to return an enumeration-friendly array of vertices.
44
- def get_vertices
45
- getVertices.to_route(:graph => self, :element_type => :vertex)
46
- end
47
-
48
- # Override to return an enumeration-friendly array of edges.
49
- def get_edges
50
- getEdges.to_route(:graph => self, :element_type => :edge)
51
- end
52
-
53
- def element_class
54
- Neo4jElement
55
- end
56
-
57
- def vertex_class
58
- Neo4jVertex
59
- end
60
-
61
- def edge_class
62
- Neo4jEdge
63
- end
64
-
65
- def sanitize_properties(props)
66
- pairs = props.map do |name, value|
67
- [name, encode_property(value)]
68
- end
69
- Hash[pairs]
70
- end
71
-
72
- def encode_property(value)
73
- case value
74
- when nil
75
- nil
76
- when String
77
- value = value.strip
78
- value = nil if value == ''
79
- value
80
- when Numeric
81
- if value.is_a? Bignum
82
- value.to_yaml
83
- else
84
- value
85
- end
86
- when true, false
87
- value
88
- when Array
89
- if value.length == 0
90
- value_type = Fixnum
91
- else
92
- value_type = value.first.class
93
- value_type = TrueClass if value_type == FalseClass
94
- value.each do |v|
95
- if value_type != v.class or (value == true or value == false and value_type == TrueClass)
96
- value_type = nil
97
- break
24
+ open = proc do
25
+ graph = Pacer.open_graphs[path]
26
+ unless graph
27
+ if args
28
+ graph = neo.new(path, args.to_hash_map)
29
+ else
30
+ graph = neo.new(path)
98
31
  end
32
+ Pacer.open_graphs[path] = graph
33
+ graph.setCheckElementsInTransaction true
99
34
  end
35
+ graph
100
36
  end
101
- case value_type
102
- when Fixnum
103
- value.to_java :long
104
- when Float
105
- value.to_java :double
106
- when TrueClass
107
- value.to_java :boolean
108
- when String
109
- value.to_java :string
110
- else
111
- value.to_yaml
37
+ shutdown = proc do |g|
38
+ g.blueprints_graph.shutdown
39
+ Pacer.open_graphs[path] = nil
112
40
  end
41
+ PacerGraph.new(Pacer::YamlEncoder, open, shutdown)
113
42
  else
114
- value.to_yaml
115
- end
116
- end
117
-
118
- if 'x'.to_yaml[0, 5] == '%YAML'
119
- def decode_property(value)
120
- if value.is_a? String and value[0, 5] == '%YAML'
121
- YAML.load(value)
122
- elsif value.is_a? ArrayJavaProxy
123
- value.to_a
124
- else
125
- value
126
- end
127
- end
128
- else
129
- def decode_property(value)
130
- if value.is_a? String and value[0, 3] == '---'
131
- YAML.load(value)
132
- elsif value.is_a? ArrayJavaProxy
133
- value.to_a
134
- else
135
- value
136
- end
43
+ # Don't register the new graph so that it won't be automatically closed.
44
+ PacerGraph.new Pacer::YamlEncoder, proc { graph.neo.new(path_or_graph) }
137
45
  end
138
46
  end
47
+ end
139
48
 
140
- def supports_circular_edges?
141
- false
142
- end
143
49
 
144
- def supports_custom_element_ids?
145
- false
146
- end
147
- end
148
50
  end
@@ -33,11 +33,7 @@ class RSpec::GraphRunner
33
33
  dir = Pathname.new(path3)
34
34
  dir.rmtree if dir.exist?
35
35
  @neo_graph_no_indices = Pacer.neo4j(path3)
36
- @neo_graph_no_indices.drop_index :vertices
37
- @neo_graph_no_indices.drop_index :edges
38
36
  @neo_graph_no_indices
39
37
  end
40
38
  end
41
-
42
- include Neo4j
43
39
  end
@@ -1,9 +1,10 @@
1
1
  module Pacer
2
2
  module Neo4j
3
- VERSION = "1.1.1"
3
+ VERSION = "2.0.0"
4
4
  JAR = "pacer-neo4j-#{ VERSION }-standalone.jar"
5
5
  JAR_PATH = "lib/#{ JAR }"
6
- BLUEPRINTS_VERSION = "1.0"
7
- PIPES_VERSION = "0.8"
6
+ BLUEPRINTS_VERSION = "2.1.0"
7
+ PIPES_VERSION = "2.1.0"
8
+ PACER_REQ = ">= 1.0.0"
8
9
  end
9
10
  end
data/lib/pacer-neo4j.rb CHANGED
@@ -3,8 +3,4 @@ require 'pacer-neo4j/version'
3
3
  require 'pacer'
4
4
  require Pacer::Neo4j::JAR
5
5
 
6
- require 'pacer-neo4j/vertex'
7
- require 'pacer-neo4j/edge'
8
- require 'pacer-neo4j/index'
9
6
  require 'pacer-neo4j/graph'
10
- require 'pacer-neo4j/rspec' if defined? RSpec
data/pacer-neo4j.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{Neo4J jars and related code for Pacer}
13
13
  s.description = s.summary
14
14
 
15
- s.add_dependency 'pacer', '>= 0.9.1.1'
15
+ s.add_dependency 'pacer', Pacer::Neo4j::PACER_REQ
16
16
 
17
17
  s.rubyforge_project = "pacer-neo4j"
18
18
 
data/pom.xml CHANGED
@@ -7,9 +7,9 @@
7
7
  <artifactId>pacer-neo4j</artifactId>
8
8
  <!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
9
9
  <properties>
10
- <gem.version>1.1.1</gem.version>
11
- <blueprints.version>1.0</blueprints.version>
12
- <pipes.version>0.8</pipes.version>
10
+ <gem.version>2.0.0</gem.version>
11
+ <blueprints.version>2.1.0</blueprints.version>
12
+ <pipes.version>2.1.0</pipes.version>
13
13
  </properties>
14
14
  <!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
15
15
  <version>${gem.version}</version>
metadata CHANGED
@@ -1,25 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacer-neo4j
3
3
  version: !ruby/object:Gem::Version
4
+ version: 2.0.0
4
5
  prerelease:
5
- version: 1.1.1
6
6
  platform: java
7
7
  authors:
8
8
  - Darrick Wiebe
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-23 00:00:00.000000000Z
12
+ date: 2012-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pacer
16
- version_requirements: &2056 !ruby/object:Gem::Requirement
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ! '>='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.9.1.1
20
+ version: 1.0.0
21
+ none: false
22
+ requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
21
27
  none: false
22
- requirement: *2056
23
28
  prerelease: false
24
29
  type: :runtime
25
30
  description: Neo4J jars and related code for Pacer
@@ -34,16 +39,13 @@ files:
34
39
  - README.md
35
40
  - Rakefile
36
41
  - lib/pacer-neo4j.rb
37
- - lib/pacer-neo4j/edge.rb
38
42
  - lib/pacer-neo4j/graph.rb
39
- - lib/pacer-neo4j/index.rb
40
43
  - lib/pacer-neo4j/rspec.rb
41
44
  - lib/pacer-neo4j/version.rb
42
- - lib/pacer-neo4j/vertex.rb
43
45
  - pacer-neo4j.gemspec
44
46
  - pom.xml
45
47
  - pom/standalone.xml
46
- - lib/pacer-neo4j-1.1.1-standalone.jar
48
+ - lib/pacer-neo4j-2.0.0-standalone.jar
47
49
  homepage: http://neo4j.org
48
50
  licenses: []
49
51
  post_install_message:
@@ -54,20 +56,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
54
56
  requirements:
55
57
  - - ! '>='
56
58
  - !ruby/object:Gem::Version
57
- version: '0'
59
+ version: !binary |-
60
+ MA==
58
61
  none: false
59
62
  required_rubygems_version: !ruby/object:Gem::Requirement
60
63
  requirements:
61
64
  - - ! '>='
62
65
  - !ruby/object:Gem::Version
63
- version: '0'
66
+ version: !binary |-
67
+ MA==
64
68
  none: false
65
69
  requirements: []
66
70
  rubyforge_project: pacer-neo4j
67
- rubygems_version: 1.8.15
71
+ rubygems_version: 1.8.24
68
72
  signing_key:
69
73
  specification_version: 3
70
74
  summary: Neo4J jars and related code for Pacer
71
75
  test_files: []
72
76
  has_rdoc:
73
- ...
@@ -1,36 +0,0 @@
1
- require 'yaml'
2
-
3
- module Pacer
4
- Neo4jEdge = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jEdge
5
-
6
- # Extend the java class imported from blueprints.
7
- class Neo4jEdge
8
- include Pacer::Core::Graph::EdgesRoute
9
- include ElementMixin
10
- include EdgeMixin
11
-
12
- def in_vertex(extensions = nil)
13
- v = inVertex
14
- v.graph = graph
15
- if extensions.is_a? Enumerable
16
- v.add_extensions extensions
17
- elsif extensions
18
- v.add_extensions [extensions]
19
- else
20
- v
21
- end
22
- end
23
-
24
- def out_vertex(extensions = nil)
25
- v = outVertex
26
- v.graph = graph
27
- if extensions.is_a? Enumerable
28
- v.add_extensions extensions
29
- elsif extensions
30
- v.add_extensions [extensions]
31
- else
32
- v
33
- end
34
- end
35
- end
36
- end
@@ -1,45 +0,0 @@
1
- require 'yaml'
2
-
3
- module Pacer
4
- import com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jIndex
5
- import com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jAutomaticIndex
6
-
7
- class Neo4jIndex
8
- include IndexMixin
9
- JVertex = com.tinkerpop.blueprints.pgm.Vertex.java_class.to_java
10
- JEdge = com.tinkerpop.blueprints.pgm.Edge.java_class.to_java
11
- JNeo4jVertex = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jVertex.java_class.to_java
12
- JNeo4jEdge = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jEdge.java_class.to_java
13
-
14
- def index_class
15
- et = getIndexClass
16
- if et == JVertex
17
- JNeo4jVertex
18
- elsif et == JEdge
19
- JNeo4jEdge
20
- else
21
- et
22
- end
23
- end
24
- end
25
-
26
-
27
- class Neo4jAutomaticIndex
28
- include IndexMixin
29
- JVertex = com.tinkerpop.blueprints.pgm.Vertex.java_class.to_java
30
- JEdge = com.tinkerpop.blueprints.pgm.Edge.java_class.to_java
31
- JNeo4jVertex = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jVertex.java_class.to_java
32
- JNeo4jEdge = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jEdge.java_class.to_java
33
-
34
- def index_class
35
- et = getIndexClass
36
- if et == JVertex
37
- JNeo4jVertex
38
- elsif et == JEdge
39
- JNeo4jEdge
40
- else
41
- et
42
- end
43
- end
44
- end
45
- end
@@ -1,11 +0,0 @@
1
- require 'yaml'
2
-
3
- module Pacer
4
- Neo4jVertex = com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jVertex
5
- # Extend the java class imported from blueprints.
6
- class Neo4jVertex
7
- include Pacer::Core::Graph::VerticesRoute
8
- include ElementMixin
9
- include VertexMixin
10
- end
11
- end