neo4j 1.1.0.beta.2-java → 1.1.0.beta.3-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
CHANGED
@@ -54,12 +54,39 @@ module Neo4j
|
|
54
54
|
|
55
55
|
def find(*args, &block)
|
56
56
|
return super(*args, &block) if block
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
|
58
|
+
case args.first
|
59
|
+
when :all, :first
|
60
|
+
kind = args.shift
|
61
|
+
send(kind, *args)
|
62
|
+
when "0", 0
|
63
|
+
nil
|
64
|
+
else
|
65
|
+
if ((args.first.is_a?(Integer) || args.first.is_a?(String)) && args.first.to_i > 0)
|
66
|
+
find_by_id(*args)
|
67
|
+
else
|
68
|
+
first(*args)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def all(*args)
|
74
|
+
unless args.empty?
|
75
|
+
enum = Enumerator.new(@storage, :each_node, @dir).find{|n| n == args.first}
|
61
76
|
else
|
62
|
-
enum
|
77
|
+
enum = Enumerator.new(@storage, :each_node, @dir)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def first(*args)
|
82
|
+
if result = all(*args)
|
83
|
+
if result.respond_to?(:collect) #if it's enumerable, get the first result
|
84
|
+
result.first
|
85
|
+
else
|
86
|
+
result
|
87
|
+
end
|
88
|
+
else
|
89
|
+
nil
|
63
90
|
end
|
64
91
|
end
|
65
92
|
|
@@ -89,9 +116,21 @@ module Neo4j
|
|
89
116
|
size == 0 # TODO, performance: there are probably faster way of doing this
|
90
117
|
end
|
91
118
|
|
119
|
+
def blank?
|
120
|
+
false unless size == 0
|
121
|
+
end
|
122
|
+
|
92
123
|
def to_s
|
93
124
|
"Node dir: #{@dir}, #{@storage}"
|
94
125
|
end
|
126
|
+
|
127
|
+
protected
|
128
|
+
|
129
|
+
|
130
|
+
def find_by_id(*args)
|
131
|
+
result = Enumerator.new(@storage, :each_node, @dir).find{|n| n.id.to_i == args.first.to_i}
|
132
|
+
end
|
133
|
+
|
95
134
|
end
|
96
135
|
end
|
97
136
|
end
|
@@ -61,14 +61,47 @@ module Neo4j
|
|
61
61
|
|
62
62
|
def find(*args, &block)
|
63
63
|
return super(*args, &block) if block
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
|
65
|
+
case args.first
|
66
|
+
when :all, :first
|
67
|
+
kind = args.shift
|
68
|
+
send(kind, *args)
|
69
|
+
when "0", 0
|
70
|
+
nil
|
71
|
+
else
|
72
|
+
if ((args.first.is_a?(Integer) || args.first.is_a?(String)) && args.first.to_i > 0)
|
73
|
+
find_by_id(*args)
|
74
|
+
else
|
75
|
+
first(*args)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def all(*args)
|
81
|
+
if args.first.class == Neo4j::Rails::Relationship #arg is a relationship
|
82
|
+
find_all{|r| r == args.first}
|
83
|
+
elsif ((args.first.is_a?(Integer) || args.first.is_a?(String)) && args.first.to_i > 0) #arg is an int
|
84
|
+
find_all{|r| r.start_node.id.to_i == args.first.to_i || r.end_node.id.to_i == args.first.to_i}
|
85
|
+
elsif node_in?(*args) #arg is a node
|
86
|
+
find_all{|r| r.start_node == args.first || r.end_node == args.first}
|
87
|
+
else #there either aren't any args, or we don't understand them
|
88
|
+
collect
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def first(*args)
|
93
|
+
if result = all(*args)
|
94
|
+
if result.respond_to?(:collect) #if it's enumerable, get the first result
|
95
|
+
result.first
|
96
|
+
else
|
97
|
+
result
|
98
|
+
end
|
67
99
|
else
|
68
|
-
|
100
|
+
nil
|
69
101
|
end
|
70
102
|
end
|
71
103
|
|
104
|
+
|
72
105
|
def [](index)
|
73
106
|
i = 0
|
74
107
|
each{|x| return x if i == index; i += 1}
|
@@ -85,6 +118,22 @@ module Neo4j
|
|
85
118
|
"Rels dir: #{@dir}, #{@storage}"
|
86
119
|
end
|
87
120
|
|
121
|
+
protected
|
122
|
+
|
123
|
+
def node_in?(*args)
|
124
|
+
# does it contain an string, which will be treated like a condition ?
|
125
|
+
if args.find { |a| a.class.superclass == Neo4j::Rails::Model }
|
126
|
+
return true
|
127
|
+
else
|
128
|
+
return false
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
def find_by_id(*args)
|
133
|
+
find{|r| r.id.to_i == args.first.to_i}
|
134
|
+
end
|
135
|
+
|
136
|
+
|
88
137
|
end
|
89
138
|
end
|
90
139
|
end
|
data/lib/neo4j/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: neo4j
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 6
|
5
|
-
version: 1.1.0.beta.
|
5
|
+
version: 1.1.0.beta.3
|
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-05-
|
13
|
+
date: 2011-05-10 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|