neo4j 1.0.0-java → 1.1.0.beta.1-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/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
|