neo4j 1.0.0.beta.20 → 3.0.0.alpha.2
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.
- checksums.yaml +7 -0
- data/CHANGELOG +243 -0
- data/CONTRIBUTORS +12 -0
- data/Gemfile +10 -11
- data/README.md +23 -0
- data/bin/neo4j-jars +33 -0
- data/config/locales/en.yml +5 -0
- data/config/neo4j/config.yml +98 -0
- data/lib/neo4j.rb +28 -68
- data/lib/neo4j/active_node.rb +60 -0
- data/lib/neo4j/active_node/callbacks.rb +41 -0
- data/lib/neo4j/active_node/has_n.rb +138 -0
- data/lib/neo4j/active_node/has_n/decl_rel.rb +236 -0
- data/lib/neo4j/active_node/has_n/nodes.rb +82 -0
- data/lib/neo4j/active_node/identity.rb +28 -0
- data/lib/neo4j/active_node/initialize.rb +24 -0
- data/lib/neo4j/active_node/labels.rb +142 -0
- data/lib/neo4j/active_node/persistence.rb +193 -0
- data/lib/neo4j/active_node/property.rb +41 -0
- data/lib/neo4j/active_node/rels.rb +11 -0
- data/lib/neo4j/active_node/validations.rb +51 -0
- data/lib/neo4j/railtie.rb +40 -0
- data/lib/neo4j/version.rb +1 -1
- data/lib/neo4j/wrapper.rb +25 -0
- data/neo4j.gemspec +25 -15
- metadata +136 -149
- data/README.rdoc +0 -135
- data/lib/generators/neo4j.rb +0 -65
- data/lib/generators/neo4j/model/model_generator.rb +0 -39
- data/lib/generators/neo4j/model/templates/model.erb +0 -7
- data/lib/neo4j/config.rb +0 -153
- data/lib/neo4j/database.rb +0 -56
- data/lib/neo4j/equal.rb +0 -21
- data/lib/neo4j/event_handler.rb +0 -116
- data/lib/neo4j/index/class_methods.rb +0 -62
- data/lib/neo4j/index/index.rb +0 -33
- data/lib/neo4j/index/indexer.rb +0 -312
- data/lib/neo4j/index/indexer_registry.rb +0 -68
- data/lib/neo4j/index/lucene_query.rb +0 -191
- data/lib/neo4j/jars/geronimo-jta_1.1_spec-1.1.1.jar +0 -0
- data/lib/neo4j/jars/lucene-core-3.0.2.jar +0 -0
- data/lib/neo4j/jars/neo4j-index-1.2-1.2.M03.jar +0 -0
- data/lib/neo4j/jars/neo4j-kernel-1.2-1.2.M03.jar +0 -0
- data/lib/neo4j/jars/neo4j-lucene-index-0.2-1.2.M03.jar +0 -0
- data/lib/neo4j/load.rb +0 -21
- data/lib/neo4j/mapping/class_methods/init_node.rb +0 -50
- data/lib/neo4j/mapping/class_methods/init_rel.rb +0 -35
- data/lib/neo4j/mapping/class_methods/property.rb +0 -80
- data/lib/neo4j/mapping/class_methods/relationship.rb +0 -90
- data/lib/neo4j/mapping/class_methods/root.rb +0 -31
- data/lib/neo4j/mapping/class_methods/rule.rb +0 -295
- data/lib/neo4j/mapping/decl_relationship_dsl.rb +0 -214
- data/lib/neo4j/mapping/has_n.rb +0 -83
- data/lib/neo4j/mapping/node_mixin.rb +0 -97
- data/lib/neo4j/mapping/relationship_mixin.rb +0 -117
- data/lib/neo4j/model.rb +0 -4
- data/lib/neo4j/neo4j.rb +0 -95
- data/lib/neo4j/node.rb +0 -131
- data/lib/neo4j/node_mixin.rb +0 -4
- data/lib/neo4j/node_relationship.rb +0 -149
- data/lib/neo4j/node_traverser.rb +0 -157
- data/lib/neo4j/property.rb +0 -111
- data/lib/neo4j/rails/finders.rb +0 -121
- data/lib/neo4j/rails/lucene_connection_closer.rb +0 -19
- data/lib/neo4j/rails/mapping/property.rb +0 -35
- data/lib/neo4j/rails/model.rb +0 -324
- data/lib/neo4j/rails/railtie.rb +0 -16
- data/lib/neo4j/rails/transaction.rb +0 -67
- data/lib/neo4j/rails/tx_methods.rb +0 -15
- data/lib/neo4j/rails/validations/non_nil.rb +0 -11
- data/lib/neo4j/rails/validations/uniqueness.rb +0 -31
- data/lib/neo4j/rails/value.rb +0 -124
- data/lib/neo4j/rails/value_properties.rb +0 -29
- data/lib/neo4j/relationship.rb +0 -169
- data/lib/neo4j/relationship_mixin.rb +0 -4
- data/lib/neo4j/relationship_traverser.rb +0 -92
- data/lib/neo4j/to_java.rb +0 -31
- data/lib/neo4j/transaction.rb +0 -68
- data/lib/neo4j/type_converters.rb +0 -98
data/lib/neo4j/to_java.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
module ToJava
|
3
|
-
|
4
|
-
def type_to_java(type)
|
5
|
-
org.neo4j.graphdb.DynamicRelationshipType.withName(type.to_s)
|
6
|
-
end
|
7
|
-
|
8
|
-
def dir_to_java(dir)
|
9
|
-
case dir
|
10
|
-
when :outgoing then org.neo4j.graphdb.Direction::OUTGOING
|
11
|
-
when :both then org.neo4j.graphdb.Direction::BOTH
|
12
|
-
when :incoming then org.neo4j.graphdb.Direction::INCOMING
|
13
|
-
else raise "unknown direction '#{dir}', expects :outgoing, :incoming or :both"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
org.neo4j.kernel.impl.core.IntArrayIterator.class_eval do
|
21
|
-
def each_wrapped
|
22
|
-
while(hasNext())
|
23
|
-
yield self.next().wrapper
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def wrapped
|
28
|
-
Enumerator.new(self, :each_wrapped)
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
data/lib/neo4j/transaction.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
#
|
3
|
-
# All modifying operations that work with the node space must be wrapped in a transaction. Transactions are thread confined.
|
4
|
-
# Neo4j does not implement true nested transaction, instead it uses flat nested transactions
|
5
|
-
# see http://wiki.neo4j.org/content/Flat_nested_transactions
|
6
|
-
#
|
7
|
-
class Transaction
|
8
|
-
|
9
|
-
# Starts a new Neo4j Transaction
|
10
|
-
# Returns a Java Neo4j Transaction object
|
11
|
-
# See http://api.neo4j.org/current/org/neo4j/graphdb/Transaction.html
|
12
|
-
#
|
13
|
-
# Example:
|
14
|
-
# tx = Neo4j::Transaction.new
|
15
|
-
# # modify something
|
16
|
-
# tx.success
|
17
|
-
# tx.finish
|
18
|
-
def self.new(instance = Neo4j.started_db)
|
19
|
-
instance.begin_tx
|
20
|
-
end
|
21
|
-
|
22
|
-
# Runs a block in a Neo4j transaction
|
23
|
-
#
|
24
|
-
# Many operations on neo requires an transaction. You will get much better performance if
|
25
|
-
# one transaction is wrapped around several neo operation instead of running one transaction per
|
26
|
-
# neo operation.
|
27
|
-
# If one transaction is already running then a 'placebo' transaction will be created.
|
28
|
-
# Performing a finish on a placebo transaction will not finish the 'real' transaction.
|
29
|
-
#
|
30
|
-
# ==== Params
|
31
|
-
# ::yield:: the block to be performed in one transaction
|
32
|
-
#
|
33
|
-
# ==== Examples
|
34
|
-
# include 'neo4j'
|
35
|
-
#
|
36
|
-
# Neo4j::Transaction.run {
|
37
|
-
# node = PersonNode.new
|
38
|
-
# }
|
39
|
-
#
|
40
|
-
# You have also access to transaction object
|
41
|
-
#
|
42
|
-
# Neo4j::Transaction.run { |t|
|
43
|
-
# # something failed
|
44
|
-
# t.failure # will cause a rollback
|
45
|
-
# }
|
46
|
-
|
47
|
-
# If an exception occurs inside the block the transaction will rollback automatically
|
48
|
-
#
|
49
|
-
# ==== Returns
|
50
|
-
# The value of the evaluated provided block
|
51
|
-
#
|
52
|
-
def self.run # :yield: block that will be executed in a transaction
|
53
|
-
raise ArgumentError.new("Expected a block to run in Transaction.run") unless block_given?
|
54
|
-
|
55
|
-
begin
|
56
|
-
tx = Neo4j::Transaction.new
|
57
|
-
ret = yield tx
|
58
|
-
tx.success
|
59
|
-
rescue Exception
|
60
|
-
tx.failure unless tx.nil?
|
61
|
-
raise
|
62
|
-
ensure
|
63
|
-
tx.finish unless tx.nil?
|
64
|
-
end
|
65
|
-
ret
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,98 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
|
3
|
-
# Responsible for converting values from and to Java Neo4j and Lucene.
|
4
|
-
# You can implement your own converter by implementing the method <tt>to_java</tt> and <tt>to_ruby</tt>
|
5
|
-
# and add it to the Neo4j::Config with the key <tt>:converters</tt>
|
6
|
-
#
|
7
|
-
# There are currently two default converters that are triggered when a Date or a DateTime is read or written.
|
8
|
-
#
|
9
|
-
module TypeConverters
|
10
|
-
|
11
|
-
# Converts Date objects to Java long types. Must be timezone UTC.
|
12
|
-
class DateConverter
|
13
|
-
class << self
|
14
|
-
def to_java(value)
|
15
|
-
return nil if value.nil?
|
16
|
-
Time.utc(value.year, value.month, value.day).to_i
|
17
|
-
end
|
18
|
-
|
19
|
-
def to_ruby(value)
|
20
|
-
return nil if value.nil?
|
21
|
-
Time.at(value).utc
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# Converts DateTime objects to and from Java long types. Must be timezone UTC.
|
27
|
-
class DateTimeConverter
|
28
|
-
class << self
|
29
|
-
# Converts the given DateTime (UTC) value to an Fixnum.
|
30
|
-
# Only utc times are supported !
|
31
|
-
def to_java(value)
|
32
|
-
return nil if value.nil?
|
33
|
-
Time.utc(value.year, value.month, value.day, value.hour, value.min, value.sec).to_i
|
34
|
-
end
|
35
|
-
|
36
|
-
def to_ruby(value)
|
37
|
-
return nil if value.nil?
|
38
|
-
t = Time.at(value).utc
|
39
|
-
DateTime.civil(t.year, t.month, t.day, t.hour, t.min, t.sec)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
class TimeConverter
|
45
|
-
class << self
|
46
|
-
# Converts the given DateTime (UTC) value to an Fixnum.
|
47
|
-
# Only utc times are supported !
|
48
|
-
def to_java(value)
|
49
|
-
return nil if value.nil?
|
50
|
-
value.utc.to_i
|
51
|
-
end
|
52
|
-
|
53
|
-
def to_ruby(value)
|
54
|
-
return nil if value.nil?
|
55
|
-
Time.at(value).utc
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# Converts the given value to a Java type by using the registered converters.
|
61
|
-
# It just looks at the class of the given value and will convert it if there is a converter
|
62
|
-
# registered (in Neo4j::Config) for this value.
|
63
|
-
def self.convert(value)
|
64
|
-
type = value.class
|
65
|
-
converter = Neo4j.converters[type]
|
66
|
-
return value unless converter
|
67
|
-
converter.to_java(value)
|
68
|
-
end
|
69
|
-
|
70
|
-
# Converts the given property (key, value) to Java by using configuration from the given class.
|
71
|
-
# If no Converter is defined for this value then it simply returns the given value.
|
72
|
-
def self.to_java(clazz, key, value)
|
73
|
-
type = clazz._decl_props[key] && clazz._decl_props[key][:type]
|
74
|
-
if type
|
75
|
-
converter = Neo4j.converters[type]
|
76
|
-
converter ? converter.to_java(value) : value
|
77
|
-
elsif clazz.superclass != Object
|
78
|
-
to_java(clazz.superclass, key, value)
|
79
|
-
else
|
80
|
-
value
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
# Converts the given property (key, value) to Ruby by using configuration from the given class.
|
85
|
-
# If no Converter is defined for this value then it simply returns the given value.
|
86
|
-
def self.to_ruby(clazz, key, value)
|
87
|
-
type = clazz._decl_props[key] && clazz._decl_props[key][:type]
|
88
|
-
if type
|
89
|
-
converter = Neo4j.converters[type]
|
90
|
-
converter ? converter.to_ruby(value) : value
|
91
|
-
elsif clazz.superclass != Object
|
92
|
-
to_ruby(clazz.superclass, key, value)
|
93
|
-
else
|
94
|
-
value
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|