neo4j-core 3.1.1 → 4.0.0

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -12
  3. data/README.md +7 -7
  4. data/lib/neo4j-core.rb +3 -2
  5. data/lib/neo4j-core/active_entity.rb +8 -10
  6. data/lib/neo4j-core/cypher_translator.rb +61 -59
  7. data/lib/neo4j-core/hash_with_indifferent_access.rb +31 -22
  8. data/lib/neo4j-core/helpers.rb +15 -17
  9. data/lib/neo4j-core/label.rb +7 -6
  10. data/lib/neo4j-core/query.rb +271 -268
  11. data/lib/neo4j-core/query_clauses.rb +371 -355
  12. data/lib/neo4j-core/query_find_in_batches.rb +26 -26
  13. data/lib/neo4j-core/version.rb +1 -1
  14. data/lib/neo4j-embedded.rb +2 -2
  15. data/lib/neo4j-embedded/cypher_response.rb +40 -41
  16. data/lib/neo4j-embedded/embedded_database.rb +21 -22
  17. data/lib/neo4j-embedded/embedded_ha_session.rb +13 -11
  18. data/lib/neo4j-embedded/embedded_impermanent_session.rb +9 -8
  19. data/lib/neo4j-embedded/embedded_label.rb +64 -70
  20. data/lib/neo4j-embedded/embedded_node.rb +68 -73
  21. data/lib/neo4j-embedded/embedded_relationship.rb +6 -13
  22. data/lib/neo4j-embedded/embedded_session.rb +128 -132
  23. data/lib/neo4j-embedded/embedded_transaction.rb +34 -33
  24. data/lib/neo4j-embedded/property.rb +84 -77
  25. data/lib/neo4j-embedded/to_java.rb +24 -23
  26. data/lib/neo4j-server.rb +1 -1
  27. data/lib/neo4j-server/cypher_authentication.rb +105 -103
  28. data/lib/neo4j-server/cypher_label.rb +25 -23
  29. data/lib/neo4j-server/cypher_node.rb +180 -177
  30. data/lib/neo4j-server/cypher_node_uncommited.rb +11 -9
  31. data/lib/neo4j-server/cypher_relationship.rb +101 -102
  32. data/lib/neo4j-server/cypher_response.rb +171 -170
  33. data/lib/neo4j-server/cypher_session.rb +209 -205
  34. data/lib/neo4j-server/cypher_transaction.rb +66 -48
  35. data/lib/neo4j-server/resource.rb +17 -22
  36. data/lib/neo4j/entity_equality.rb +3 -4
  37. data/lib/neo4j/label.rb +13 -16
  38. data/lib/neo4j/node.rb +30 -34
  39. data/lib/neo4j/property_container.rb +3 -3
  40. data/lib/neo4j/property_validator.rb +4 -5
  41. data/lib/neo4j/relationship.rb +17 -22
  42. data/lib/neo4j/session.rb +19 -21
  43. data/lib/neo4j/tasks/config_server.rb +2 -3
  44. data/lib/neo4j/tasks/neo4j_server.rake +82 -74
  45. data/lib/neo4j/transaction.rb +23 -22
  46. data/neo4j-core.gemspec +21 -16
  47. metadata +72 -2
@@ -9,14 +9,14 @@ module Neo4j
9
9
 
10
10
 
11
11
  # Sets the neo4j property
12
- def []=(key,value)
12
+ def []=(key, value)
13
13
  validate_property(value)
14
14
 
15
15
  if value.nil?
16
16
  remove_property(key)
17
17
  else
18
- set_property(key,value)
18
+ set_property(key, value)
19
19
  end
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -2,7 +2,6 @@ module Neo4j
2
2
  module PropertyValidator
3
3
  require 'set'
4
4
  class InvalidPropertyException < Exception
5
-
6
5
  end
7
6
 
8
7
  # the valid values on a property, and arrays of those.
