neo4j 1.0.0.beta.27-java → 1.0.0.beta.28-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.
- data/CONTRIBUTORS +1 -0
- data/lib/neo4j.rb +38 -72
- data/lib/neo4j/{algo.rb → algo/algo.rb} +5 -1
- data/lib/neo4j/batch/batch.rb +2 -0
- data/lib/neo4j/batch/indexer.rb +108 -0
- data/lib/neo4j/batch/inserter.rb +168 -0
- data/lib/neo4j/database.rb +13 -8
- data/lib/neo4j/{mapping/class_methods/list.rb → has_list/class_methods.rb} +2 -4
- data/lib/neo4j/has_list/has_list.rb +3 -0
- data/lib/neo4j/{mapping/has_list.rb → has_list/mapping.rb} +2 -2
- data/lib/neo4j/{mapping/class_methods/relationship.rb → has_n/class_methods.rb} +42 -12
- data/lib/neo4j/has_n/decl_relationship_dsl.rb +216 -0
- data/lib/neo4j/has_n/has_n.rb +3 -0
- data/lib/neo4j/{mapping/has_n.rb → has_n/mapping.rb} +16 -7
- data/lib/neo4j/index/index.rb +5 -0
- data/lib/neo4j/index/indexer.rb +27 -22
- data/lib/neo4j/index/lucene_query.rb +3 -1
- data/lib/neo4j/jars/core/neo4j-graph-algo-0.8-1.3.M01.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-index-1.3-1.3.M01.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-kernel-1.3-1.3.M01.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-lucene-index-0.5-1.3.M01.jar +0 -0
- data/lib/neo4j/jars/ha/{neo4j-ha-0.6-SNAPSHOT.jar → neo4j-ha-0.6-1.3.M01.jar} +0 -0
- data/lib/neo4j/jars/ha/neo4j-management-1.3-1.3.M01.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-shell-1.3-1.3.M01.jar +0 -0
- data/lib/neo4j/migrations/class_methods.rb +102 -0
- data/lib/neo4j/migrations/extensions.rb +10 -9
- data/lib/neo4j/migrations/lazy_node_mixin.rb +50 -0
- data/lib/neo4j/migrations/migration.rb +84 -81
- data/lib/neo4j/migrations/migrations.rb +6 -100
- data/lib/neo4j/migrations/node_mixin.rb +80 -0
- data/lib/neo4j/migrations/ref_node_wrapper.rb +32 -0
- data/lib/neo4j/neo4j.rb +11 -0
- data/lib/neo4j/node.rb +55 -25
- data/lib/neo4j/{mapping/class_methods/init_node.rb → node_mixin/class_methods.rb} +3 -3
- data/lib/neo4j/{mapping → node_mixin}/node_mixin.rb +35 -18
- data/lib/neo4j/{mapping/class_methods/property.rb → property/class_methods.rb} +5 -4
- data/lib/neo4j/{property.rb → property/property.rb} +2 -0
- data/lib/neo4j/rails/finders.rb +21 -7
- data/lib/neo4j/rails/rails.rb +19 -0
- data/lib/neo4j/rails/timestamps.rb +1 -1
- data/lib/neo4j/relationship.rb +7 -0
- data/lib/neo4j/{mapping/class_methods/init_rel.rb → relationship_mixin/class_methods.rb} +4 -4
- data/lib/neo4j/{mapping → relationship_mixin}/relationship_mixin.rb +23 -5
- data/lib/neo4j/rels/rels.rb +85 -0
- data/lib/neo4j/rels/traverser.rb +102 -0
- data/lib/neo4j/{mapping/class_methods/rule.rb → rule/class_methods.rb} +11 -11
- data/lib/neo4j/rule/functions/count.rb +37 -0
- data/lib/neo4j/rule/functions/function.rb +74 -0
- data/lib/neo4j/rule/functions/functions.rb +3 -0
- data/lib/neo4j/rule/functions/sum.rb +29 -0
- data/lib/neo4j/rule/rule.rb +5 -0
- data/lib/neo4j/rule/rule_event_listener.rb +162 -0
- data/lib/neo4j/rule/rule_node.rb +182 -0
- data/lib/neo4j/to_java.rb +0 -14
- data/lib/neo4j/traversal/filter_predicate.rb +25 -0
- data/lib/neo4j/traversal/prune_evaluator.rb +14 -0
- data/lib/neo4j/traversal/rel_expander.rb +31 -0
- data/lib/neo4j/traversal/traversal.rb +90 -0
- data/lib/neo4j/traversal/traverser.rb +173 -0
- data/lib/neo4j/{type_converters.rb → type_converters/type_converters.rb} +0 -0
- data/lib/neo4j/version.rb +1 -1
- data/lib/test.rb~ +2 -0
- data/neo4j.gemspec +11 -10
- metadata +48 -37
- data/lib/neo4j/functions/count.rb +0 -33
- data/lib/neo4j/functions/function.rb +0 -72
- data/lib/neo4j/functions/sum.rb +0 -27
- data/lib/neo4j/jars/core/neo4j-graph-algo-0.8-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-index-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-kernel-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-lucene-index-0.5-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-management-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-shell-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/mapping/decl_relationship_dsl.rb +0 -214
- data/lib/neo4j/mapping/rule.rb +0 -158
- data/lib/neo4j/mapping/rule_node.rb +0 -176
- data/lib/neo4j/migrations.rb +0 -12
- data/lib/neo4j/migrations/global_migration.rb +0 -29
- data/lib/neo4j/migrations/lazy_migration_mixin.rb +0 -47
- data/lib/neo4j/migrations/migration_mixin.rb +0 -78
- data/lib/neo4j/node_mixin.rb +0 -4
- data/lib/neo4j/node_relationship.rb +0 -161
- data/lib/neo4j/node_traverser.rb +0 -224
- data/lib/neo4j/relationship_mixin.rb +0 -4
- data/lib/neo4j/relationship_traverser.rb +0 -92
data/lib/neo4j/to_java.rb
CHANGED
@@ -28,17 +28,3 @@ module Neo4j
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
32
|
-
|
33
|
-
org.neo4j.kernel.impl.core.IntArrayIterator.class_eval do
|
34
|
-
def each_wrapped
|
35
|
-
while(hasNext())
|
36
|
-
yield self.next().wrapper
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def wrapped
|
41
|
-
Enumerator.new(self, :each_wrapped)
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Neo4j
|
2
|
+
module Traversal
|
3
|
+
class FilterPredicate # :nodoc:
|
4
|
+
include org.neo4j.helpers.Predicate
|
5
|
+
def initialize
|
6
|
+
@procs = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def add(proc)
|
10
|
+
@procs << proc
|
11
|
+
end
|
12
|
+
|
13
|
+
def include_start_node
|
14
|
+
@include_start_node = true
|
15
|
+
end
|
16
|
+
|
17
|
+
def accept(path)
|
18
|
+
return false if @include_start_node && path.length == 0
|
19
|
+
# find the first filter which returns false
|
20
|
+
# if not found then we will accept this path
|
21
|
+
@procs.find {|p| !p.call(path)}.nil?
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Neo4j
|
2
|
+
module Traversal
|
3
|
+
class RelExpander
|
4
|
+
include org.neo4j.graphdb.RelationshipExpander
|
5
|
+
|
6
|
+
attr_accessor :reversed
|
7
|
+
|
8
|
+
def initialize(&block)
|
9
|
+
@block = block
|
10
|
+
@reverse = false
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.create_pair(&block)
|
14
|
+
normal = RelExpander.new(&block)
|
15
|
+
reversed = RelExpander.new(&block)
|
16
|
+
normal.reversed = reversed
|
17
|
+
reversed.reversed = normal
|
18
|
+
reversed.reverse!
|
19
|
+
normal
|
20
|
+
end
|
21
|
+
|
22
|
+
def expand(node)
|
23
|
+
@block.arity == 1 ? @block.call(node) : @block.call(node, @reverse)
|
24
|
+
end
|
25
|
+
|
26
|
+
def reverse!
|
27
|
+
@reverse = true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'neo4j/traversal/filter_predicate'
|
2
|
+
require 'neo4j/traversal/prune_evaluator'
|
3
|
+
require 'neo4j/traversal/rel_expander'
|
4
|
+
require 'neo4j/traversal/traverser'
|
5
|
+
|
6
|
+
module Neo4j
|
7
|
+
module Traversal
|
8
|
+
include ToJava
|
9
|
+
|
10
|
+
# A more powerful alternative of #outgoing, #incoming and #both method.
|
11
|
+
# You can use this method for example to only traverse nodes based on properties on the relationships
|
12
|
+
#
|
13
|
+
# ==== Example
|
14
|
+
#
|
15
|
+
# some_node.expand { |n| n._rels.find_all { |r| r[:age] > 5 } }.depth(:all).to_a
|
16
|
+
#
|
17
|
+
# The above traverse all relationships with a property of age > 5
|
18
|
+
#
|
19
|
+
def expand(&expander)
|
20
|
+
Traverser.new(self).expander(&expander)
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
# Returns the outgoing nodes for this node.
|
25
|
+
#
|
26
|
+
# ==== Returns
|
27
|
+
# a Neo4j::NodeTraverser which can be used to further specify which nodes should be included
|
28
|
+
# in traversal by using the <tt>depth</tt>, <tt>filter</tt> and <tt>prune</tt> methods.
|
29
|
+
#
|
30
|
+
# ==== Examples
|
31
|
+
# # Find all my friends (nodes of depth 1 of type <tt>friends</tt>)
|
32
|
+
# me.outgoing(:friends).each {|friend| puts friend[:name]}
|
33
|
+
#
|
34
|
+
# # Find all my friends and their friends (nodes of depth 1 of type <tt>friends</tt>)
|
35
|
+
# # me.outgoing(:friends).depth(2).each {|friend| puts friend[:name]}
|
36
|
+
#
|
37
|
+
# # Find all my friends and include my self in the result
|
38
|
+
# me.outgoing(:friends).depth(4).include_start_node.each {...}
|
39
|
+
#
|
40
|
+
# # Find all my friends friends friends, etc. at any depth
|
41
|
+
# me.outgoing(:friends).depth(:all).each {...}
|
42
|
+
#
|
43
|
+
# # Find all my friends friends but do not include my friends (only depth == 2)
|
44
|
+
# me.outgoing(:friends).depth(2).filter{|path| path.length == 2}
|
45
|
+
#
|
46
|
+
# # Find all my friends but 'cut off' some parts of the traversal path
|
47
|
+
# me.outgoing(:friends).depth(42).prune(|path| an_expression_using_path_returning_true_false }
|
48
|
+
#
|
49
|
+
# # Find all my friends and work colleges
|
50
|
+
# me.outgoing(:friends).outgoing(:work).each {...}
|
51
|
+
#
|
52
|
+
# Of course all the methods <tt>outgoing</tt>, <tt>incoming</tt>, <tt>both</tt>, <tt>depth</tt>, <tt>include_start_node</tt>, <tt>filter</tt>, and <tt>prune</tt> can be combined.
|
53
|
+
#
|
54
|
+
def outgoing(type)
|
55
|
+
if type
|
56
|
+
Traverser.new(self).outgoing(type)
|
57
|
+
else
|
58
|
+
raise "Not implemented getting all types of outgoing relationship. Specify a relationship type"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
# Returns the incoming nodes of given type(s).
|
64
|
+
#
|
65
|
+
# See #outgoing
|
66
|
+
#
|
67
|
+
def incoming(type)
|
68
|
+
if type
|
69
|
+
Traverser.new(self).incoming(type)
|
70
|
+
else
|
71
|
+
raise "Not implemented getting all types of incoming relationship. Specify a relationship type"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Returns both incoming and outgoing nodes of given types(s)
|
76
|
+
#
|
77
|
+
# If a type is not given then it will return all types of relationships.
|
78
|
+
#
|
79
|
+
# See #outgoing
|
80
|
+
#
|
81
|
+
def both(type=nil)
|
82
|
+
if type
|
83
|
+
Traverser.new(self).both(type)
|
84
|
+
else
|
85
|
+
Traverser.new(self) # default is both
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,173 @@
|
|
1
|
+
module Neo4j
|
2
|
+
|
3
|
+
module Traversal
|
4
|
+
|
5
|
+
class Traverser
|
6
|
+
include Enumerable
|
7
|
+
include ToJava
|
8
|
+
include WillPaginate::Finders::Base
|
9
|
+
|
10
|
+
|
11
|
+
def initialize(from, type = nil, dir=nil)
|
12
|
+
@from = from
|
13
|
+
@depth = 1
|
14
|
+
if type.nil? || dir.nil?
|
15
|
+
@td = org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl.new.breadth_first()
|
16
|
+
else
|
17
|
+
@type = type_to_java(type)
|
18
|
+
@dir = dir_to_java(dir)
|
19
|
+
@td = org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl.new.breadth_first().relationships(@type, @dir)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def to_s
|
25
|
+
"NodeTraverser [from: #{@from.neo_id} depth: #{@depth} type: #{@type} dir:#{@dir}"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def wp_query(options, pager, args, &block) #:nodoc:
|
30
|
+
page = pager.current_page || 1
|
31
|
+
per_page = pager.per_page
|
32
|
+
to = per_page * page
|
33
|
+
from = to - per_page
|
34
|
+
i = 0
|
35
|
+
res = []
|
36
|
+
iterator.each do |node|
|
37
|
+
res << node.wrapper if i >= from
|
38
|
+
i += 1
|
39
|
+
break if i >= to
|
40
|
+
end
|
41
|
+
pager.replace res
|
42
|
+
pager.total_entries ||= count
|
43
|
+
end
|
44
|
+
|
45
|
+
def <<(other_node)
|
46
|
+
new(other_node)
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
50
|
+
# Returns an real ruby array.
|
51
|
+
def to_ary
|
52
|
+
self.to_a
|
53
|
+
end
|
54
|
+
|
55
|
+
def new(other_node)
|
56
|
+
case @dir
|
57
|
+
when org.neo4j.graphdb.Direction::OUTGOING
|
58
|
+
@from.create_relationship_to(other_node, @type)
|
59
|
+
when org.neo4j.graphdb.Direction::INCOMING
|
60
|
+
other_node._java_node.create_relationship_to(@from, @type)
|
61
|
+
else
|
62
|
+
raise "Only allowed to create outgoing or incoming relationships (not #@dir)"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def both(type)
|
67
|
+
@type = type_to_java(type) if type
|
68
|
+
@dir = dir_to_java(:both)
|
69
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
70
|
+
self
|
71
|
+
end
|
72
|
+
|
73
|
+
def expander(&expander)
|
74
|
+
@td = @td.expand(RelExpander.create_pair(&expander))
|
75
|
+
self
|
76
|
+
end
|
77
|
+
|
78
|
+
def outgoing(type)
|
79
|
+
@type = type_to_java(type) if type
|
80
|
+
@dir = dir_to_java(:outgoing)
|
81
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
82
|
+
self
|
83
|
+
end
|
84
|
+
|
85
|
+
def incoming(type)
|
86
|
+
@type = type_to_java(type) if type
|
87
|
+
@dir = dir_to_java(:incoming)
|
88
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
89
|
+
self
|
90
|
+
end
|
91
|
+
|
92
|
+
def filter_method(name, &proc)
|
93
|
+
# add method name
|
94
|
+
singelton = class << self;
|
95
|
+
self;
|
96
|
+
end
|
97
|
+
singelton.send(:define_method, name) { filter &proc }
|
98
|
+
self
|
99
|
+
end
|
100
|
+
|
101
|
+
def functions_method(func, rule_node, rule_name)
|
102
|
+
singelton = class << self;
|
103
|
+
self;
|
104
|
+
end
|
105
|
+
singelton.send(:define_method, func.class.function_name) do |*args|
|
106
|
+
function_id = args.empty? ? "_classname" : args[0]
|
107
|
+
function = rule_node.find_function(rule_name, func.class.function_name, function_id)
|
108
|
+
function.value(rule_node.rule_node, rule_name)
|
109
|
+
end
|
110
|
+
self
|
111
|
+
end
|
112
|
+
|
113
|
+
def prune(&block)
|
114
|
+
@td = @td.prune(PruneEvaluator.new(block))
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
def filter(&block)
|
119
|
+
# we keep a reference to filter predicate since only one filter is allowed and we might want to modify it
|
120
|
+
@filter_predicate ||= FilterPredicate.new
|
121
|
+
@filter_predicate.add(block)
|
122
|
+
@td = @td.filter(@filter_predicate)
|
123
|
+
self
|
124
|
+
end
|
125
|
+
|
126
|
+
# Sets depth, if :all then it will traverse any depth
|
127
|
+
def depth(d)
|
128
|
+
@depth = d
|
129
|
+
self
|
130
|
+
end
|
131
|
+
|
132
|
+
def include_start_node
|
133
|
+
@include_start_node = true
|
134
|
+
self
|
135
|
+
end
|
136
|
+
|
137
|
+
def size
|
138
|
+
to_a.size
|
139
|
+
end
|
140
|
+
|
141
|
+
alias_method :length, :size
|
142
|
+
|
143
|
+
def [](index)
|
144
|
+
each_with_index { |node, i| break node if index == i }
|
145
|
+
end
|
146
|
+
|
147
|
+
def empty?
|
148
|
+
first == nil
|
149
|
+
end
|
150
|
+
|
151
|
+
def each
|
152
|
+
iterator.each { |i| yield i.wrapper }
|
153
|
+
end
|
154
|
+
|
155
|
+
# Same as #each but does not wrap each node in a Ruby class, yields the Java Neo4j Node instance instead.
|
156
|
+
def each_raw
|
157
|
+
iterator.each { |i| yield i }
|
158
|
+
end
|
159
|
+
|
160
|
+
def iterator
|
161
|
+
unless @include_start_node
|
162
|
+
if @filter_predicate
|
163
|
+
@filter_predicate.include_start_node
|
164
|
+
else
|
165
|
+
@td = @td.filter(org.neo4j.kernel.Traversal.return_all_but_start_node)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
@td = @td.prune(org.neo4j.kernel.Traversal.pruneAfterDepth(@depth)) unless @depth == :all
|
169
|
+
@td.traverse(@from).nodes
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
File without changes
|
data/lib/neo4j/version.rb
CHANGED
data/lib/test.rb~
ADDED
data/neo4j.gemspec
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
lib = File.expand_path('../lib/', __FILE__)
|
2
2
|
$:.unshift lib unless $:.include?(lib)
|
3
|
-
|
3
|
+
|
4
4
|
require 'neo4j/version'
|
5
5
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
|
-
s.name
|
9
|
-
s.version
|
8
|
+
s.name = "neo4j"
|
9
|
+
s.version = Neo4j::VERSION
|
10
10
|
s.platform = 'java'
|
11
|
-
s.
|
12
|
-
|
11
|
+
s.required_ruby_version = ">= 1.8.7"
|
12
|
+
|
13
|
+
s.authors = "Andreas Ronge"
|
14
|
+
s.email = 'andreas.ronge@gmail.com'
|
13
15
|
s.homepage = "http://github.com/andreasronge/neo4j/tree"
|
14
16
|
s.rubyforge_project = 'neo4j'
|
15
17
|
s.summary = "A graph database for JRuby"
|
@@ -17,17 +19,16 @@ Gem::Specification.new do |s|
|
|
17
19
|
You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database.
|
18
20
|
The programmer works with an object-oriented, flexible network structure rather than with strict and static tables — yet enjoys all the benefits of a fully transactional, enterprise-strength database.
|
19
21
|
It comes included with the Apache Lucene document database.
|
20
|
-
EOF
|
22
|
+
EOF
|
21
23
|
|
22
24
|
s.require_path = 'lib'
|
23
|
-
s.files
|
24
|
-
# s.bindir = 'bin'
|
25
|
+
s.files = Dir.glob("{bin,lib,config}/**/*") + %w(README.rdoc CHANGELOG CONTRIBUTORS Gemfile neo4j.gemspec)
|
25
26
|
s.executables = 'neo4j-shell'
|
26
27
|
s.has_rdoc = true
|
27
28
|
s.extra_rdoc_files = %w( README.rdoc )
|
28
29
|
s.rdoc_options = ["--quiet", "--title", "Neo4j.rb", "--line-numbers", "--main", "README.rdoc", "--inline-source"]
|
29
|
-
|
30
|
-
s.add_dependency('orm_adapter',">= 0.0.3")
|
30
|
+
|
31
|
+
s.add_dependency('orm_adapter', ">= 0.0.3")
|
31
32
|
s.add_dependency("activemodel", ">= 3.0.0")
|
32
33
|
s.add_dependency("will_paginate", ["~>3.0.pre"])
|
33
34
|
s.add_dependency("railties", ">= 3.0.0")
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: neo4j
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 6
|
5
|
-
version: 1.0.0.beta.
|
5
|
+
version: 1.0.0.beta.28
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Andreas Ronge
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-02-02 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -72,6 +72,7 @@ files:
|
|
72
72
|
- bin/neo4j-shell~
|
73
73
|
- lib/neo4j.rb
|
74
74
|
- lib/Gemfile~
|
75
|
+
- lib/test.rb~
|
75
76
|
- lib/config2.yml~
|
76
77
|
- lib/perf.rb~
|
77
78
|
- lib/generators/neo4j.rb
|
@@ -80,40 +81,46 @@ files:
|
|
80
81
|
- lib/orm_adapter/adapters/neo4j.rb
|
81
82
|
- lib/neo4j/event_handler.rb
|
82
83
|
- lib/neo4j/model.rb
|
83
|
-
- lib/neo4j/migrations.rb
|
84
|
-
- lib/neo4j/type_converters.rb
|
85
|
-
- lib/neo4j/node_traverser.rb
|
86
|
-
- lib/neo4j/relationship_traverser.rb
|
87
84
|
- lib/neo4j/config.rb
|
88
|
-
- lib/neo4j/algo.rb
|
89
85
|
- lib/neo4j/transaction.rb
|
90
86
|
- lib/neo4j/neo4j.rb
|
91
87
|
- lib/neo4j/node.rb
|
92
|
-
- lib/neo4j/node_mixin.rb
|
93
|
-
- lib/neo4j/property.rb
|
94
|
-
- lib/neo4j/relationship_mixin.rb
|
95
88
|
- lib/neo4j/load.rb
|
96
89
|
- lib/neo4j/database.rb
|
97
90
|
- lib/neo4j/version.rb
|
98
|
-
- lib/neo4j/node_relationship.rb
|
99
91
|
- lib/neo4j/equal.rb
|
100
92
|
- lib/neo4j/relationship.rb
|
101
93
|
- lib/neo4j/to_java.rb
|
94
|
+
- lib/neo4j/algo/algo.rb
|
95
|
+
- lib/neo4j/has_list/mapping.rb
|
96
|
+
- lib/neo4j/has_list/class_methods.rb
|
97
|
+
- lib/neo4j/has_list/has_list.rb
|
98
|
+
- lib/neo4j/property/property.rb
|
99
|
+
- lib/neo4j/property/class_methods.rb
|
100
|
+
- lib/neo4j/traversal/rel_expander.rb
|
101
|
+
- lib/neo4j/traversal/filter_predicate.rb
|
102
|
+
- lib/neo4j/traversal/prune_evaluator.rb
|
103
|
+
- lib/neo4j/traversal/traversal.rb
|
104
|
+
- lib/neo4j/traversal/traverser.rb
|
105
|
+
- lib/neo4j/relationship_mixin/relationship_mixin.rb
|
106
|
+
- lib/neo4j/relationship_mixin/class_methods.rb
|
107
|
+
- lib/neo4j/type_converters/type_converters.rb
|
102
108
|
- lib/neo4j/migrations/migrations.rb
|
103
|
-
- lib/neo4j/migrations/
|
104
|
-
- lib/neo4j/migrations/lazy_migration_mixin.rb
|
109
|
+
- lib/neo4j/migrations/lazy_node_mixin.rb
|
105
110
|
- lib/neo4j/migrations/extensions.rb
|
111
|
+
- lib/neo4j/migrations/node_mixin.rb
|
106
112
|
- lib/neo4j/migrations/migration.rb
|
107
|
-
- lib/neo4j/migrations/
|
108
|
-
- lib/neo4j/
|
109
|
-
- lib/neo4j/
|
110
|
-
- lib/neo4j/
|
113
|
+
- lib/neo4j/migrations/class_methods.rb
|
114
|
+
- lib/neo4j/migrations/ref_node_wrapper.rb
|
115
|
+
- lib/neo4j/rels/traverser.rb
|
116
|
+
- lib/neo4j/rels/rels.rb
|
111
117
|
- lib/neo4j/rails/attributes.rb
|
112
118
|
- lib/neo4j/rails/model.rb
|
113
119
|
- lib/neo4j/rails/validations.rb
|
114
120
|
- lib/neo4j/rails/persistence.rb
|
115
121
|
- lib/neo4j/rails/serialization.rb
|
116
122
|
- lib/neo4j/rails/railtie.rb
|
123
|
+
- lib/neo4j/rails/rails.rb
|
117
124
|
- lib/neo4j/rails/lucene_connection_closer.rb
|
118
125
|
- lib/neo4j/rails/transaction.rb
|
119
126
|
- lib/neo4j/rails/timestamps.rb
|
@@ -127,37 +134,41 @@ files:
|
|
127
134
|
- lib/neo4j/rails/validations/uniqueness.rb
|
128
135
|
- lib/neo4j/rails/validations/non_nil.rb
|
129
136
|
- lib/neo4j/jars/core/lucene-core-3.0.3.jar
|
130
|
-
- lib/neo4j/jars/core/neo4j-
|
137
|
+
- lib/neo4j/jars/core/neo4j-kernel-1.3-1.3.M01.jar
|
138
|
+
- lib/neo4j/jars/core/neo4j-lucene-index-0.5-1.3.M01.jar
|
131
139
|
- lib/neo4j/jars/core/geronimo-jta_1.1_spec-1.1.1.jar
|
132
|
-
- lib/neo4j/jars/core/neo4j-
|
133
|
-
- lib/neo4j/jars/core/neo4j-
|
134
|
-
- lib/neo4j/jars/
|
140
|
+
- lib/neo4j/jars/core/neo4j-graph-algo-0.8-1.3.M01.jar
|
141
|
+
- lib/neo4j/jars/core/neo4j-index-1.3-1.3.M01.jar
|
142
|
+
- lib/neo4j/jars/ha/neo4j-management-1.3-1.3.M01.jar
|
135
143
|
- lib/neo4j/jars/ha/org.apache.servicemix.bundles.lucene-3.0.1_2.jar
|
136
144
|
- lib/neo4j/jars/ha/zookeeper-3.3.2.jar
|
137
|
-
- lib/neo4j/jars/ha/neo4j-
|
145
|
+
- lib/neo4j/jars/ha/neo4j-shell-1.3-1.3.M01.jar
|
138
146
|
- lib/neo4j/jars/ha/netty-3.2.1.Final.jar
|
147
|
+
- lib/neo4j/jars/ha/neo4j-ha-0.6-1.3.M01.jar
|
139
148
|
- lib/neo4j/jars/ha/log4j-1.2.16.jar
|
140
|
-
- lib/neo4j/jars/ha/neo4j-shell-1.3-SNAPSHOT.jar
|
141
149
|
- lib/neo4j/jars/ha/org.apache.servicemix.bundles.jline-0.9.94_1.jar
|
142
|
-
- lib/neo4j/jars/ha/neo4j-ha-0.6-SNAPSHOT.jar
|
143
|
-
- lib/neo4j/mapping/rule.rb
|
144
|
-
- lib/neo4j/mapping/decl_relationship_dsl.rb
|
145
|
-
- lib/neo4j/mapping/rule_node.rb
|
146
|
-
- lib/neo4j/mapping/node_mixin.rb
|
147
|
-
- lib/neo4j/mapping/has_n.rb
|
148
|
-
- lib/neo4j/mapping/relationship_mixin.rb
|
149
|
-
- lib/neo4j/mapping/has_list.rb
|
150
|
-
- lib/neo4j/mapping/class_methods/rule.rb
|
151
|
-
- lib/neo4j/mapping/class_methods/list.rb
|
152
|
-
- lib/neo4j/mapping/class_methods/init_node.rb
|
153
|
-
- lib/neo4j/mapping/class_methods/property.rb
|
154
|
-
- lib/neo4j/mapping/class_methods/init_rel.rb
|
155
|
-
- lib/neo4j/mapping/class_methods/relationship.rb
|
156
150
|
- lib/neo4j/index/indexer.rb
|
157
151
|
- lib/neo4j/index/lucene_query.rb
|
158
152
|
- lib/neo4j/index/indexer_registry.rb
|
159
153
|
- lib/neo4j/index/class_methods.rb
|
160
154
|
- lib/neo4j/index/index.rb
|
155
|
+
- lib/neo4j/batch/inserter.rb
|
156
|
+
- lib/neo4j/batch/indexer.rb
|
157
|
+
- lib/neo4j/batch/batch.rb
|
158
|
+
- lib/neo4j/has_n/decl_relationship_dsl.rb
|
159
|
+
- lib/neo4j/has_n/has_n.rb
|
160
|
+
- lib/neo4j/has_n/mapping.rb
|
161
|
+
- lib/neo4j/has_n/class_methods.rb
|
162
|
+
- lib/neo4j/node_mixin/node_mixin.rb
|
163
|
+
- lib/neo4j/node_mixin/class_methods.rb
|
164
|
+
- lib/neo4j/rule/rule.rb
|
165
|
+
- lib/neo4j/rule/rule_node.rb
|
166
|
+
- lib/neo4j/rule/class_methods.rb
|
167
|
+
- lib/neo4j/rule/rule_event_listener.rb
|
168
|
+
- lib/neo4j/rule/functions/function.rb
|
169
|
+
- lib/neo4j/rule/functions/count.rb
|
170
|
+
- lib/neo4j/rule/functions/sum.rb
|
171
|
+
- lib/neo4j/rule/functions/functions.rb
|
161
172
|
- config/locales/en.yml
|
162
173
|
- config/neo4j/config.yml
|
163
174
|
- README.rdoc
|