neo4j 1.0.0.beta.27-java → 1.0.0.beta.28-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/CONTRIBUTORS +1 -0
  2. data/lib/neo4j.rb +38 -72
  3. data/lib/neo4j/{algo.rb → algo/algo.rb} +5 -1
  4. data/lib/neo4j/batch/batch.rb +2 -0
  5. data/lib/neo4j/batch/indexer.rb +108 -0
  6. data/lib/neo4j/batch/inserter.rb +168 -0
  7. data/lib/neo4j/database.rb +13 -8
  8. data/lib/neo4j/{mapping/class_methods/list.rb → has_list/class_methods.rb} +2 -4
  9. data/lib/neo4j/has_list/has_list.rb +3 -0
  10. data/lib/neo4j/{mapping/has_list.rb → has_list/mapping.rb} +2 -2
  11. data/lib/neo4j/{mapping/class_methods/relationship.rb → has_n/class_methods.rb} +42 -12
  12. data/lib/neo4j/has_n/decl_relationship_dsl.rb +216 -0
  13. data/lib/neo4j/has_n/has_n.rb +3 -0
  14. data/lib/neo4j/{mapping/has_n.rb → has_n/mapping.rb} +16 -7
  15. data/lib/neo4j/index/index.rb +5 -0
  16. data/lib/neo4j/index/indexer.rb +27 -22
  17. data/lib/neo4j/index/lucene_query.rb +3 -1
  18. data/lib/neo4j/jars/core/neo4j-graph-algo-0.8-1.3.M01.jar +0 -0
  19. data/lib/neo4j/jars/core/neo4j-index-1.3-1.3.M01.jar +0 -0
  20. data/lib/neo4j/jars/core/neo4j-kernel-1.3-1.3.M01.jar +0 -0
  21. data/lib/neo4j/jars/core/neo4j-lucene-index-0.5-1.3.M01.jar +0 -0
  22. data/lib/neo4j/jars/ha/{neo4j-ha-0.6-SNAPSHOT.jar → neo4j-ha-0.6-1.3.M01.jar} +0 -0
  23. data/lib/neo4j/jars/ha/neo4j-management-1.3-1.3.M01.jar +0 -0
  24. data/lib/neo4j/jars/ha/neo4j-shell-1.3-1.3.M01.jar +0 -0
  25. data/lib/neo4j/migrations/class_methods.rb +102 -0
  26. data/lib/neo4j/migrations/extensions.rb +10 -9
  27. data/lib/neo4j/migrations/lazy_node_mixin.rb +50 -0
  28. data/lib/neo4j/migrations/migration.rb +84 -81
  29. data/lib/neo4j/migrations/migrations.rb +6 -100
  30. data/lib/neo4j/migrations/node_mixin.rb +80 -0
  31. data/lib/neo4j/migrations/ref_node_wrapper.rb +32 -0
  32. data/lib/neo4j/neo4j.rb +11 -0
  33. data/lib/neo4j/node.rb +55 -25
  34. data/lib/neo4j/{mapping/class_methods/init_node.rb → node_mixin/class_methods.rb} +3 -3
  35. data/lib/neo4j/{mapping → node_mixin}/node_mixin.rb +35 -18
  36. data/lib/neo4j/{mapping/class_methods/property.rb → property/class_methods.rb} +5 -4
  37. data/lib/neo4j/{property.rb → property/property.rb} +2 -0
  38. data/lib/neo4j/rails/finders.rb +21 -7
  39. data/lib/neo4j/rails/rails.rb +19 -0
  40. data/lib/neo4j/rails/timestamps.rb +1 -1
  41. data/lib/neo4j/relationship.rb +7 -0
  42. data/lib/neo4j/{mapping/class_methods/init_rel.rb → relationship_mixin/class_methods.rb} +4 -4
  43. data/lib/neo4j/{mapping → relationship_mixin}/relationship_mixin.rb +23 -5
  44. data/lib/neo4j/rels/rels.rb +85 -0
  45. data/lib/neo4j/rels/traverser.rb +102 -0
  46. data/lib/neo4j/{mapping/class_methods/rule.rb → rule/class_methods.rb} +11 -11
  47. data/lib/neo4j/rule/functions/count.rb +37 -0
  48. data/lib/neo4j/rule/functions/function.rb +74 -0
  49. data/lib/neo4j/rule/functions/functions.rb +3 -0
  50. data/lib/neo4j/rule/functions/sum.rb +29 -0
  51. data/lib/neo4j/rule/rule.rb +5 -0
  52. data/lib/neo4j/rule/rule_event_listener.rb +162 -0
  53. data/lib/neo4j/rule/rule_node.rb +182 -0
  54. data/lib/neo4j/to_java.rb +0 -14
  55. data/lib/neo4j/traversal/filter_predicate.rb +25 -0
  56. data/lib/neo4j/traversal/prune_evaluator.rb +14 -0
  57. data/lib/neo4j/traversal/rel_expander.rb +31 -0
  58. data/lib/neo4j/traversal/traversal.rb +90 -0
  59. data/lib/neo4j/traversal/traverser.rb +173 -0
  60. data/lib/neo4j/{type_converters.rb → type_converters/type_converters.rb} +0 -0
  61. data/lib/neo4j/version.rb +1 -1
  62. data/lib/test.rb~ +2 -0
  63. data/neo4j.gemspec +11 -10
  64. metadata +48 -37
  65. data/lib/neo4j/functions/count.rb +0 -33
  66. data/lib/neo4j/functions/function.rb +0 -72
  67. data/lib/neo4j/functions/sum.rb +0 -27
  68. data/lib/neo4j/jars/core/neo4j-graph-algo-0.8-SNAPSHOT.jar +0 -0
  69. data/lib/neo4j/jars/core/neo4j-index-1.3-SNAPSHOT.jar +0 -0
  70. data/lib/neo4j/jars/core/neo4j-kernel-1.3-SNAPSHOT.jar +0 -0
  71. data/lib/neo4j/jars/core/neo4j-lucene-index-0.5-SNAPSHOT.jar +0 -0
  72. data/lib/neo4j/jars/ha/neo4j-management-1.3-SNAPSHOT.jar +0 -0
  73. data/lib/neo4j/jars/ha/neo4j-shell-1.3-SNAPSHOT.jar +0 -0
  74. data/lib/neo4j/mapping/decl_relationship_dsl.rb +0 -214
  75. data/lib/neo4j/mapping/rule.rb +0 -158
  76. data/lib/neo4j/mapping/rule_node.rb +0 -176
  77. data/lib/neo4j/migrations.rb +0 -12
  78. data/lib/neo4j/migrations/global_migration.rb +0 -29
  79. data/lib/neo4j/migrations/lazy_migration_mixin.rb +0 -47
  80. data/lib/neo4j/migrations/migration_mixin.rb +0 -78
  81. data/lib/neo4j/node_mixin.rb +0 -4
  82. data/lib/neo4j/node_relationship.rb +0 -161
  83. data/lib/neo4j/node_traverser.rb +0 -224
  84. data/lib/neo4j/relationship_mixin.rb +0 -4
  85. 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,14 @@