@@ -15,9 +14,9 @@ module Neo4j
15
14
  end
16
15
 
17
16
  def validate_property(value)
18
- unless valid_property?(value)
19
- raise Neo4j::PropertyValidator::InvalidPropertyException.new("Not valid Neo4j Property value #{value.class}, valid: #{Neo4j::Node::VALID_PROPERTY_VALUE_CLASSES.to_a.join(', ')}")
20
- end
17
+ return if valid_property?(value)
18
+
19
+ fail Neo4j::PropertyValidator::InvalidPropertyException, "Not valid Neo4j Property value #{value.class}, valid: #{Neo4j::Node::VALID_PROPERTY_VALUE_CLASSES.to_a.join(', ')}"
21
20
  end
22
21
  end
23
- end
22
+ end
@@ -9,7 +9,6 @@ module Neo4j
9
9
  # Furthermore, Neo4j guarantees that a relationship is never "hanging freely,"
10
10
  # i.e. start_node, end_node and other_node are guaranteed to always return valid, non-nil nodes.
11
11
  class Relationship
12
-
13
12
  # A module that allows plugins to register wrappers around Neo4j::Node objects
14
13
  module Wrapper
15
14
  # Used by Neo4j::NodeMixin to wrap nodes
@@ -20,7 +19,6 @@ module Neo4j
20
19
  def neo4j_obj
21
20
  self
22
21
  end
23
-
24
22
  end
25
23
 
26
24
  include PropertyContainer
@@ -28,39 +26,39 @@ module Neo4j
28
26
  include Wrapper
29
27
 
30
28
  # @return [Hash<Symbol,Object>] all properties of the relationship
31
- def props()
32
- raise 'not implemented'
29
+ def props
30
+ fail 'not implemented'
33
31
  end
34
32
 
35
33
  # replace all properties with new properties
36
34
  # @param [Hash] properties a hash of properties the relationship should have
37
35
  def props=(properties)
38
- raise 'not implemented'
36
+ fail 'not implemented'
39
37
  end
40
38
 
41
39
  # Updates the properties, keeps old properties
42
40
  # @param [Hash<Symbol,Object>] properties hash of properties that should be updated on the relationship
43
41
  def update_props(properties)
44
- raise 'not implemented'
42
+ fail 'not implemented'
45
43
  end
46
44
 
47
45
  # Directly remove the property on the relationship (low level method, may need transaction)
48
46
  def remove_property(key)
49
- raise 'not implemented'
47
+ fail 'not implemented'
50
48
  end
51
49
 
52
50
  # Directly set the property on the relationship (low level method, may need transaction)
53
51
  # @param [Hash, String] key
54
52
  # @param value see Neo4j::PropertyValidator::VALID_PROPERTY_VALUE_CLASSES for valid values
55
53
  def set_property(key, value)
56
- raise 'not implemented'
54
+ fail 'not implemented'
57
55
  end
58
56
 
59
57
  # Directly get the property on the relationship (low level method, may need transaction)
60
58
  # @param [Hash, String] key
61
59
  # @return the value of the key
62
60
  def get_property(key, value)
63
- raise 'not implemented'
61
+ fail 'not implemented'
64
62
  end
65
63
 
66
64
  # Returns the start node of this relationship.
@@ -72,7 +70,7 @@ module Neo4j
72
70
  # Same as #start_node but does not wrap the node
73
71
  # @return [Neo4j::Node]
74
72
  def _start_node
75
- raise 'not implemented'
73
+ fail 'not implemented'
76
74
  end
77
75
 
78
76
  # Returns the end node of this relationship.
@@ -84,24 +82,24 @@ module Neo4j
84
82
  # Same as #end_node but does not wrap the node
85
83
  # @return [Neo4j::Node]
86
84
  def _end_node
87
- raise 'not implemented'
85
+ fail 'not implemented'
88
86
  end
89
87
 
90
88
  # @abstract
