neography 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neography (0.0.17)
4
+ neography (0.0.19)
5
5
  httparty (= 0.7.8)
6
6
  json
7
7
  os
@@ -15,7 +15,6 @@ GEM
15
15
  httparty (0.7.8)
16
16
  crack (= 0.1.8)
17
17
  json (1.6.4)
18
- json (1.6.4-java)
19
18
  net-http-spy (0.2.1)
20
19
  os (0.9.5)
21
20
  rake (0.8.7)
data/README.rdoc CHANGED
@@ -30,6 +30,8 @@ in order to access the functionality.
30
30
  === Dependencies
31
31
 
32
32
  for use:
33
+ os
34
+ rake
33
35
  json
34
36
  httparty
35
37
 
@@ -133,8 +135,10 @@ To Use:
133
135
  @neo.get_relationship_index(index, key, value) # exact query of the relationship index with the given key/value pair
134
136
  @neo.find_relationship_index(index, key, value) # advanced query of the relationship index with the given key/value pair
135
137
  @neo.find_relationship_index(index, query) # advanced query of the relationship index with the given query
136
- @neo.execute_script("g.v(0)") # sends a Groovy script(through the Gremlin plugin)
138
+ @neo.execute_script("g.v(0)") # sends a Groovy script (through the Gremlin plugin)
139
+ @neo.execute_script("g.v(id)", {:id => 3}) # sends a parameterized Groovy script (optimized for repeated calls)
137
140
  @neo.execute_query("start n=node(0) return n") # sends a Cypher query (through the Cypher plugin)
141
+ @neo.execute_query("start n=node(id) return n", {:id => 3}) # sends a parameterized Cypher query (optimized for repeated calls)
138
142
 
139
143
  @neo.get_path(node1, node2, relationships, depth=4, algorithm="shortestPath") # finds the shortest path between two nodes
140
144
  @neo.get_paths(node1, node2, relationships, depth=3, algorithm="allPaths") # finds all paths between two nodes
@@ -341,13 +341,18 @@ module Neography
341
341
  paths = post("/node/#{get_id(from)}/paths", options) || Array.new
342
342
  end
343
343
 
344
- def execute_query(query)
344
+ def execute_query_old(query)
345
345
  options = { :body => {:query => query}.to_json, :headers => {'Content-Type' => 'application/json'} }
346
346
  result = post("/ext/CypherPlugin/graphdb/execute_query", options)
347
347
  end
348
+
349
+ def execute_query(query, params = {})
350
+ options = { :body => {:query => query, :params => params}.to_json, :headers => {'Content-Type' => 'application/json'} }
351
+ result = post("/ext/CypherPlugin/graphdb/execute_query", options)
352
+ end
348
353
 
349
- def execute_script(script)
350
- options = { :body => "script=" + CGI::escape(script), :headers => {'Content-Type' => 'application/x-www-form-urlencoded'} }
354
+ def execute_script(script, params = {})
355
+ options = { :body => {:script => script, :params => params}.to_json , :headers => {'Content-Type' => 'application/json'} }
351
356
  result = post("/ext/GremlinPlugin/graphdb/execute_script", options)
352
357
  result == "null" ? nil : result
353
358
  end
@@ -1,3 +1,3 @@
1
1
  module Neography
2
- VERSION = "0.0.19"
2
+ VERSION = "0.0.20"
3
3
  end
data/neography.gemspec CHANGED
@@ -21,8 +21,8 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency "rspec"
23
23
  s.add_development_dependency "net-http-spy", "0.2.1"
24
- s.add_development_dependency "rake", "~> 0.8.7"
25
- s.add_dependency "httparty", "0.7.8"
24
+ s.add_dependency "rake", ">= 0.8.7"
25
+ s.add_dependency "httparty", "~> 0.7.8"
26
26
  s.add_dependency "json"
27
27
  s.add_dependency "os"
28
28
  s.add_dependency "rubyzip"