1
+ module Neo4j
2
+ module Traversal
3
+ class PruneEvaluator # :nodoc:
4
+ include org.neo4j.graphdb.traversal.PruneEvaluator
5
+ def initialize(proc)
6
+ @proc = proc
7
+ end
8
+
9
+ def prune_after(path)
10
+ @proc.call(path)
11
+ end
12
+ end
13
+ end
14
+ 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
data/lib/neo4j/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Neo4j
2
- VERSION = "1.0.0.beta.27"
2
+ VERSION = "1.0.0.beta.28"
3
3
  end
data/lib/test.rb~ ADDED
@@ -0,0 +1,2 @@
1
+ require 'neo4j'
2
+
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 = "neo4j"
9
- s.version = Neo4j::VERSION
8
+ s.name = "neo4j"
9
+ s.version = Neo4j::VERSION
10
10
  s.platform = 'java'
11
- s.authors = "Andreas Ronge"
12
- s.email = 'andreas.ronge@gmail.com'
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 = Dir.glob("{bin,lib,config}/**/*") + %w(README.rdoc CHANGELOG CONTRIBUTORS Gemfile neo4j.gemspec)
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
- s.required_ruby_version = ">= 1.8.7"
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.27
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-01-21 00:00:00 +01:00
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/migration_mixin.rb
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/global_migration.rb
108
- - lib/neo4j/functions/function.rb
109
- - lib/neo4j/functions/count.rb
110
- - lib/neo4j/functions/sum.rb
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-index-1.3-SNAPSHOT.jar
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-lucene-index-0.5-SNAPSHOT.jar
133
- - lib/neo4j/jars/core/neo4j-graph-algo-0.8-SNAPSHOT.jar
134
- - lib/neo4j/jars/core/neo4j-kernel-1.3-SNAPSHOT.jar
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-management-1.3-SNAPSHOT.jar
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