neo4j 1.0.0-java → 1.1.0.beta.1-java
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTORS +1 -0
- data/Gemfile +1 -0
- data/README.rdoc +1 -0
- data/lib/neo4j/algo/algo.rb +5 -5
- data/lib/neo4j/database.rb +1 -1
- data/lib/neo4j/has_n/class_methods.rb +5 -6
- data/lib/neo4j/has_n/decl_relationship_dsl.rb +32 -21
- data/lib/neo4j/has_n/mapping.rb +4 -5
- data/lib/neo4j/index/indexer.rb +21 -17
- data/lib/neo4j/index/indexer_registry.rb +1 -0
- data/lib/neo4j/index/lucene_query.rb +1 -1
- data/lib/neo4j/jars/core/neo4j-backup-1.3.jar +0 -0
- data/lib/neo4j/jars/core/{neo4j-graph-algo-1.3.M03.jar → neo4j-graph-algo-1.3.jar} +0 -0
- data/lib/neo4j/jars/core/neo4j-kernel-1.3.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-lucene-index-1.3.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-com-1.3.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-ha-1.3.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-jmx-1.3.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-management-1.3.jar +0 -0
- data/lib/neo4j/jars/ha/{neo4j-shell-1.3.M03.jar → neo4j-shell-1.3.jar} +0 -0
- data/lib/neo4j/neo4j.rb +1 -1
- data/lib/neo4j/node.rb +2 -3
- data/lib/neo4j/node_mixin/node_mixin.rb +5 -0
- data/lib/neo4j/property/class_methods.rb +6 -10
- data/lib/neo4j/property/property.rb +0 -2
- data/lib/neo4j/rails/attributes.rb +10 -8
- data/lib/neo4j/rails/callbacks.rb +1 -1
- data/lib/neo4j/rails/finders.rb +1 -1
- data/lib/neo4j/rails/lucene_connection_closer.rb +1 -3
- data/lib/neo4j/rails/mapping/property.rb +112 -35
- data/lib/neo4j/rails/model.rb +10 -0
- data/lib/neo4j/rails/persistence.rb +10 -4
- data/lib/neo4j/rails/rails.rb +6 -2
- data/lib/neo4j/rails/rel_persistence.rb +231 -0
- data/lib/neo4j/rails/relationship.rb +126 -0
- data/lib/neo4j/rails/relationships/node_dsl.rb +91 -0
- data/lib/neo4j/rails/relationships/relationships.rb +47 -40
- data/lib/neo4j/rails/relationships/rels_dsl.rb +82 -0
- data/lib/neo4j/rails/relationships/storage.rb +161 -0
- data/lib/neo4j/rails/serialization.rb +1 -1
- data/lib/neo4j/rails/validations/associated.rb +53 -0
- data/lib/neo4j/rails/validations.rb +2 -3
- data/lib/neo4j/relationship.rb +3 -3
- data/lib/neo4j/relationship_mixin/relationship_mixin.rb +5 -1
- data/lib/neo4j/rels/traverser.rb +12 -12
- data/lib/neo4j/rule/rule_node.rb +2 -1
- data/lib/neo4j/to_java.rb +0 -4
- data/lib/neo4j/traversal/traverser.rb +24 -3
- data/lib/neo4j/type_converters/type_converters.rb +59 -6
- data/lib/neo4j/version.rb +1 -1
- data/lib/neo4j.rb +10 -8
- metadata +21 -16
- data/lib/neo4j/jars/core/neo4j-backup-1.3.M03.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-kernel-1.3.M03.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-lucene-index-1.3.M03.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-com-1.3.M03.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-ha-1.3.M03.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-management-1.3.M03.jar +0 -0
- data/lib/neo4j/rails/relationships/mapper.rb +0 -103
- data/lib/neo4j/rails/relationships/relationship.rb +0 -30
@@ -57,7 +57,7 @@ module Neo4j
|
|
57
57
|
when org.neo4j.graphdb.Direction::OUTGOING
|
58
58
|
@from.create_relationship_to(other_node, @type)
|
59
59
|
when org.neo4j.graphdb.Direction::INCOMING
|
60
|
-
other_node.
|
60
|
+
other_node.create_relationship_to(@from, @type)
|
61
61
|
else
|
62
62
|
raise "Only allowed to create outgoing or incoming relationships (not #@dir)"
|
63
63
|
end
|
@@ -149,7 +149,7 @@ module Neo4j
|
|
149
149
|
end
|
150
150
|
|
151
151
|
def each
|
152
|
-
iterator.each { |i| yield i.wrapper }
|
152
|
+
@traversal_result == :paths ? iterator.each { |i| yield i } : iterator.each { |i| yield i.wrapper }
|
153
153
|
end
|
154
154
|
|
155
155
|
# Same as #each but does not wrap each node in a Ruby class, yields the Java Neo4j Node instance instead.
|
@@ -157,6 +157,20 @@ module Neo4j
|
|
157
157
|
iterator.each { |i| yield i }
|
158
158
|
end
|
159
159
|
|
160
|
+
# Returns an enumerable of relationships instead of nodes
|
161
|
+
#
|
162
|
+
def rels
|
163
|
+
@traversal_result = :rels
|
164
|
+
self
|
165
|
+
end
|
166
|
+
|
167
|
+
# Returns an enumerable of relationships instead of nodes
|
168
|
+
#
|
169
|
+
def paths
|
170
|
+
@traversal_result = :paths
|
171
|
+
self
|
172
|
+
end
|
173
|
+
|
160
174
|
def iterator
|
161
175
|
unless @include_start_node
|
162
176
|
if @filter_predicate
|
@@ -166,7 +180,14 @@ module Neo4j
|
|
166
180
|
end
|
167
181
|
end
|
168
182
|
@td = @td.prune(org.neo4j.kernel.Traversal.pruneAfterDepth(@depth)) unless @depth == :all
|
169
|
-
@
|
183
|
+
if @traversal_result == :rels
|
184
|
+
@td.traverse(@from._java_node).relationships
|
185
|
+
elsif @traversal_result == :paths
|
186
|
+
@td.traverse(@from._java_node).iterator
|
187
|
+
else
|
188
|
+
@td.traverse(@from._java_node).nodes
|
189
|
+
end
|
190
|
+
|
170
191
|
end
|
171
192
|
end
|
172
193
|
end
|
@@ -50,12 +50,65 @@ module Neo4j
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
|
54
|
+
class BooleanConverter
|
55
|
+
class << self
|
56
|
+
|
57
|
+
def convert?(class_or_symbol)
|
58
|
+
:boolean == class_or_symbol
|
59
|
+
end
|
60
|
+
|
61
|
+
def to_java(value)
|
62
|
+
!!value && value != '0'
|
63
|
+
end
|
64
|
+
|
65
|
+
def to_ruby(value)
|
66
|
+
!!value && value != '0'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
class FixnumConverter
|
73
|
+
class << self
|
74
|
+
|
75
|
+
def convert?(class_or_symbol)
|
76
|
+
Fixnum == class_or_symbol || :fixnum == class_or_symbol
|
77
|
+
end
|
78
|
+
|
79
|
+
def to_java(value)
|
80
|
+
value.to_i
|
81
|
+
end
|
82
|
+
|
83
|
+
def to_ruby(value)
|
84
|
+
value.to_i
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
class FloatConverter
|
90
|
+
class << self
|
91
|
+
|
92
|
+
def convert?(clazz_or_symbol)
|
93
|
+
Float == clazz_or_symbol || :float == clazz_or_symbol
|
94
|
+
end
|
95
|
+
|
96
|
+
def to_java(value)
|
97
|
+
value.to_f
|
98
|
+
end
|
99
|
+
|
100
|
+
def to_ruby(value)
|
101
|
+
value.to_f
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
53
106
|
# Converts Date objects to Java long types. Must be timezone UTC.
|
54
107
|
class DateConverter
|
55
108
|
class << self
|
56
109
|
|
57
|
-
def convert?(
|
58
|
-
Date ==
|
110
|
+
def convert?(clazz_or_symbol)
|
111
|
+
Date == clazz_or_symbol || :date == clazz_or_symbol
|
59
112
|
end
|
60
113
|
|
61
114
|
def to_java(value)
|
@@ -74,8 +127,8 @@ module Neo4j
|
|
74
127
|
class DateTimeConverter
|
75
128
|
class << self
|
76
129
|
|
77
|
-
def convert?(
|
78
|
-
DateTime ==
|
130
|
+
def convert?(clazz_or_symbol)
|
131
|
+
DateTime == clazz_or_symbol || :datetime == clazz_or_symbol
|
79
132
|
end
|
80
133
|
|
81
134
|
# Converts the given DateTime (UTC) value to an Fixnum.
|
@@ -96,8 +149,8 @@ module Neo4j
|
|
96
149
|
class TimeConverter
|
97
150
|
class << self
|
98
151
|
|
99
|
-
def convert?(
|
100
|
-
Time ==
|
152
|
+
def convert?(clazz_or_symbol)
|
153
|
+
Time == clazz_or_symbol || :time == clazz_or_symbol
|
101
154
|
end
|
102
155
|
|
103
156
|
# Converts the given DateTime (UTC) value to an Fixnum.
|
data/lib/neo4j/version.rb
CHANGED
data/lib/neo4j.rb
CHANGED
@@ -13,9 +13,10 @@ require 'will_paginate/finders/base'
|
|
13
13
|
|
14
14
|
require 'neo4j/jars/core/geronimo-jta_1.1_spec-1.1.1.jar'
|
15
15
|
require 'neo4j/jars/core/lucene-core-3.0.3.jar'
|
16
|
-
require 'neo4j/jars/core/neo4j-lucene-index-1.3.
|
17
|
-
require 'neo4j/jars/core/neo4j-kernel-1.3.
|
18
|
-
require 'neo4j/jars/ha/neo4j-management-1.3.
|
16
|
+
require 'neo4j/jars/core/neo4j-lucene-index-1.3.jar'
|
17
|
+
require 'neo4j/jars/core/neo4j-kernel-1.3.jar'
|
18
|
+
require 'neo4j/jars/ha/neo4j-management-1.3.jar'
|
19
|
+
require 'neo4j/jars/ha/neo4j-jmx-1.3.jar'
|
19
20
|
|
20
21
|
module Neo4j
|
21
22
|
|
@@ -31,20 +32,21 @@ module Neo4j
|
|
31
32
|
end
|
32
33
|
|
33
34
|
def self.load_shell_jars
|
34
|
-
require 'neo4j/jars/ha/neo4j-shell-1.3.
|
35
|
+
require 'neo4j/jars/ha/neo4j-shell-1.3.jar'
|
35
36
|
end
|
36
37
|
|
37
38
|
def self.load_online_backup
|
38
|
-
require 'neo4j/jars/ha/neo4j-com-1.3.
|
39
|
-
require 'neo4j/jars/core/neo4j-backup-1.3.
|
39
|
+
require 'neo4j/jars/ha/neo4j-com-1.3.jar'
|
40
|
+
require 'neo4j/jars/core/neo4j-backup-1.3.jar'
|
40
41
|
require 'neo4j/jars/ha/netty-3.2.1.Final.jar'
|
41
42
|
Neo4j.send(:const_set, :OnlineBackup, org.neo4j.backup.OnlineBackup)
|
42
43
|
end
|
43
44
|
|
44
45
|
def self.load_ha_jars
|
46
|
+
require 'neo4j/jars/core/neo4j-backup-1.3.jar'
|
45
47
|
require 'neo4j/jars/ha/log4j-1.2.16.jar'
|
46
|
-
require 'neo4j/jars/ha/neo4j-ha-1.3.
|
47
|
-
require 'neo4j/jars/ha/neo4j-com-1.3.
|
48
|
+
require 'neo4j/jars/ha/neo4j-ha-1.3.jar'
|
49
|
+
require 'neo4j/jars/ha/neo4j-com-1.3.jar'
|
48
50
|
require 'neo4j/jars/ha/netty-3.2.1.Final.jar'
|
49
51
|
require 'neo4j/jars/ha/org.apache.servicemix.bundles.jline-0.9.94_1.jar'
|
50
52
|
require 'neo4j/jars/ha/org.apache.servicemix.bundles.lucene-3.0.1_2.jar'
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 1.0.
|
4
|
+
prerelease: 6
|
5
|
+
version: 1.1.0.beta.1
|
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-04-28 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -128,29 +128,34 @@ files:
|
|
128
128
|
- lib/neo4j/rails/timestamps.rb
|
129
129
|
- lib/neo4j/rails/callbacks.rb
|
130
130
|
- lib/neo4j/rails/tx_methods.rb
|
131
|
+
- lib/neo4j/rails/rel_persistence.rb
|
131
132
|
- lib/neo4j/rails/finders.rb
|
132
|
-
- lib/neo4j/rails/
|
133
|
+
- lib/neo4j/rails/relationship.rb
|
134
|
+
- lib/neo4j/rails/relationships/rels_dsl.rb
|
135
|
+
- lib/neo4j/rails/relationships/node_dsl.rb
|
133
136
|
- lib/neo4j/rails/relationships/relationships.rb
|
134
|
-
- lib/neo4j/rails/relationships/
|
137
|
+
- lib/neo4j/rails/relationships/storage.rb
|
135
138
|
- lib/neo4j/rails/mapping/property.rb
|
139
|
+
- lib/neo4j/rails/validations/associated.rb
|
136
140
|
- lib/neo4j/rails/validations/uniqueness.rb
|
137
141
|
- lib/neo4j/rails/validations/non_nil.rb
|
138
142
|
- lib/neo4j/jars/core/lucene-core-3.0.3.jar
|
139
|
-
- lib/neo4j/jars/core/neo4j-backup-1.3.
|
140
|
-
- lib/neo4j/jars/core/neo4j-kernel-1.3.M03.jar
|
143
|
+
- lib/neo4j/jars/core/neo4j-backup-1.3.jar
|
141
144
|
- lib/neo4j/jars/core/geronimo-jta_1.1_spec-1.1.1.jar
|
142
|
-
- lib/neo4j/jars/core/neo4j-
|
143
|
-
- lib/neo4j/jars/core/neo4j-
|
145
|
+
- lib/neo4j/jars/core/neo4j-lucene-index-1.3.jar
|
146
|
+
- lib/neo4j/jars/core/neo4j-graph-algo-1.3.jar
|
147
|
+
- lib/neo4j/jars/core/neo4j-kernel-1.3.jar
|
144
148
|
- lib/neo4j/jars/core/neo4j-index-1.3-1.3.M01.jar
|
145
|
-
- lib/neo4j/jars/ha/neo4j-shell-1.3.M03.jar
|
146
149
|
- lib/neo4j/jars/ha/org.apache.servicemix.bundles.lucene-3.0.1_2.jar
|
147
150
|
- lib/neo4j/jars/ha/zookeeper-3.3.2.jar
|
148
151
|
- lib/neo4j/jars/ha/netty-3.2.1.Final.jar
|
149
152
|
- lib/neo4j/jars/ha/log4j-1.2.16.jar
|
150
|
-
- lib/neo4j/jars/ha/neo4j-
|
151
|
-
- lib/neo4j/jars/ha/neo4j-
|
153
|
+
- lib/neo4j/jars/ha/neo4j-ha-1.3.jar
|
154
|
+
- lib/neo4j/jars/ha/neo4j-com-1.3.jar
|
155
|
+
- lib/neo4j/jars/ha/neo4j-management-1.3.jar
|
156
|
+
- lib/neo4j/jars/ha/neo4j-shell-1.3.jar
|
157
|
+
- lib/neo4j/jars/ha/neo4j-jmx-1.3.jar
|
152
158
|
- lib/neo4j/jars/ha/org.apache.servicemix.bundles.jline-0.9.94_1.jar
|
153
|
-
- lib/neo4j/jars/ha/neo4j-ha-1.3.M03.jar
|
154
159
|
- lib/neo4j/index/indexer.rb
|
155
160
|
- lib/neo4j/index/lucene_query.rb
|
156
161
|
- lib/neo4j/index/indexer_registry.rb
|
@@ -206,13 +211,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
212
|
none: false
|
208
213
|
requirements:
|
209
|
-
- - "
|
214
|
+
- - ">"
|
210
215
|
- !ruby/object:Gem::Version
|
211
|
-
version:
|
216
|
+
version: 1.3.1
|
212
217
|
requirements: []
|
213
218
|
|
214
219
|
rubyforge_project: neo4j
|
215
|
-
rubygems_version: 1.5.
|
220
|
+
rubygems_version: 1.5.1
|
216
221
|
signing_key:
|
217
222
|
specification_version: 3
|
218
223
|
summary: A graph database for JRuby
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,103 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
module Rails
|
3
|
-
module Relationships
|
4
|
-
|
5
|
-
class Mapper #:nodoc:
|
6
|
-
attr_reader :dsl
|
7
|
-
|
8
|
-
def initialize(rel_type, dsl, node)
|
9
|
-
@rel_type = rel_type
|
10
|
-
@relationships = []
|
11
|
-
@dsl = dsl
|
12
|
-
@node = node
|
13
|
-
end
|
14
|
-
|
15
|
-
def rel_type
|
16
|
-
(@dsl && @dsl.rel_type) || @rel_type
|
17
|
-
end
|
18
|
-
|
19
|
-
def direction
|
20
|
-
(@dsl && @dsl.direction) || :outgoing
|
21
|
-
end
|
22
|
-
|
23
|
-
def to_s #:nodoc:
|
24
|
-
"#{self.class} #{object_id} dir: #{direction} rel_type: #{@rel_type} wrapped #{@dsl}"
|
25
|
-
end
|
26
|
-
|
27
|
-
def single_relationship(*)
|
28
|
-
use_persisted_rels? ? @dsl.single_relationship(@node) : @relationships.first
|
29
|
-
end
|
30
|
-
|
31
|
-
def all_relationships(*)
|
32
|
-
if use_persisted_rels?
|
33
|
-
@dsl.all_relationships(@node)
|
34
|
-
else
|
35
|
-
@relationships
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def each_node(node, direction, &block)
|
40
|
-
if use_persisted_rels?
|
41
|
-
@dsl.each_node(node, direction, &block)
|
42
|
-
else
|
43
|
-
# TODO direction
|
44
|
-
@relationships.each do |rel|
|
45
|
-
block.call rel.end_node
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def use_persisted_rels?
|
51
|
-
@relationships.empty? && @node.persisted?
|
52
|
-
end
|
53
|
-
|
54
|
-
def del_rel(rel)
|
55
|
-
@relationships.delete(rel)
|
56
|
-
end
|
57
|
-
|
58
|
-
def create_relationship_to(from, to)
|
59
|
-
@relationships << Relationship.new(@rel_type, from, to, self)
|
60
|
-
end
|
61
|
-
|
62
|
-
|
63
|
-
def single_node(from)
|
64
|
-
if !@relationships.empty?
|
65
|
-
@relationships.first.end_node
|
66
|
-
else
|
67
|
-
@dsl.single_node(from) if @dsl && from.persisted?
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def valid?
|
72
|
-
all_valid = true
|
73
|
-
!@relationships.each do |rel|
|
74
|
-
start_node = rel.start_node
|
75
|
-
end_node = rel.end_node
|
76
|
-
|
77
|
-
if !end_node.valid?
|
78
|
-
all_valid = false
|
79
|
-
start_node.errors[@rel_type.to_sym] ||= []
|
80
|
-
start_node.errors[@rel_type.to_sym] << end_node.errors
|
81
|
-
end
|
82
|
-
end
|
83
|
-
all_valid
|
84
|
-
end
|
85
|
-
|
86
|
-
def persist
|
87
|
-
@relationships.each do |rel|
|
88
|
-
if @dsl
|
89
|
-
start_node = rel.start_node
|
90
|
-
end_node = rel.end_node
|
91
|
-
|
92
|
-
end_node.save!
|
93
|
-
@dsl.create_relationship_to(start_node, end_node)
|
94
|
-
else
|
95
|
-
rel.end_node.save!
|
96
|
-
rel.start_node.outgoing(@rel_type) << rel.end_node
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
module Rails
|
3
|
-
module Relationships
|
4
|
-
|
5
|
-
class Relationship
|
6
|
-
attr_reader :rel_type, :start_node, :end_node
|
7
|
-
|
8
|
-
|
9
|
-
def initialize(rel_type, start_node, end_node, decl)
|
10
|
-
@rel_type = rel_type
|
11
|
-
@start_node = start_node
|
12
|
-
@end_node = end_node
|
13
|
-
@decl = decl
|
14
|
-
end
|
15
|
-
|
16
|
-
def del
|
17
|
-
@decl.del_rel(self)
|
18
|
-
end
|
19
|
-
|
20
|
-
def persist
|
21
|
-
@start_node._java
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_s
|
25
|
-
"Rel [#{rel_type} start #{start_node} end #{end_node}]"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|