91
89
  def del
92
- raise 'not implemented'
90
+ fail 'not implemented'
93
91
  end
94
92
 
95
93
  # The unique neo4j id
96
94
  # @abstract
97
95
  def neo_id
98
- raise 'not implemented'
96
+ fail 'not implemented'
99
97
  end
100
98
 
101
99
  # @return [true, false] if the relationship exists
102
100
  # @abstract
103
101
  def exist?
104
- raise 'not implemented'
102
+ fail 'not implemented'
105
103
  end
106
104
 
107
105
  # Returns the relationship name
@@ -112,7 +110,7 @@ module Neo4j
112
110
  # a.rels.first.rel_type # => :friends
113
111
  # @return [Symbol] the type of the relationship
114
112
  def rel_type
115
- raise 'not implemented'
113
+ fail 'not implemented'
116
114
  end
117
115
 
118
116
  # A convenience operation that, given a node that is attached to this relationship, returns the other node.
@@ -134,14 +132,12 @@ module Neo4j
134
132
 
135
133
  # Same as #other_node but can return a none wrapped node
136
134
  def _other_node(node)
137
- s = _start_node
138
- e = _end_node
139
135
  if node == _start_node
140
- return _end_node
136
+ _end_node
141
137
  elsif node == _end_node
142
- return _start_node
138
+ _start_node
143
139
  else
144
- raise "Node #{node.inspect} is neither start nor end node"
140
+ fail "Node #{node.inspect} is neither start nor end node"
145
141
  end
146
142
  end
147
143
 
@@ -159,7 +155,6 @@ module Neo4j
159
155
  def _load(neo_id, session = Neo4j::Session.current)
160
156
  session.load_relationship(neo_id)
161
157
  end
162
-
163
158
  end
164
159
  end
165
- end
160
+ end
data/lib/neo4j/session.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  module Neo4j
2
2
  class Session
3
-
4
3
  @@current_session = nil
5
4
  @@all_sessions = {}
6
5
  @@factories = {}
@@ -13,24 +12,24 @@ module Neo4j
13
12
  # Only for embedded database
14
13
  # @abstract
15
14
  def start
16
- raise "not impl."
15
+ fail 'not impl.'
17
16
  end
18
17
 
19
18
  # Only for embedded database
20
19
  # @abstract
21
20
  def shutdown
22
- raise "not impl."
21
+ fail 'not impl.'
23
22
  end
24
23
 
25
24
  # Only for embedded database
26
25
  # @abstract
27
26
  def running
28
- raise "not impl."
27
+ fail 'not impl.'
29
28
  end
30
29
 
31
30
  # @return [:embedded_db | :server_db]
32
31
  def db_type
33
- raise "not impl."
32
+ fail 'not impl.'
34
33
  end
35
34
 
36
35
  def auto_commit?
@@ -39,7 +38,7 @@ module Neo4j
39
38
 
40
39
  # @abstract
41
40
  def begin_tx
42
- raise "not impl."
41
+ fail 'not impl.'
43
42
  end
44
43
 
45
44
  class CypherError < StandardError
@@ -67,14 +66,14 @@ module Neo4j
67
66
  # @see http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html The Cypher Query Language Documentation
68
67
  #
69
68
  def query(options = {})
70
- raise 'not implemented, abstract'
69
+ fail 'not implemented, abstract'
71
70
  end
72
71
 
73
72
  # Same as #query but does not accept an DSL and returns the raw result from the database.
74
73
  # Notice, it might return different values depending on which database is used, embedded or server.
75
74
  # @abstract
76
75
  def _query(*params)
77
- raise 'not implemented'
76
+ fail 'not implemented'
78
77
  end
79
78
 
80
79
  class << self
@@ -95,19 +94,19 @@ module Neo4j
95
94
  #
96
95
  # @see also Neo4j::Server::CypherSession#open for :server_db params
