neography 1.2.3 → 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/neography/connection.rb +18 -2
- data/lib/neography/node.rb +8 -0
- data/lib/neography/relationship.rb +8 -0
- data/lib/neography/rest.rb +2 -2
- data/lib/neography/rest/batch.rb +15 -0
- data/lib/neography/rest/relationship_indexes.rb +3 -2
- data/lib/neography/version.rb +1 -1
- data/spec/integration/rest_batch_spec.rb +17 -0
- data/spec/unit/connection_spec.rb +25 -0
- data/spec/unit/rest/relationship_indexes_spec.rb +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcd694c03de5bbb920692ee87085c2da39815c2b
|
4
|
+
data.tar.gz: 27cac259abff49d847b099819c6c5bd7f617f69f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31203feeec0907870e2be162a47f201c78a1ab5e306119e6dd018ed711365f35b9580d87b48bfdb842b4e1f003162db2e2bf2b4bfa65ef9f1ad72a030ecd1e23
|
7
|
+
data.tar.gz: 79270c702fb7e25a6c9a8a2858dc510dbad1c60a333df6ecc2e7105c431ecee60be0371bba1c6c12ac9c755f511e772e19ea9b76e0c1f5952f34b250711c017e
|
data/lib/neography/connection.rb
CHANGED
@@ -40,11 +40,27 @@ module Neography
|
|
40
40
|
|
41
41
|
ACTIONS.each do |action|
|
42
42
|
define_method(action) do |path, options = {}|
|
43
|
-
|
44
|
-
|
43
|
+
query_path = configuration + path
|
44
|
+
query_body = merge_options(options)[:body]
|
45
|
+
authenticate(query_path)
|
46
|
+
log path, query_body do
|
47
|
+
evaluate_response(@client.send(action.to_sym, query_path, query_body, merge_options(options)[:headers]))
|
48
|
+
end
|
45
49
|
end
|
46
50
|
end
|
47
51
|
|
52
|
+
def log(path, body)
|
53
|
+
if @log_enabled
|
54
|
+
start_time = Time.now
|
55
|
+
response = yield
|
56
|
+
time = ((Time.now - start_time) * 1000).round(2)
|
57
|
+
@logger.info "[Neography::Query] #{path} #{body} [#{time}ms]"
|
58
|
+
response
|
59
|
+
else
|
60
|
+
yield
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
48
64
|
def authenticate(path)
|
49
65
|
@client.set_auth(path,
|
50
66
|
@authentication[@authentication.keys.first][:username],
|
data/lib/neography/node.rb
CHANGED
@@ -17,6 +17,14 @@ module Neography
|
|
17
17
|
node
|
18
18
|
end
|
19
19
|
|
20
|
+
def create_unique(index, key, value, props = nil, db = Neography::Rest.new)
|
21
|
+
raise ArgumentError.new("syntax deprecated") if props.is_a?(Neography::Rest)
|
22
|
+
|
23
|
+
node = self.new(db.create_unique_node(index, key, value, props))
|
24
|
+
node.neo_server = db
|
25
|
+
node
|
26
|
+
end
|
27
|
+
|
20
28
|
def load(node, db = Neography::Rest.new)
|
21
29
|
raise ArgumentError.new("syntax deprecated") if node.is_a?(Neography::Rest)
|
22
30
|
node = node.first if node.kind_of?(Array)
|
@@ -16,6 +16,14 @@ module Neography
|
|
16
16
|
rel
|
17
17
|
end
|
18
18
|
|
19
|
+
def create_unique(index, key, value, type, from_node, to_node, props = nil)
|
20
|
+
rel = Neography::Relationship.new(from_node.neo_server.create_unique_relationship(index, key, value, type, from_node, to_node, props))
|
21
|
+
rel.start_node = from_node
|
22
|
+
rel.end_node = to_node
|
23
|
+
rel.rel_type = type
|
24
|
+
rel
|
25
|
+
end
|
26
|
+
|
19
27
|
def load(rel, db = Neography::Rest.new)
|
20
28
|
raise ArgumentError.new("syntax deprecated") if rel.is_a?(Neography::Rest)
|
21
29
|
|
data/lib/neography/rest.rb
CHANGED
@@ -347,8 +347,8 @@ module Neography
|
|
347
347
|
@relationship_indexes.create_auto(type, provider)
|
348
348
|
end
|
349
349
|
|
350
|
-
def create_unique_relationship(index, key, value, type, from, to)
|
351
|
-
@relationship_indexes.create_unique(index, key, value, type, from, to)
|
350
|
+
def create_unique_relationship(index, key, value, type, from, to, props = nil)
|
351
|
+
@relationship_indexes.create_unique(index, key, value, type, from, to, props)
|
352
352
|
end
|
353
353
|
|
354
354
|
def add_relationship_to_index(index, key, value, id)
|
data/lib/neography/rest/batch.rb
CHANGED
@@ -54,6 +54,21 @@ module Neography
|
|
54
54
|
|
55
55
|
# NodeIndexes
|
56
56
|
|
57
|
+
def create_node_index(name, type = "exact", provider = "lucene")
|
58
|
+
post NodeIndexes.all_path do
|
59
|
+
{ :name => name,
|
60
|
+
:config => {
|
61
|
+
:type => type,
|
62
|
+
:provider => provider
|
63
|
+
}
|
64
|
+
}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def drop_node_index(index)
|
69
|
+
delete NodeIndexes.unique_path(:index => index)
|
70
|
+
end
|
71
|
+
|
57
72
|
def create_unique_node(index, key, value, properties)
|
58
73
|
post NodeIndexes.unique_path(:index => index) do
|
59
74
|
{
|
@@ -17,13 +17,14 @@ module Neography
|
|
17
17
|
super(connection, :relationship)
|
18
18
|
end
|
19
19
|
|
20
|
-
def create_unique(index, key, value, type, from, to)
|
20
|
+
def create_unique(index, key, value, type, from, to, props = nil)
|
21
21
|
body = {
|
22
22
|
:key => key,
|
23
23
|
:value => value,
|
24
24
|
:type => type,
|
25
25
|
:start => @connection.configuration + "/node/#{get_id(from)}",
|
26
|
-
:end => @connection.configuration + "/node/#{get_id(to)}"
|
26
|
+
:end => @connection.configuration + "/node/#{get_id(to)}",
|
27
|
+
:properties => props
|
27
28
|
}
|
28
29
|
options = { :body => body.to_json, :headers => json_content_type }
|
29
30
|
|
data/lib/neography/version.rb
CHANGED
@@ -210,6 +210,23 @@ describe Neography::Rest do
|
|
210
210
|
existing_relationship["self"].should == new_relationship["self"]
|
211
211
|
end
|
212
212
|
|
213
|
+
it "can drop a node index" do
|
214
|
+
index_name = generate_text(6)
|
215
|
+
@neo.create_node_index(index_name)
|
216
|
+
@neo.batch [:drop_node_index, index_name]
|
217
|
+
@neo.list_node_indexes[index_name].should be_nil
|
218
|
+
end
|
219
|
+
|
220
|
+
it "can create a node index" do
|
221
|
+
index_name = generate_text(6)
|
222
|
+
@neo.batch [:create_node_index, index_name, "fulltext", "lucene"]
|
223
|
+
indexes = @neo.list_node_indexes
|
224
|
+
index = indexes[index_name]
|
225
|
+
index.should_not be_nil
|
226
|
+
index["provider"].should == "lucene"
|
227
|
+
index["type"].should == "fulltext"
|
228
|
+
end
|
229
|
+
|
213
230
|
it "can add a node to an index" do
|
214
231
|
index_name = generate_text(6)
|
215
232
|
new_node = @neo.create_node
|
@@ -204,6 +204,31 @@ module Neography
|
|
204
204
|
end
|
205
205
|
|
206
206
|
end
|
207
|
+
|
208
|
+
context "query logging" do
|
209
|
+
before do
|
210
|
+
connection.logger = Logger.new(nil)
|
211
|
+
connection.log_enabled = true
|
212
|
+
end
|
213
|
+
|
214
|
+
let :expected_response do
|
215
|
+
"expected_response"
|
216
|
+
end
|
217
|
+
|
218
|
+
let :request_body do
|
219
|
+
{key1: :val1}
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should log query" do
|
223
|
+
connection.should_receive(:log).with("/foo/bar", request_body).once
|
224
|
+
connection.get("/foo/bar", {body: request_body})
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should return original response" do
|
228
|
+
connection.stub(:evaluate_response).and_return expected_response
|
229
|
+
connection.get("/foo/bar").should eq expected_response
|
230
|
+
end
|
231
|
+
end
|
207
232
|
end
|
208
233
|
end
|
209
234
|
end
|
@@ -47,10 +47,11 @@ module Neography
|
|
47
47
|
"value" => "value",
|
48
48
|
"type" => "type",
|
49
49
|
"start" => "http://configuration/node/42",
|
50
|
-
"end" => "http://configuration/node/43"
|
50
|
+
"end" => "http://configuration/node/43",
|
51
|
+
"properties" => "properties"
|
51
52
|
}
|
52
53
|
connection.should_receive(:post).with("/index/relationship/some_index?unique", json_match(:body, expected_body))
|
53
|
-
subject.create_unique("some_index", "key", "value", "type", "42", "43")
|
54
|
+
subject.create_unique("some_index", "key", "value", "type", "42", "43", "properties")
|
54
55
|
end
|
55
56
|
|
56
57
|
it "adds a relationship to an index" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neography
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max De Marzi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|