neo4j-core 3.1.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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')