97
96
  # @param db_type the type of database, e.g. :embedded_db, or :server_db
98
- def open(db_type=:server_db, *params)
97
+ def open(db_type = :server_db, *params)
99
98
  register(create_session(db_type, params))
100
99
  end
101
100
 
102
101
  def open_named(db_type, name, default = nil, *params)
103
- raise "Multiple sessions is currently only supported for Neo4j Server connections." unless db_type == :server_db
102
+ fail 'Multiple sessions is currently only supported for Neo4j Server connections.' unless db_type == :server_db
104
103
  register(create_session(db_type, params), name, default)
105
104
  end
106
105
 
107
106
  # @private
108
107
  def create_session(db_type, params = {})
109
- unless (@@factories[db_type])
110
- raise "Can't connect to database '#{db_type}', available #{@@factories.keys.join(',')}"
108
+ unless @@factories[db_type]
109
+ fail "Can't connect to database '#{db_type}', available #{@@factories.keys.join(',')}"
111
110
  end
112
111
  @@factories[db_type].call(*params)
113
112
  end
@@ -119,7 +118,7 @@ module Neo4j
119
118
 
120
119
  # Returns the current session or raise an exception if no session is available
121
120
  def current!
122
- raise "No session, please create a session first with Neo4j::Session.open(:server_db) or :embedded_db" unless current
121
+ fail 'No session, please create a session first with Neo4j::Session.open(:server_db) or :embedded_db' unless current
123
122
  current
124
123
  end
125
124
 
@@ -130,7 +129,7 @@ module Neo4j
130
129
 
131
130
  # Returns a session with given name or else raise an exception
132
131
  def named(name)
133
- @@all_sessions[name] || raise("No session named #{name}.")
132
+ @@all_sessions[name] || fail("No session named #{name}.")
134
133
  end
135
134
 
136
135
  # Sets the session to be used as default
@@ -142,9 +141,8 @@ module Neo4j
142
141
  # Registers a callback which will be called immediately if session is already available,
143
142
  # or called when it later becomes available.
144
143
  def on_session_available(&callback)
145
- if (Neo4j::Session.current)
146
- callback.call(Neo4j::Session.current)
147
- end
144
+ callback.call(Neo4j::Session.current) if Neo4j::Session.current
145
+
148
146
  add_listener do |event, data|
149
147
  callback.call(data) if event == :session_available
150
148
  end
@@ -158,12 +156,12 @@ module Neo4j
158
156
  end
159
157
 
160
158
 
161
- "#{gem} gem/#{version} (https://github.com/neo4jrb/#{gem})"
159
+ "#{gem}-gem/#{version} (https://github.com/neo4jrb/#{gem})"
162
160
  end
163
161
 
164
162
  # @private
165
163
  def add_listener(&listener)
166
- self._listeners << listener
164
+ _listeners << listener
167
165
  end
168
166
 
169
167
  # @private
@@ -174,7 +172,7 @@ module Neo4j
174
172
 
175
173
  # @private
176
174
  def _notify_listeners(event, data)
177
- _listeners.each {|li| li.call(event, data)}
175
+ _listeners.each { |li| li.call(event, data) }
178
176
  end
179
177
 
180
178
  # @private
@@ -194,7 +192,7 @@ module Neo4j
194
192
  end
195
193
 
196
194
  def inspect
197
- "Neo4j::Session available: #{@@factories && @@factories.keys}"
195
+ "Neo4j::Session available: #{@@factories && @@factories.keys}"
198
196
  end
199
197
 
200
198
  # @private
@@ -1,7 +1,6 @@
1
1
  module Neo4j
2
2
  module Tasks
3
3
  module ConfigServer
4
-
5
4
  def config(source_text, port)
6
5
  s = set_property(source_text, 'org.neo4j.server.webserver.https.enabled', 'false')
7
6
  set_property(s, 'org.neo4j.server.webserver.port', port)
