neo4j-core 0.0.1-java
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +27 -0
- data/README.rdoc +27 -0
- data/config/neo4j/config.yml +102 -0
- data/lib/db/active_tx_log +1 -0
- data/lib/db/index/lucene-store.db +0 -0
- data/lib/db/index/lucene.log.1 +0 -0
- data/lib/db/index/lucene.log.active +0 -0
- data/lib/db/lock +0 -0
- data/lib/db/messages.log +530 -0
- data/lib/db/neostore +0 -0
- data/lib/db/neostore.id +0 -0
- data/lib/db/neostore.nodestore.db +0 -0
- data/lib/db/neostore.nodestore.db.id +0 -0
- data/lib/db/neostore.propertystore.db +0 -0
- data/lib/db/neostore.propertystore.db.arrays +0 -0
- data/lib/db/neostore.propertystore.db.arrays.id +0 -0
- data/lib/db/neostore.propertystore.db.id +0 -0
- data/lib/db/neostore.propertystore.db.index +0 -0
- data/lib/db/neostore.propertystore.db.index.id +0 -0
- data/lib/db/neostore.propertystore.db.index.keys +0 -0
- data/lib/db/neostore.propertystore.db.index.keys.id +0 -0
- data/lib/db/neostore.propertystore.db.strings +0 -0
- data/lib/db/neostore.propertystore.db.strings.id +0 -0
- data/lib/db/neostore.relationshipstore.db +0 -0
- data/lib/db/neostore.relationshipstore.db.id +0 -0
- data/lib/db/neostore.relationshiptypestore.db +0 -0
- data/lib/db/neostore.relationshiptypestore.db.id +0 -0
- data/lib/db/neostore.relationshiptypestore.db.names +0 -0
- data/lib/db/neostore.relationshiptypestore.db.names.id +0 -0
- data/lib/db/nioneo_logical.log.2 +0 -0
- data/lib/db/nioneo_logical.log.active +0 -0
- data/lib/db/tm_tx_log.1 +0 -0
- data/lib/neo4j/config.rb +139 -0
- data/lib/neo4j/cypher.rb +156 -0
- data/lib/neo4j/neo4j.rb +244 -0
- data/lib/neo4j/neo4j.rb~ +214 -0
- data/lib/neo4j/node.rb +39 -0
- data/lib/neo4j/relationship.rb +61 -0
- data/lib/neo4j/transaction.rb +86 -0
- data/lib/neo4j/type_converters/type_converters.rb +287 -0
- data/lib/neo4j-core/cypher/cypher.rb +867 -0
- data/lib/neo4j-core/cypher/result_wrapper.rb +39 -0
- data/lib/neo4j-core/database.rb +191 -0
- data/lib/neo4j-core/equal/equal.rb +23 -0
- data/lib/neo4j-core/event_handler.rb +265 -0
- data/lib/neo4j-core/index/class_methods.rb +117 -0
- data/lib/neo4j-core/index/index.rb +36 -0
- data/lib/neo4j-core/index/index_config.rb +112 -0
- data/lib/neo4j-core/index/indexer.rb +243 -0
- data/lib/neo4j-core/index/indexer_registry.rb +55 -0
- data/lib/neo4j-core/index/lucene_query.rb +264 -0
- data/lib/neo4j-core/lazy_map.rb +21 -0
- data/lib/neo4j-core/node/class_methods.rb +77 -0
- data/lib/neo4j-core/node/node.rb +47 -0
- data/lib/neo4j-core/property/property.rb +94 -0
- data/lib/neo4j-core/relationship/class_methods.rb +80 -0
- data/lib/neo4j-core/relationship/relationship.rb +97 -0
- data/lib/neo4j-core/relationship_set.rb +61 -0
- data/lib/neo4j-core/rels/rels.rb +147 -0
- data/lib/neo4j-core/rels/traverser.rb +99 -0
- data/lib/neo4j-core/to_java.rb +51 -0
- data/lib/neo4j-core/traversal/evaluator.rb +36 -0
- data/lib/neo4j-core/traversal/filter_predicate.rb +30 -0
- data/lib/neo4j-core/traversal/prune_evaluator.rb +20 -0
- data/lib/neo4j-core/traversal/rel_expander.rb +35 -0
- data/lib/neo4j-core/traversal/traversal.rb +130 -0
- data/lib/neo4j-core/traversal/traverser.rb +295 -0
- data/lib/neo4j-core/version.rb +5 -0
- data/lib/neo4j-core.rb +64 -0
- data/neo4j-core.gemspec +31 -0
- metadata +145 -0
@@ -0,0 +1,295 @@
|
|
1
|
+
module Neo4j
|
2
|
+
module Core
|
3
|
+
module Traversal
|
4
|
+
|
5
|
+
# By using this class you can both specify traversals and create new relationships.
|
6
|
+
# This object is return from the Neo4j::Core::Traversal methods.
|
7
|
+
# @see Neo4j::Core::Traversal#outgoing
|
8
|
+
# @see Neo4j::Core::Traversal#incoming
|
9
|
+
class Traverser
|
10
|
+
include Enumerable
|
11
|
+
include ToJava
|
12
|
+
|
13
|
+
|
14
|
+
def initialize(from, dir=:both, type=nil)
|
15
|
+
@from = from
|
16
|
+
@depth = 1
|
17
|
+
if type.nil?
|
18
|
+
raise "Traversing all relationship in direction #{dir.inspect} not supported, only :both supported" unless dir == :both
|
19
|
+
@td = Java::OrgNeo4jKernelImplTraversal::TraversalDescriptionImpl.new.breadth_first()
|
20
|
+
else
|
21
|
+
@type = type_to_java(type)
|
22
|
+
@dir = dir_to_java(dir)
|
23
|
+
@td = Java::OrgNeo4jKernelImplTraversal::TraversalDescriptionImpl.new.breadth_first().relationships(@type, @dir)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# Sets traversing depth first.
|
29
|
+
#
|
30
|
+
# The <tt>pre_or_post</tt> parameter parameter can have two values: :pre or :post
|
31
|
+
# @param [:pre, :post] pre_or_post
|
32
|
+
# * :pre - Traversing depth first, visiting each node before visiting its child nodes (default)
|
33
|
+
# * :post - Traversing depth first, visiting each node after visiting its child nodes.
|
34
|
+
# @return self
|
35
|
+
#
|
36
|
+
def depth_first(pre_or_post = :pre)
|
37
|
+
case pre_or_post
|
38
|
+
when :pre then
|
39
|
+
@td = @td.order(Java::OrgNeo4jKernel::Traversal.preorderDepthFirst())
|
40
|
+
when :post then
|
41
|
+
@td = @td.order(Java::OrgNeo4jKernel::Traversal.postorderDepthFirst())
|
42
|
+
else
|
43
|
+
raise "Unknown type #{pre_or_post}, should be :pre or :post"
|
44
|
+
end
|
45
|
+
self
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
# Sets traversing breadth first (default).
|
50
|
+
#
|
51
|
+
# This is the default ordering if none is defined.
|
52
|
+
# The <tt>pre_or_post</tt> parameter parameter can have two values: <tt>:pre</tt> or <tt>:post</tt>
|
53
|
+
# * :pre - Traversing breadth first, visiting each node before visiting its child nodes (default)
|
54
|
+
# * :post - Traversing breadth first, visiting each node after visiting its child nodes.
|
55
|
+
#
|
56
|
+
# @param [:pre, :post] pre_or_post The traversal order
|
57
|
+
# @return self
|
58
|
+
#
|
59
|
+
# === Note
|
60
|
+
# Please note that breadth first traversals have a higher memory overhead than depth first traversals.
|
61
|
+
# BranchSelectors carries state and hence needs to be uniquely instantiated for each traversal.
|
62
|
+
# Therefore it is supplied to the TraversalDescription through a BranchOrderingPolicy interface, which is a factory of BranchSelector instances.
|
63
|
+
def breadth_first(pre_or_post = :pre)
|
64
|
+
case pre_or_post
|
65
|
+
when :pre then
|
66
|
+
@td = @td.order(Java::OrgNeo4jKernel::Traversal.preorderBreadthFirst())
|
67
|
+
when :post then
|
68
|
+
@td = @td.order(Java::OrgNeo4jKernel::Traversal.postorderBreadthFirst())
|
69
|
+
else
|
70
|
+
raise "Unknown type #{pre_or_post}, should be :pre or :post"
|
71
|
+
end
|
72
|
+
self
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
def eval_paths(&eval_path_block)
|
77
|
+
@td = @td.evaluator(Evaluator.new(&eval_path_block))
|
78
|
+
self
|
79
|
+
end
|
80
|
+
|
81
|
+
# Sets the rules for how positions can be revisited during a traversal as stated in Uniqueness.
|
82
|
+
# @param [:node_global, :node_path, :node_recent, :none, :rel_global, :rel_path, :rel_recent] u the uniqueness option
|
83
|
+
# @return self
|
84
|
+
# @see Neo4j::Core::Traverser#unique
|
85
|
+
def unique(u = :node_global)
|
86
|
+
case u
|
87
|
+
when :node_global then
|
88
|
+
# A node cannot be traversed more than once.
|
89
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::NODE_GLOBAL)
|
90
|
+
when :node_path then
|
91
|
+
# For each returned node there 's a unique path from the start node to it.
|
92
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::NODE_PATH)
|
93
|
+
when :node_recent then
|
94
|
+
# This is like NODE_GLOBAL, but only guarantees uniqueness among the most recent visited nodes, with a configurable count.
|
95
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::NODE_RECENT)
|
96
|
+
when :none then
|
97
|
+
# No restriction (the user will have to manage it).
|
98
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::NONE)
|
99
|
+
when :rel_global then
|
100
|
+
# A relationship cannot be traversed more than once, whereas nodes can.
|
101
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::RELATIONSHIP_GLOBAL)
|
102
|
+
when :rel_path then
|
103
|
+
# No restriction (the user will have to manage it).
|
104
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::RELATIONSHIP_PATH)
|
105
|
+
when :rel_recent then
|
106
|
+
# Same as for NODE_RECENT, but for relationships.
|
107
|
+
@td = @td.uniqueness(Java::OrgNeo4jKernel::Uniqueness::RELATIONSHIP_RECENT)
|
108
|
+
else
|
109
|
+
raise "Got option for unique '#{u}' allowed: :node_global, :node_path, :node_recent, :none, :rel_global, :rel_path, :rel_recent"
|
110
|
+
end
|
111
|
+
self
|
112
|
+
end
|
113
|
+
|
114
|
+
def to_s
|
115
|
+
"NodeTraverser [from: #{@from.neo_id} depth: #{@depth} type: #{@type} dir:#{@dir}"
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
# Creates a new relationship between given node and self
|
120
|
+
# @param [Neo4j::Node] other_node the node to which we want to create a relationship
|
121
|
+
# @return (see #new)
|
122
|
+
def <<(other_node)
|
123
|
+
new(other_node)
|
124
|
+
self
|
125
|
+
end
|
126
|
+
|
127
|
+
# Returns an real ruby array.
|
128
|
+
def to_ary
|
129
|
+
self.to_a
|
130
|
+
end
|
131
|
+
|
132
|
+
# Creates a new relationship between self and given node.
|
133
|
+
# @param [Hash] props properties of new relationship
|
134
|
+
# @return [Neo4j::Relationship] the created relationship
|
135
|
+
def new(other_node, props = {})
|
136
|
+
case @dir
|
137
|
+
when Java::OrgNeo4jGraphdb::Direction::OUTGOING
|
138
|
+
@from.create_relationship_to(other_node, @type).update(props)
|
139
|
+
when Java::OrgNeo4jGraphdb::Direction::INCOMING
|
140
|
+
other_node.create_relationship_to(@from, @type).update(props)
|
141
|
+
else
|
142
|
+
raise "Only allowed to create outgoing or incoming relationships (not #@dir)"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
# @param (see Neo4j::Core::Traversal#both)
|
147
|
+
# @see Neo4j::Core::Traversal#both
|
148
|
+
def both(type)
|
149
|
+
@type = type_to_java(type) if type
|
150
|
+
@dir = dir_to_java(:both)
|
151
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
152
|
+
self
|
153
|
+
end
|
154
|
+
|
155
|
+
# @param (see Neo4j::Core::Traversal#expand)
|
156
|
+
# @return self
|
157
|
+
# @see Neo4j::Core::Traversal#expand
|
158
|
+
def expander(&expander)
|
159
|
+
@td = @td.expand(RelExpander.create_pair(&expander))
|
160
|
+
self
|
161
|
+
end
|
162
|
+
|
163
|
+
# Adds one outgoing relationship type to the traversal
|
164
|
+
# @param (see Neo4j::Core::Traversal#outgoing)
|
165
|
+
# @return self
|
166
|
+
# @see Neo4j::Core::Traversal#outgoing
|
167
|
+
def outgoing(type)
|
168
|
+
@type = type_to_java(type) if type
|
169
|
+
@dir = dir_to_java(:outgoing)
|
170
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
171
|
+
self
|
172
|
+
end
|
173
|
+
|
174
|
+
# Adds one incoming relationship type to the traversal
|
175
|
+
# @param (see Neo4j::Core::Traversal#incoming)
|
176
|
+
# @return self
|
177
|
+
# @see Neo4j::Core::Traversal#incoming
|
178
|
+
def incoming(type)
|
179
|
+
@type = type_to_java(type) if type
|
180
|
+
@dir = dir_to_java(:incoming)
|
181
|
+
@td = @td.relationships(type_to_java(type), @dir)
|
182
|
+
self
|
183
|
+
end
|
184
|
+
|
185
|
+
# Cuts of of parts of the traversal.
|
186
|
+
# @yield [path]
|
187
|
+
# @yieldparam [Java::OrgNeo4jGraphdb::Path] path the path which can be used to filter nodes
|
188
|
+
# @yieldreturn [true,false] only if true the path should be cut of, no traversal beyond this.
|
189
|
+
# @example
|
190
|
+
# a.outgoing(:friends).outgoing(:recommend).depth(:all).prune{|path| path.end_node[:name] == 'B'}
|
191
|
+
# @see http://components.neo4j.org/neo4j/milestone/apidocs/org/neo4j/graphdb/Path.html
|
192
|
+
def prune(&block)
|
193
|
+
@td = @td.prune(PruneEvaluator.new(block))
|
194
|
+
self
|
195
|
+
end
|
196
|
+
|
197
|
+
# Only include nodes in the traversal in which the provided block returns true.
|
198
|
+
# @yield [path]
|
199
|
+
# @yieldparam [Java::OrgNeo4jGraphdb::Path] path the path which can be used to filter nodes
|
200
|
+
# @yieldreturn [true,false] only if true the node will be included in the traversal result.
|
201
|
+
#
|
202
|
+
# @example Return nodes that are exact at depth 2 from me
|
203
|
+
# a_node.outgoing(:friends).depth(2).filter{|path| path.length == 2}
|
204
|
+
# @see http://components.neo4j.org/neo4j/milestone/apidocs/org/neo4j/graphdb/Path.html
|
205
|
+
def filter(&block)
|
206
|
+
# we keep a reference to filter predicate since only one filter is allowed and we might want to modify it
|
207
|
+
@filter_predicate ||= FilterPredicate.new
|
208
|
+
@filter_predicate.add(block)
|
209
|
+
|
210
|
+
|
211
|
+
@td = @td.filter(@filter_predicate)
|
212
|
+
self
|
213
|
+
end
|
214
|
+
|
215
|
+
# Sets depth, if :all then it will traverse any depth
|
216
|
+
# @param [Fixnum, :all] d the depth of traversal, or all
|
217
|
+
# @return self
|
218
|
+
def depth(d)
|
219
|
+
@depth = d
|
220
|
+
self
|
221
|
+
end
|
222
|
+
|
223
|
+
# By default the start node is not included in the traversal
|
224
|
+
# Specifies that the start node should be included
|
225
|
+
# @return self
|
226
|
+
def include_start_node
|
227
|
+
@include_start_node = true
|
228
|
+
self
|
229
|
+
end
|
230
|
+
|
231
|
+
# @param [Fixnum] index the n'th node that will be return from the traversal
|
232
|
+
def [](index)
|
233
|
+
each_with_index { |node, i| break node if index == i }
|
234
|
+
end
|
235
|
+
|
236
|
+
# @return [true,false]
|
237
|
+
def empty?
|
238
|
+
first == nil
|
239
|
+
end
|
240
|
+
|
241
|
+
# Required by the Ruby Enumerable Mixin
|
242
|
+
def each
|
243
|
+
@raw ? iterator.each { |i| yield i } : iterator.each { |i| yield i.wrapper }
|
244
|
+
end
|
245
|
+
|
246
|
+
# Same as #each but does not wrap each node in a Ruby class, yields the Java Neo4j Node instance instead.
|
247
|
+
def each_raw
|
248
|
+
iterator.each { |i| yield i }
|
249
|
+
end
|
250
|
+
|
251
|
+
# Returns an enumerable of relationships instead of nodes
|
252
|
+
# @return self
|
253
|
+
def rels
|
254
|
+
@traversal_result = :rels
|
255
|
+
self
|
256
|
+
end
|
257
|
+
|
258
|
+
# If this is called then it will not wrap the nodes but instead return the raw Java Neo4j::Node objects when traversing
|
259
|
+
# @return self
|
260
|
+
def raw
|
261
|
+
@raw = true
|
262
|
+
self
|
263
|
+
end
|
264
|
+
|
265
|
+
# Specifies that we should return an enumerable of paths instead of nodes.
|
266
|
+
# @return self
|
267
|
+
def paths
|
268
|
+
@traversal_result = :paths
|
269
|
+
@raw = true
|
270
|
+
self
|
271
|
+
end
|
272
|
+
|
273
|
+
# @return the java iterator
|
274
|
+
def iterator
|
275
|
+
unless @include_start_node
|
276
|
+
if @filter_predicate
|
277
|
+
@filter_predicate.include_start_node
|
278
|
+
else
|
279
|
+
@td = @td.filter(Java::OrgNeo4jKernel::Traversal.return_all_but_start_node)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
@td = @td.prune(Java::OrgNeo4jKernel::Traversal.pruneAfterDepth(@depth)) unless @depth == :all
|
283
|
+
if @traversal_result == :rels
|
284
|
+
@td.traverse(@from._java_node).relationships
|
285
|
+
elsif @traversal_result == :paths
|
286
|
+
@td.traverse(@from._java_node).iterator
|
287
|
+
else
|
288
|
+
@td.traverse(@from._java_node).nodes
|
289
|
+
end
|
290
|
+
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
data/lib/neo4j-core.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'java'
|
2
|
+
include Java
|
3
|
+
|
4
|
+
module Neo4j
|
5
|
+
# Enumerator has been moved to top level in Ruby 1.9.2, make it compatible with Ruby 1.8.7
|
6
|
+
Enumerator = Enumerable::Enumerator unless defined? Enumerator
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'neo4j/config'
|
10
|
+
|
11
|
+
require 'neo4j-community'
|
12
|
+
|
13
|
+
require 'neo4j/neo4j'
|
14
|
+
|
15
|
+
require 'neo4j-core/lazy_map'
|
16
|
+
require 'neo4j-core/relationship_set'
|
17
|
+
require 'neo4j-core/event_handler'
|
18
|
+
require 'neo4j-core/database'
|
19
|
+
require 'neo4j-core/to_java'
|
20
|
+
|
21
|
+
require 'neo4j-core/property/property'
|
22
|
+
|
23
|
+
require 'neo4j-core/rels/rels'
|
24
|
+
require 'neo4j-core/rels/traverser'
|
25
|
+
|
26
|
+
require 'neo4j-core/traversal/traversal'
|
27
|
+
require 'neo4j-core/traversal/traversal'
|
28
|
+
require 'neo4j-core/traversal/filter_predicate'
|
29
|
+
require 'neo4j-core/traversal/prune_evaluator'
|
30
|
+
require 'neo4j-core/traversal/rel_expander'
|
31
|
+
require 'neo4j-core/traversal/traverser'
|
32
|
+
|
33
|
+
require 'neo4j-core/index/index'
|
34
|
+
require 'neo4j-core/index/class_methods'
|
35
|
+
require 'neo4j-core/index/indexer_registry'
|
36
|
+
require 'neo4j-core/index/index_config'
|
37
|
+
require 'neo4j-core/index/indexer'
|
38
|
+
require 'neo4j-core/index/lucene_query'
|
39
|
+
|
40
|
+
require 'neo4j-core/equal/equal'
|
41
|
+
|
42
|
+
require 'neo4j-core/relationship/relationship'
|
43
|
+
require 'neo4j-core/relationship/class_methods'
|
44
|
+
|
45
|
+
require 'neo4j-core/node/node'
|
46
|
+
require 'neo4j-core/node/class_methods'
|
47
|
+
|
48
|
+
require 'neo4j/transaction'
|
49
|
+
|
50
|
+
require 'neo4j/type_converters/type_converters'
|
51
|
+
|
52
|
+
require 'neo4j-core/traversal/evaluator'
|
53
|
+
require 'neo4j-core/traversal/filter_predicate'
|
54
|
+
require 'neo4j-core/traversal/prune_evaluator'
|
55
|
+
require 'neo4j-core/traversal/rel_expander'
|
56
|
+
require 'neo4j-core/traversal/traversal'
|
57
|
+
require 'neo4j-core/traversal/traverser'
|
58
|
+
|
59
|
+
require 'neo4j-core/cypher/cypher'
|
60
|
+
require 'neo4j-core/cypher/result_wrapper'
|
61
|
+
|
62
|
+
require 'neo4j/cypher'
|
63
|
+
require 'neo4j/node'
|
64
|
+
require 'neo4j/relationship'
|
data/neo4j-core.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
lib = File.expand_path('../lib/', __FILE__)
|
2
|
+
$:.unshift lib unless $:.include?(lib)
|
3
|
+
|
4
|
+
require 'neo4j-core/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "neo4j-core"
|
8
|
+
s.version = Neo4j::Core::VERSION
|
9
|
+
s.platform = 'java'
|
10
|
+
s.required_ruby_version = ">= 1.8.7"
|
11
|
+
|
12
|
+
s.authors = "Andreas Ronge"
|
13
|
+
s.email = 'andreas.ronge@gmail.com'
|
14
|
+
s.homepage = "http://github.com/andreasronge/neo4j-core/tree"
|
15
|
+
s.rubyforge_project = 'neo4j-core'
|
16
|
+
s.summary = "A graph database for JRuby"
|
17
|
+
s.description = <<-EOF
|
18
|
+
You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database.
|
19
|
+
The programmer works with an object-oriented, flexible network structure rather than with strict and static tables
|
20
|
+
yet enjoys all the benefits of a fully transactional, enterprise-strength database.
|
21
|
+
It comes included with the Apache Lucene document database.
|
22
|
+
EOF
|
23
|
+
|
24
|
+
s.require_path = 'lib'
|
25
|
+
s.files = Dir.glob("{bin,lib,config}/**/*") + %w(README.rdoc Gemfile neo4j-core.gemspec)
|
26
|
+
s.has_rdoc = true
|
27
|
+
s.extra_rdoc_files = %w( README.rdoc )
|
28
|
+
s.rdoc_options = ["--quiet", "--title", "Neo4j::Core", "--line-numbers", "--main", "README.rdoc", "--inline-source"]
|
29
|
+
|
30
|
+
s.add_dependency("neo4j-community", "1.7.0.alpha.1")
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: neo4j-core
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: java
|
7
|
+
authors:
|
8
|
+
- Andreas Ronge
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2012-03-20 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: neo4j-community
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - "="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.7.0.alpha.1
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
description: |
|
27
|
+
You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database.
|
28
|
+
The programmer works with an object-oriented, flexible network structure rather than with strict and static tables
|
29
|
+
yet enjoys all the benefits of a fully transactional, enterprise-strength database.
|
30
|
+
It comes included with the Apache Lucene document database.
|
31
|
+
|
32
|
+
email: andreas.ronge@gmail.com
|
33
|
+
executables: []
|
34
|
+
|
35
|
+
extensions: []
|
36
|
+
|
37
|
+
extra_rdoc_files:
|
38
|
+
- README.rdoc
|
39
|
+
files:
|
40
|
+
- lib/neo4j-core.rb
|
41
|
+
- lib/neo4j/config.rb
|
42
|
+
- lib/neo4j/cypher.rb
|
43
|
+
- lib/neo4j/transaction.rb
|
44
|
+
- lib/neo4j/neo4j.rb
|
45
|
+
- lib/neo4j/neo4j.rb~
|
46
|
+
- lib/neo4j/node.rb
|
47
|
+
- lib/neo4j/relationship.rb
|
48
|
+
- lib/neo4j/type_converters/type_converters.rb
|
49
|
+
- lib/neo4j-core/event_handler.rb
|
50
|
+
- lib/neo4j-core/lazy_map.rb
|
51
|
+
- lib/neo4j-core/database.rb
|
52
|
+
- lib/neo4j-core/relationship_set.rb
|
53
|
+
- lib/neo4j-core/version.rb
|
54
|
+
- lib/neo4j-core/to_java.rb
|
55
|
+
- lib/neo4j-core/node/node.rb
|
56
|
+
- lib/neo4j-core/node/class_methods.rb
|
57
|
+
- lib/neo4j-core/property/property.rb
|
58
|
+
- lib/neo4j-core/equal/equal.rb
|
59
|
+
- lib/neo4j-core/traversal/rel_expander.rb
|
60
|
+
- lib/neo4j-core/traversal/filter_predicate.rb
|
61
|
+
- lib/neo4j-core/traversal/prune_evaluator.rb
|
62
|
+
- lib/neo4j-core/traversal/traversal.rb
|
63
|
+
- lib/neo4j-core/traversal/traverser.rb
|
64
|
+
- lib/neo4j-core/traversal/evaluator.rb
|
65
|
+
- lib/neo4j-core/rels/traverser.rb
|
66
|
+
- lib/neo4j-core/rels/rels.rb
|
67
|
+
- lib/neo4j-core/index/index_config.rb
|
68
|
+
- lib/neo4j-core/index/indexer.rb
|
69
|
+
- lib/neo4j-core/index/lucene_query.rb
|
70
|
+
- lib/neo4j-core/index/indexer_registry.rb
|
71
|
+
- lib/neo4j-core/index/class_methods.rb
|
72
|
+
- lib/neo4j-core/index/index.rb
|
73
|
+
- lib/neo4j-core/relationship/class_methods.rb
|
74
|
+
- lib/neo4j-core/relationship/relationship.rb
|
75
|
+
- lib/neo4j-core/cypher/cypher.rb
|
76
|
+
- lib/neo4j-core/cypher/result_wrapper.rb
|
77
|
+
- lib/db/neostore.relationshiptypestore.db.names
|
78
|
+
- lib/db/neostore.id
|
79
|
+
- lib/db/neostore.relationshiptypestore.db.names.id
|
80
|
+
- lib/db/neostore.nodestore.db.id
|
81
|
+
- lib/db/neostore.propertystore.db.index
|
82
|
+
- lib/db/neostore.propertystore.db.strings.id
|
83
|
+
- lib/db/nioneo_logical.log.active
|
84
|
+
- lib/db/neostore.propertystore.db.strings
|
85
|
+
- lib/db/neostore.relationshiptypestore.db.id
|
86
|
+
- lib/db/neostore
|
87
|
+
- lib/db/neostore.nodestore.db
|
88
|
+
- lib/db/neostore.propertystore.db.index.keys.id
|
89
|
+
- lib/db/neostore.propertystore.db.arrays.id
|
90
|
+
- lib/db/messages.log
|
91
|
+
- lib/db/neostore.relationshipstore.db.id
|
92
|
+
- lib/db/neostore.propertystore.db.arrays
|
93
|
+
- lib/db/neostore.relationshipstore.db
|
94
|
+
- lib/db/neostore.propertystore.db.index.id
|
95
|
+
- lib/db/neostore.propertystore.db.id
|
96
|
+
- lib/db/neostore.propertystore.db
|
97
|
+
- lib/db/tm_tx_log.1
|
98
|
+
- lib/db/nioneo_logical.log.2
|
99
|
+
- lib/db/neostore.relationshiptypestore.db
|
100
|
+
- lib/db/lock
|
101
|
+
- lib/db/active_tx_log
|
102
|
+
- lib/db/neostore.propertystore.db.index.keys
|
103
|
+
- lib/db/index/lucene-store.db
|
104
|
+
- lib/db/index/lucene.log.1
|
105
|
+
- lib/db/index/lucene.log.active
|
106
|
+
- config/neo4j/config.yml
|
107
|
+
- README.rdoc
|
108
|
+
- Gemfile
|
109
|
+
- neo4j-core.gemspec
|
110
|
+
homepage: http://github.com/andreasronge/neo4j-core/tree
|
111
|
+
licenses: []
|
112
|
+
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options:
|
115
|
+
- --quiet
|
116
|
+
- --title
|
117
|
+
- Neo4j::Core
|
118
|
+
- --line-numbers
|
119
|
+
- --main
|
120
|
+
- README.rdoc
|
121
|
+
- --inline-source
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 1.8.7
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: "0"
|
136
|
+
requirements: []
|
137
|
+
|
138
|
+
rubyforge_project: neo4j-core
|
139
|
+
rubygems_version: 1.8.15
|
140
|
+
signing_key:
|
141
|
+
specification_version: 3
|
142
|
+
summary: A graph database for JRuby
|
143
|
+
test_files: []
|
144
|
+
|
145
|
+
has_rdoc: true
|