@@ -11,6 +11,24 @@ describe Neography::Rest do
11
11
  root_node.should have_key("self")
12
12
  root_node["self"].split('/').last.should == "0"
13
13
  end
14
+
15
+ it "can get the a node" do
16
+ new_node = @neo.create_node
17
+ id = new_node["self"].split('/').last
18
+ existing_node = @neo.execute_script("g.v(#{id})")
19
+ existing_node.should_not be_nil
20
+ existing_node.should have_key("self")
21
+ existing_node["self"].split('/').last.should == id
22
+ end
23
+
24
+ it "can get the a node with a variable" do
25
+ new_node = @neo.create_node
26
+ id = new_node["self"].split('/').last
27
+ existing_node = @neo.execute_script("g.v(id)", {:id => id.to_i})
28
+ existing_node.should_not be_nil
29
+ existing_node.should have_key("self")
30
+ existing_node["self"].split('/').last.should == id
31
+ end
14
32
  end
15
33
 
16
34
  describe "execute cypher query" do
@@ -21,6 +39,29 @@ describe Neography::Rest do
21
39
  root_node["data"][0][0].should have_key("self")
22
40
  root_node["data"][0][0]["self"].split('/').last.should == "0"
23
41
  end
42
+
43
+ it "can get the a node" do
44
+ new_node = @neo.create_node
45
+ id = new_node["self"].split('/').last
46
+ existing_node = @neo.execute_query("start n=node(#{id}) return n")
47
+ existing_node.should_not be_nil
48
+ existing_node.should have_key("data")
49
+ existing_node.should have_key("columns")
50
+ existing_node["data"][0][0].should have_key("self")
51
+ existing_node["data"][0][0]["self"].split('/').last.should == id
52
+ end
53
+
54
+ it "can get the a node with a variable" do
55
+ new_node = @neo.create_node
56
+ id = new_node["self"].split('/').last
57
+ existing_node = @neo.execute_query("start n=node({id}) return n", {:id => id.to_i})
58
+ existing_node.should_not be_nil
59
+ existing_node.should have_key("data")
60
+ existing_node.should have_key("columns")
61
+ existing_node["data"][0][0].should have_key("self")
62
+ existing_node["data"][0][0]["self"].split('/').last.should == id
63
+ end
64
+
24
65
  end
25
66
 
26
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neography
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 0.0.20
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-05 00:00:00.000000000Z
12
+ date: 2012-01-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70481300 !ruby/object:Gem::Requirement
16
+ requirement: &73293220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70481300
24
+ version_requirements: *73293220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: net-http-spy
27
- requirement: &70480860 !ruby/object:Gem::Requirement
27
+ requirement: &73292790 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,32 +32,32 @@ dependencies:
32
32
  version: 0.2.1
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70480860
35
+ version_requirements: *73292790
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70480390 !ruby/object:Gem::Requirement
38
+ requirement: &73292370 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ~>
41
+ - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: 0.8.7
44
- type: :development
44
+ type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70480390
46
+ version_requirements: *73292370
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: httparty
49
- requirement: &70480000 !ruby/object:Gem::Requirement
49
+ requirement: &73291920 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - =
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.7.8
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70480000
57
+ version_requirements: *73291920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: json
60
- requirement: &70479670 !ruby/object:Gem::Requirement
60
+ requirement: &73291510 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70479670
68
+ version_requirements: *73291510
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: os
71
- requirement: &70479300 !ruby/object:Gem::Requirement
71
+ requirement: &73290970 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70479300
79
+ version_requirements: *73290970
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rubyzip
82
- requirement: &70478950 !ruby/object:Gem::Requirement
82
+ requirement: &73290680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70478950
90
+ version_requirements: *73290680
91
91
  description: A Ruby wrapper to the Neo4j Rest API see http://components.neo4j.org/neo4j-rest/
92
92
  for more details.
93
93
  email: maxdemarzi@gmail.com