@@ -24,11 +23,11 @@ module Neo4j
24
23
  # @return [Hash] The response from the server indicating success/failure.
25
24
  def change_password(target_address, old_password, new_password)
26
25
  uri = URI.parse("#{target_address}/user/neo4j/password")
27
- response = Net::HTTP.post_form(uri, { 'password' => old_password, 'new_password' => new_password })
26
+ response = Net::HTTP.post_form(uri, 'password' => old_password, 'new_password' => new_password)
28
27
  JSON.parse(response.body)
29
28
  end
30
29
 
31
30
  extend self
32
31
  end
33
32
  end
34
- end
33
+ end
@@ -4,27 +4,27 @@ require 'os'
4
4
  require 'httparty'
5
5
  require 'zip'
6
6
  require 'httparty'
7
- require File.expand_path("../config_server", __FILE__)
7
+ require File.expand_path('../config_server', __FILE__)
8
8
 
9
9
  namespace :neo4j do
10
10
  def download_neo4j(file)
11
11
  file_name, download_url = if OS::Underlying.windows?
12
- ["neo4j.zip", "http://dist.neo4j.org/neo4j-#{file}-windows.zip"]
12
+ ['neo4j.zip', "http://dist.neo4j.org/neo4j-#{file}-windows.zip"]
13
13
  else
14
- ["neo4j-unix.tar.gz", "http://dist.neo4j.org/neo4j-#{file}-unix.tar.gz"]
14
+ ['neo4j-unix.tar.gz', "http://dist.neo4j.org/neo4j-#{file}-unix.tar.gz"]
15
15
  end
16
16
 
17
17
  unless File.exist?(file_name)
18
18
  # check if file is available
19
19
  status = HTTParty.head(download_url).code
20
- raise "#{file} is not available to download, try a different version" if status < 200 || status >= 300
20
+ fail "#{file} is not available to download, try a different version" if status < 200 || status >= 300
21
21
  df = File.open(file_name, 'wb')
22
22
  success = false
23
23
  begin
24
24
  df << HTTParty.get(download_url)
25
25
  success = true
26
26
  ensure
27
- df.close()
27
+ df.close
28
28
  File.delete(file_name) unless success
29
29
  end
30
30
  end
@@ -56,7 +56,7 @@ namespace :neo4j do
56
56
  end
57
57
 
58
58
  def install_location(args)
59
- FileUtils.mkdir_p("db/neo4j")
59
+ FileUtils.mkdir_p('db/neo4j')
60
60
  "db/neo4j/#{get_environment(args)}"
61
61
  end
62
62
 
@@ -64,7 +64,21 @@ namespace :neo4j do
64
64
  "#{install_location(args)}/conf/neo4j-server.properties"
65
65
  end
66
66
 
67
- desc "Install Neo4j with auth disabled in v2.2+, example neo4j:install[community-2.1.3,development]"
67
+ def start_server(command, args)
68
+ puts "Starting Neo4j #{get_environment(args)}..."
69
+ if OS::Underlying.windows?
70
+ if `reg query "HKU\\S-1-5-19"`.size > 0
71
+ `#{install_location(args)}/bin/Neo4j.bat #{command}` # start service
72
+ else
73
+ puts 'Starting Neo4j directly, not as a service.'
74
+ `#{install_location(args)}/bin/Neo4j.bat`
75
+ end
76
+ else
77
+ `#{install_location(args)}/bin/neo4j #{command}`
78
+ end
79
+ end
80
+
81
+ desc 'Install Neo4j with auth disabled in v2.2+, example neo4j:install[community-2.1.3,development]'
68
82
  task :install, :edition, :environment do |_, args|
69
83
  file = args[:edition]
70
84
  environment = get_environment(args)
@@ -77,110 +91,104 @@ namespace :neo4j do
77
91
  unless File.exist?(install_location(args))
78
92
  Zip::ZipFile.open(downloaded_file) do |zip_file|
