neography 0.0.20 → 0.0.21

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/README.rdoc CHANGED
@@ -10,14 +10,23 @@ A complement to Neography is the Neology Gem at https://github.com/lordkada/neol
10
10
 
11
11
  An alternative is the Architect4r Gem at https://github.com/namxam/architect4r by Maximilian Schulz
12
12
 
13
+ === Neography in the Wild
13
14
 
14
- === Installation
15
+ * {Vouched}[http://getvouched.com]
16
+ * {Neovigator}[http://neovigator.herokuapp.com] fork it at https://github.com/maxdemarzi/neovigator
17
+ * {Neoflix}[http://neoflix.herokuapp.com] fork it at https://github.com/maxdemarzi/neoflix
18
+
19
+ === Getting started with Neography
20
+
21
+ * {Getting Started with Ruby and Neo4j}[http://maxdemarzi.com/2012/01/04/getting-started-with-ruby-and-neo4j/]
22
+ * {Graph visualization with Neo4j}[http://maxdemarzi.com/2012/01/11/graph-visualization-and-neo4j/]
23
+ * {Neo4j on Heroku}[http://maxdemarzi.com/2012/01/13/neo4j-on-heroku-part-one/]
15
24
 
16
- gem install 'neography', '0.0.14' # for version 1.4 of Neo4j
17
25
 
18
- or
26
+ === Installation
27
+
28
+ gem install 'neography'
19
29
 
20
- gem install 'neography' # for version 1.5M of Neo4j or higher
21
30
 
22
31
  After that, in your ruby script:
23
32
 
@@ -46,7 +55,7 @@ Just add gem 'neography' to your Gemfile and run bundle install.
46
55
  The following tasks will be available to you:
47
56
 
48
57
  rake neo4j:install # Install Neo4j to the neo4j directory under your project
49
- rake neo4j:install[community,1.6.M02] # Install Neo4j Community edition, version 1.6.M02
58
+ rake neo4j:install[community,1.6.M03] # Install Neo4j Community edition, version 1.6.M03
50
59
  rake neo4j:install[advanced,1.5] # Install Neo4j Advanced edition, version 1.5
51
60
  rake neo4j:install[enterprise,1.5] # Install Neo4j Enterprise edition, version 1.5
52
61
  rake neo4j:start # Start Neo4j
@@ -172,18 +181,21 @@ Batch (in progress):
172
181
  @neo.batch [:get_relationship, rel1],
173
182
  [:get_relationship, rel2] # Gets two relationships in a batch
174
183
  @neo.batch [:create_relationship, "friends",
175
- node1, node2, {:since => "high school"}]
184
+ node1, node2, {:since => "high school"}],
176
185
  [:create_relationship, "friends",
177
186
  node1, node3, {:since => "college"}] # Creates two relationships in a batch
178
187
  @neo.batch [:create_node, {"name" => "Max"}],
179
188
  [:create_node, {"name" => "Marc"}], # Creates two nodes and index them
180
- [:add_node_to_index, "test_node_index", key, value, "{0}"]
181
- [:add_node_to_index, "test_node_index", key, value, "{1}"]
189
+ [:add_node_to_index, "test_node_index", key, value, "{0}"],
190
+ [:add_node_to_index, "test_node_index", key, value, "{1}"],
182
191
  [:create_relationship, "friends", # and create a relationship for those
183
- "{0}", "{1}", {:since => "college"}] # newly created nodes
192
+ "{0}", "{1}", {:since => "college"}], # newly created nodes
184
193
  [:add_relationship_to_index,
185
194
  "test_relationship_index", key, value, "{4}"] # and index the new relationship
186
195
 
196
+ @neo.batch *[[:create_node, {"name" => "Max"}],
197
+ [:create_node, {"name" => "Marc"}]] # Use the Splat (*) with Arrays of Arrays
198
+
187
199
  See http://docs.neo4j.org/chunked/milestone/rest-api-batch-ops.html for Neo4j Batch operations documentation.
188
200
 
189
201
  Experimental:
@@ -13,7 +13,7 @@ module Neography
13
13
  # the arguments can be an hash of properties to set or a rest instance
14
14
  props = (args[0].respond_to?(:each_pair) && args[0]) || args[1]
15
15
  db = (args[0].is_a?(Neography::Rest) && args[0]) || args[1] || Neography::Rest.new
16
- node = Neography::Node.new(db.create_node(props))
16
+ node = self.new(db.create_node(props))
17
17
  node.neo_server = db
18
18
  node
19
19
  end
@@ -25,7 +25,7 @@ module Neography
25
25
  # a db instance can be given, it is the first argument or the second
26
26
  db = (args[0].is_a?(Neography::Rest) && args[0]) || args[1] || Neography::Rest.new
27
27
  node = db.get_node(node)
28
- node = Neography::Node.new(node) unless node.nil?
28
+ node = self.new(node) unless node.nil?
29
29
  node.neo_server = db unless node.nil?
30
30
  node
31
31
  end
@@ -101,7 +101,7 @@ module Neography
101
101
 
102
102
  def each
103
103
  iterator.each do |i|
104
- node = Neography::Node.new(i)
104
+ node = @from.class.new(i)
105
105
  node.neo_server = @from.neo_server
106
106
  yield node
107
107
  end
@@ -4,7 +4,7 @@ module Neography
4
4
 
5
5
  attr_accessor :protocol, :server, :port, :directory, :log_file, :log_enabled, :logger, :max_threads, :authentication, :username, :password
6
6
 
7
- def initialize(options={})
7
+ def initialize(options=ENV['NEO4J_URL'] || {})
8
8
  init = {:protocol => Neography::Config.protocol,
9
9
  :server => Neography::Config.server,
10
10
  :port => Neography::Config.port,
@@ -59,7 +59,7 @@ module Neography
59
59
 
60
60
  def create_node(*args)
61
61
  if args[0].respond_to?(:each_pair) && args[0]
62
- options = { :body => args[0].to_json, :headers => {'Content-Type' => 'application/json'} }
62
+ options = { :body => args[0].delete_if { |k, v| v.nil? }.to_json, :headers => {'Content-Type' => 'application/json'} }
63
63
  post("/node", options)
64
64
  else
65
65
  post("/node")
@@ -341,11 +341,6 @@ module Neography
341
341
  paths = post("/node/#{get_id(from)}/paths", options) || Array.new
342
342
  end
343
343
 
344
- def execute_query_old(query)
345
- options = { :body => {:query => query}.to_json, :headers => {'Content-Type' => 'application/json'} }
346
- result = post("/ext/CypherPlugin/graphdb/execute_query", options)
347
- end
348
-
349
344
  def execute_query(query, params = {})
350
345
  options = { :body => {:query => query, :params => params}.to_json, :headers => {'Content-Type' => 'application/json'} }
351
346
  result = post("/ext/CypherPlugin/graphdb/execute_query", options)
@@ -4,7 +4,7 @@ require 'os'
4
4
  namespace :neo4j do
5
5
  desc "Install Neo4j"
6
6
  task :install, :edition, :version do |t, args|
7
- args.with_defaults(:edition => "community", :version => "1.6.M02")
7
+ args.with_defaults(:edition => "community", :version => "1.6")
8
8
  puts "Installing Neo4j-#{args[:edition]}-#{args[:version]}"
9
9
 
10
10
  if OS::Underlying.windows?
@@ -1,3 +1,3 @@
1
1
  module Neography
2
- VERSION = "0.0.20"
2
+ VERSION = "0.0.21"
3
3
  end
@@ -47,6 +47,13 @@ describe Neography::Rest do
47
47
  batch_result.last["body"]["data"]["name"].should == "Marc"
48
48
  end
49
49
 
50
+ it "can create multiple nodes given an *array" do
51
+ batch_result = @neo.batch *[[:create_node, {"name" => "Max"}], [:create_node, {"name" => "Marc"}]]
52
+ batch_result.first["body"]["data"]["name"].should == "Max"
53
+ batch_result.last["body"]["data"]["name"].should == "Marc"
54
+ end
55
+
56
+
50
57
  it "can update a property of a node" do
51
58
  new_node = @neo.create_node("name" => "Max")
52
59
  batch_result = @neo.batch [:set_node_property, new_node, {"name" => "Marc"}]
@@ -24,6 +24,13 @@ describe Neography::Rest do
24
24
  new_node["data"]["name"].should == "Max"
25
25
  end
26
26
 
27
+ it "can create a node with nil properties" do
28
+ new_node = @neo.create_node("name" => "Max", "age" => nil )
29
+ new_node["data"]["name"].should == "Max"
30
+ new_node["data"]["age"].should be_nil
31
+ end
32
+
33
+
27
34
  it "can create a node with more than one property" do
28
35
  new_node = @neo.create_node("age" => 31, "name" => "Max")
29
36
  new_node["data"]["name"].should == "Max"
metadata CHANGED
@@ -1,100 +1,135 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: neography
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.20
3
+ version: !ruby/object:Gem::Version
4
+ hash: 53
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 21
10
+ version: 0.0.21
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Max De Marzi
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-01-07 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-01-25 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rspec
16
- requirement: &73293220 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :development
23
- prerelease: false
24
- version_requirements: *73293220
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: net-http-spy
27
- requirement: &73292790 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
28
38
  none: false
29
- requirements:
30
- - - =
31
- - !ruby/object:Gem::Version
39
+ requirements:
40
+ - - "="
41
+ - !ruby/object:Gem::Version
42
+ hash: 21
43
+ segments:
44
+ - 0
45
+ - 2
46
+ - 1
32
47
  version: 0.2.1
33
48
  type: :development
34
- prerelease: false
35
- version_requirements: *73292790
36
- - !ruby/object:Gem::Dependency
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
37
51
  name: rake
38
- requirement: &73292370 !ruby/object:Gem::Requirement
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
39
54
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 49
59
+ segments:
60
+ - 0
61
+ - 8
62
+ - 7
43
63
  version: 0.8.7
44
64
  type: :runtime
45
- prerelease: false
46
- version_requirements: *73292370
47
- - !ruby/object:Gem::Dependency
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
48
67
  name: httparty
49
- requirement: &73291920 !ruby/object:Gem::Requirement
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
50
70
  none: false
51
- requirements:
71
+ requirements:
52
72
  - - ~>
53
- - !ruby/object:Gem::Version
73
+ - !ruby/object:Gem::Version
74
+ hash: 19
75
+ segments:
76
+ - 0
77
+ - 7
78
+ - 8
54
79
  version: 0.7.8
55
80
  type: :runtime
56
- prerelease: false
57
- version_requirements: *73291920
58
- - !ruby/object:Gem::Dependency
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
59
83
  name: json
60
- requirement: &73291510 !ruby/object:Gem::Requirement
84
+ prerelease: false
85
+ requirement: &id005 !ruby/object:Gem::Requirement
61
86
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
66
94
  type: :runtime
67
- prerelease: false
68
- version_requirements: *73291510
69
- - !ruby/object:Gem::Dependency
95
+ version_requirements: *id005
96
+ - !ruby/object:Gem::Dependency
70
97
  name: os
71
- requirement: &73290970 !ruby/object:Gem::Requirement
98
+ prerelease: false
99
+ requirement: &id006 !ruby/object:Gem::Requirement
72
100
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
77
108
  type: :runtime
78
- prerelease: false
79
- version_requirements: *73290970
80
- - !ruby/object:Gem::Dependency
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
81
111
  name: rubyzip
82
- requirement: &73290680 !ruby/object:Gem::Requirement
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
83
114
  none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
88
122
  type: :runtime
89
- prerelease: false
90
- version_requirements: *73290680
91
- description: A Ruby wrapper to the Neo4j Rest API see http://components.neo4j.org/neo4j-rest/
92
- for more details.
123
+ version_requirements: *id007
124
+ description: A Ruby wrapper to the Neo4j Rest API see http://components.neo4j.org/neo4j-rest/ for more details.
93
125
  email: maxdemarzi@gmail.com
94
126
  executables: []
127
+
95
128
  extensions: []
129
+
96
130
  extra_rdoc_files: []
97
- files:
131
+
132
+ files:
98
133
  - .gitignore
99
134
  - .project
100
135
  - .travis.yml
@@ -149,26 +184,36 @@ files:
149
184
  - spec/spec_helper.rb
150
185
  homepage: http://rubygems.org/gems/neography
151
186
  licenses: []
187
+
152
188
  post_install_message:
153
189
  rdoc_options: []
154
- require_paths:
190
+
191
+ require_paths:
155
192
  - lib
156
- required_ruby_version: !ruby/object:Gem::Requirement
193
+ required_ruby_version: !ruby/object:Gem::Requirement
157
194
  none: false
158
- requirements:
159
- - - ! '>='
160
- - !ruby/object:Gem::Version
161
- version: '0'
162
- required_rubygems_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 3
199
+ segments:
200
+ - 0
201
+ version: "0"
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
203
  none: false
164
- requirements:
165
- - - ! '>='
166
- - !ruby/object:Gem::Version
167
- version: '0'
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ hash: 3
208
+ segments:
209
+ - 0
210
+ version: "0"
168
211
  requirements: []
212
+
169
213
  rubyforge_project: neography
170
- rubygems_version: 1.8.10
214
+ rubygems_version: 1.8.9
171
215
  signing_key:
172
216
  specification_version: 3
173
217
  summary: ruby wrapper to Neo4j Rest API
174
218
  test_files: []
219
+