79
93
  zip_file.each do |f|
80
- f_path = File.join(".", f.name)
81
- FileUtils.mkdir_p(File.dirname(f_path))
82
- begin
83
- zip_file.extract(f, f_path) unless File.exist?(f_path)
84
- rescue
85
- puts "#{f.name} failed to extract."
86
- end
94
+ f_path = File.join('.', f.name)
95
+ FileUtils.mkdir_p(File.dirname(f_path))
96
+ begin
97
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
98
+ rescue
99
+ puts "#{f.name} failed to extract."
100
+ end
87
101
  end
88
102
  end
89
103
  FileUtils.mv "neo4j-#{file}", install_location(args)
90
104
  FileUtils.rm downloaded_file
91
- end
105
+ end
92
106
 
93
107
  # Install if running with Admin Privileges
94
- if %x[reg query "HKU\\S-1-5-19"].size > 0
95
- %x["#{install_location(args)}/bin/neo4j install"]
96
- puts "Neo4j Installed as a service."
108
+ if `reg query "HKU\\S-1-5-19"`.size > 0
109
+ `"#{install_location(args)}/bin/neo4j install"`
110
+ puts 'Neo4j Installed as a service.'
97
111
  end
98
112
 
99
113
  else
100
- %x[tar -xvf #{downloaded_file}]
101
- %x[mv neo4j-#{file} #{install_location(args)}]
102
- %x[rm #{downloaded_file}]
103
- puts "Neo4j Installed in to neo4j directory."
114
+ `tar -xvf #{downloaded_file}`
115
+ `mv neo4j-#{file} #{install_location(args)}`
116
+ `rm #{downloaded_file}`
117
+ puts 'Neo4j Installed in to neo4j directory.'
104
118
  end
105
119
  rake_auth_toggle(args, :disable) unless /-2\.0|1\.[0-9]/.match(args[:edition])
106
120
  puts "Type 'rake neo4j:start' or 'rake neo4j:start[ENVIRONMENT]' to start it\nType 'neo4j:config[ENVIRONMENT,PORT]' for changing server port, (default 7474)"
107
121
  end
108
122
 
109
- desc "Start the Neo4j Server"
123
+ desc 'Start the Neo4j Server'
110
124
  task :start, :environment do |_, args|
111
- puts "Starting Neo4j #{get_environment(args)}..."
112
- if OS::Underlying.windows?
113
- if %x[reg query "HKU\\S-1-5-19"].size > 0
114
- %x[#{install_location(args)}/bin/Neo4j.bat start] #start service
115
- else
116
- puts "Starting Neo4j directly, not as a service."
117
- %x[#{install_location(args)}/bin/Neo4j.bat]
118
- end
119
- else
120
- %x[#{install_location(args)}/bin/neo4j start]
121
- end
125
+ start_server('start', args)
122
126
  end
123
127
 
124
- desc "Configure Server, e.g. rake neo4j:config[development,8888]"
125
- task :config, :environment, :port do |_, args|
128
+ desc 'Start the Neo4j Server asynchronously'
129
+ task :start_no_wait, :environment do |_, args|
130
+ start_server('start-no-wait', args)
131
+ end
126
132
 
133
+ desc 'Configure Server, e.g. rake neo4j:config[development,8888]'
134
+ task :config, :environment, :port do |_, args|
127
135
  port = args[:port]
128
- raise "no port given" unless port
136
+ fail 'no port given' unless port
129
137
  puts "Config Neo4j #{get_environment(args)} for port #{port}"
130
138
  location = config_location(args)
131
139
  text = File.read(location)
132
140
  replace = Neo4j::Tasks::ConfigServer.config(text, port)
133
- File.open(location, "w") {|file| file.puts replace}
141
+ File.open(location, 'w') { |file| file.puts replace }
134
142
  end
135
143
 
136
- desc "Stop the Neo4j Server"
144
+ desc 'Stop the Neo4j Server'
137
145
  task :stop, :environment do |_, args|
138
146
  puts "Stopping Neo4j #{get_environment(args)}..."
139
147
  if OS::Underlying.windows?
140
- if %x[reg query "HKU\\S-1-5-19"].size > 0
141
- %x[#{install_location(args)}/bin/Neo4j.bat stop] #stop service
148
+ if `reg query "HKU\\S-1-5-19"`.size > 0
149
+ `#{install_location(args)}/bin/Neo4j.bat stop` # stop service
142
150
  else
143
- puts "You do not have administrative rights to stop the Neo4j Service"
151
+ puts 'You do not have administrative rights to stop the Neo4j Service'
144
152
  end
145
153
  else
146
- %x[#{install_location(args)}/bin/neo4j stop]
154
+ `#{install_location(args)}/bin/neo4j stop`
147
155
  end
148
156
  end
149
157
 
150
- desc "Get info the Neo4j Server"
158
+ desc 'Get info the Neo4j Server'
151
159
  task :info, :environment do |_, args|
152
160
  puts "Info from Neo4j #{get_environment(args)}..."
153
161
  if OS::Underlying.windows?
154
- if %x[reg query "HKU\\S-1-5-19"].size > 0
155
- %x[#{install_location(args)}/bin/Neo4j.bat info] #stop service
162
+ if `reg query "HKU\\S-1-5-19"`.size > 0
163
+ `#{install_location(args)}/bin/Neo4j.bat info` # stop service
156
164
  else
157
- puts "You do not have administrative rights to get info from the Neo4j Service"
165
+ puts 'You do not have administrative rights to get info from the Neo4j Service'
158
166
  end
159
167
  else
160
- puts %x[#{install_location(args)}/bin/neo4j info]
168
+ puts `#{install_location(args)}/bin/neo4j info`
161
169
  end
162
170
  end
163
171
 
164
- desc "Restart the Neo4j Server"
172
+ desc 'Restart the Neo4j Server'
165
173
  task :restart, :environment do |_, args|
166
174
  puts "Restarting Neo4j #{get_environment(args)}..."
167
175
  if OS::Underlying.windows?
168
- if %x[reg query "HKU\\S-1-5-19"].size > 0
169
- %x[#{install_location(args)}/bin/Neo4j.bat restart]
176
+ if `reg query "HKU\\S-1-5-19"`.size > 0
177
+ `#{install_location(args)}/bin/Neo4j.bat restart`
170
178
  else
171
- puts "You do not have administrative rights to restart the Neo4j Service"
179
+ puts 'You do not have administrative rights to restart the Neo4j Service'
172
180
  end
173
181
  else
174
- %x[#{install_location(args)}/bin/neo4j restart]
182
+ `#{install_location(args)}/bin/neo4j restart`
175
183
  end
176
184
  end
177
185
 
178
- desc "Reset the Neo4j Server"
186
+ desc 'Reset the Neo4j Server'
179
187
  task :reset_yes_i_am_sure, :environment do |_, args|
180
188
  # Stop the server
181
189
  if OS::Underlying.windows?
182
- if %x[reg query "HKU\\S-1-5-19"].size > 0
183
- %x[#{install_location(args)}/bin/Neo4j.bat stop]
190
+ if `reg query "HKU\\S-1-5-19"`.size > 0
191
+ `#{install_location(args)}/bin/Neo4j.bat stop`
184
192
 
185
193
  # Reset the database
186
194
  FileUtils.rm_rf("#{install_location(args)}/data/graph.db")
@@ -190,12 +198,12 @@ namespace :neo4j do
190
198
  FileUtils.rm_rf("#{install_location(args)}/data/log")
191
199
  FileUtils.mkdir("#{install_location(args)}/data/log")
192
200
 
193
- %x[#{install_location(args)}/bin/Neo4j.bat start]
201
+ `#{install_location(args)}/bin/Neo4j.bat start`
194
202
  else
195
- puts "You do not have administrative rights to reset the Neo4j Service"
203
+ puts 'You do not have administrative rights to reset the Neo4j Service'
196
204
  end
197
205
  else
198
- %x[#{install_location(args)}/bin/neo4j stop]
206
+ `#{install_location(args)}/bin/neo4j stop`
199
207
 
200
208
  # Reset the database
201
209
  FileUtils.rm_rf("#{install_location(args)}/data/graph.db")
@@ -206,31 +214,31 @@ namespace :neo4j do
206
214
  FileUtils.mkdir("#{install_location(args)}/data/log")
207
215
 
208
216
  # Start the server
209
- %x[#{install_location(args)}/bin/neo4j start]
217
+ `#{install_location(args)}/bin/neo4j start`
210
218
  end
211
219
  end
212
220
 
213
- desc "Neo4j 2.2: Change connection password"
214
- task :change_password do |_, args|
215
- puts "This will change the password for a Neo4j server"
216
- puts "Enter target IP address or host name without protocal and port, press enter for http://localhost:7474"
221
+ desc 'Neo4j 2.2: Change connection password'
222
+ task :change_password do
223
+ puts 'This will change the password for a Neo4j server'
224
+ puts 'Enter target IP address or host name without protocal and port, press enter for http://localhost:7474'
217
225
  address = STDIN.gets.chomp
218
- target_address = address.empty? ? "http://localhost:7474" : address
226
+ target_address = address.empty? ? 'http://localhost:7474' : address
219
227
 
220
- puts "Input current password. Leave blank if this is a fresh installation of Neo4j."
228
+ puts 'Input current password. Leave blank if this is a fresh installation of Neo4j.'
221
229
  password = STDIN.gets.chomp
222
- old_password = password.empty? ? "neo4j" : password
230
+ old_password = password.empty? ? 'neo4j' : password
223
231
 
224
- puts "Input new password."
232
+ puts 'Input new password.'
225
233
  new_password = STDIN.gets.chomp
226
- raise 'A new password is required' if new_password.empty?
234
+ fail 'A new password is required' if new_password.empty?
227
235
 
228
236
  body = Neo4j::Tasks::ConfigServer.change_password(target_address, old_password, new_password)
229
237
  if body['errors']
230
238
  puts "An error was returned: #{body['errors'][0]['message']}"
231
239
  else
232
- puts "Password changed successfully! Please update your app to use:"
233
- puts "username: neo4j"
240
+ puts 'Password changed successfully! Please update your app to use:'
241
+ puts 'username: neo4j'
234
242
  puts "password: #{new_password}"
235
243
  end
236
244
  end
@@ -239,20 +247,20 @@ namespace :neo4j do
239
247
  location = config_location(args)
240
248
  text = File.read(location)
241
249
  replace = Neo4j::Tasks::ConfigServer.toggle_auth(status, text)
242
- File.open(location, "w") {|file| file.puts replace}
250
+ File.open(location, 'w') { |file| file.puts replace }
243
251
  end
244
252
 
245
253
  def auth_toggle_complete(status)
246
254
  puts "Neo4j basic authentication #{status}. Restart server to apply."
247
255
  end
248
256
 
249
- desc "Neo4j 2.2: Enable Auth"
257
+ desc 'Neo4j 2.2: Enable Auth'
250
258
  task :enable_auth, :environment do |_, args|
251
259
  rake_auth_toggle(args, :enable)
252
260
  auth_toggle_complete('enabled')
253
261
  end
254
262
 
255
- desc "Neo4j 2.2: Disable Auth"
263
+ desc 'Neo4j 2.2: Disable Auth'
256
264
  task :disable_auth, :environment do |_, args|
257
265
  rake_auth_toggle(args, :disable)
258
266
  auth_toggle_complete('disabled')