neo4j-ruby-driver 0.1.1 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20187e624cb8b3b41c311fa3212d0464f326fd382b463a77c1943087667de719
4
- data.tar.gz: 14dd13179266b82ffdca7ca880580d533d7f703fc85693486d5368f5a2db76ed
3
+ metadata.gz: b0527e52f881e9d0a1d2a82bb6d44adada7187cf5ed0639897c95c6eeb414710
4
+ data.tar.gz: d1816823ed6760dfaafea61ecc2d30945535c322156059ac807dd15545a38088
5
5
  SHA512:
6
- metadata.gz: 601176c163751a2dfd9ccec38d6f266ba731533e142c138e7e77f5947dd4d27e4bc0c5ff63ec6db09070cf45fa5a590c1bed330dd8f4305a872577d40e804e46
7
- data.tar.gz: 1ba727e6f43f9933eda745a48dc0d334f90b9544bf17db9b9729f0e3ee7fa4d2beea7650e61e04ba95c1aed48819f176924de599a79d28e7188e1579b045963c
6
+ metadata.gz: a1484192cda413f3e35adaf9636f9c7db560eb3c34bb192903922b2c82bd16dd882bfb64465b5fd9f1f5f23c5c9bf55484c811777b816ed5fe0fd4a85459fb3b
7
+ data.tar.gz: e4311e81ab4bab518cc93afc71d0fccb04a51b12759eebe377c8690fd9557d8be4d0aa0a2c8ef97dcd5b939bbd06310655bce0042a750bac76bf02fd8c35c6f9
data/README.md CHANGED
@@ -1,16 +1,34 @@
1
1
  # Neo4j::Driver
2
2
 
3
- Proposal for an API for neo4j ruby driver. This gem contains reference implementation in jruby with most of the features
4
- completed.
5
- The proposed API is heavilly inspired but the java and javascipt driver. Please add comments and suggestions if you feel there
6
- is better idiomatic alternative in ruby.
3
+ home :: https://github.com/neo4jrb/neo4j-ruby-driver
7
4
 
8
- The file `doc/dev_manual_examples_spec.rb` contains all the code examples included in the
9
- [Chapter 4. Drivers][https://neo4j.com/docs/developer-manual/3.4/drivers/] of the Developer Manual and should be
10
- reviewed side by side with that manual.
5
+ This repository contains 2 implementation of a neo4j driver for ruby:
6
+ - `neo4j-java-driver` based on official java implementation. It provides a thin wrapper over java driver (only in jruby).
7
+ - `neo4j-ruby-driver` based on [seabolt](https://github.com/neo4j-drivers/seabolt) and [ffi](https://github.com/ffi/ffi). Available on all rubies (including jruby) and all platforms supported by seabolt.
11
8
 
12
9
  ## Installation
13
10
 
11
+ ### neo4j-java-driver
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ gem 'neo4j-java-driver'
17
+ ```
18
+
19
+ And then execute:
20
+
21
+ $ bundle
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install neo4j-java-driver
26
+
27
+ ### neo4j-ruby-driver
28
+
29
+ As a prerequisite [seabolt](https://github.com/neo4j-drivers/seabolt) must be installed. Please follow the instructions to install either from package or source.
30
+ Add `SEABOLT_LIB` environment variable with the location of the installed library.
31
+
14
32
  Add this line to your application's Gemfile:
15
33
 
16
34
  ```ruby
@@ -27,42 +45,33 @@ Or install it yourself as:
27
45
 
28
46
  ## Usage
29
47
 
30
- Refer to https://neo4j.com/docs/developer-manual/3.4/drivers/.
31
-
32
- ## Development
48
+ Both drivers implement identical API and can be used interchangeably. The API is to highest possible degree consistent with the official java driver.
49
+ At this moment [The Neo4j Drivers Manual v1.7](https://neo4j.com/docs/driver-manual/1.7/) along with the ruby version of the [code fragments](https://github.com/neo4jrb/neo4j-ruby-driver/blob/master/docs/dev_manual_examples.rb) and the ruby specs provide the only documentation.
33
50
 
34
- After checking out the repo, run `bin/setup` to install dependencies.
35
- In order to run test by running `rake spec` you may have to set your own `NEO4J_BOLT_URL` URI or it will
36
- fallback to `bolt://localhost:7687`.
37
- You can also run `bin/console` for an interactive prompt that will allow you to experiment.
51
+ [Neo4j Java Driver 1.7 API](https://neo4j.com/docs/api/java-driver/current/) can be helpful as well..
38
52
 
39
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
53
+ ## Development
40
54
 
41
55
  This gem includes 2 different implementations: java driver based and another one using seabolt via ffi
42
56
 
43
57
  For java driver based:
44
58
 
45
- $ rvm use jruby-9.2.5.0
46
- $ bundle
47
- $ rspec
59
+ $ bin/setup
48
60
 
49
- FFI based:
61
+ FFI based same as above but with SEABOLT_LIB variable set (e.g. on Mac OSX):
50
62
 
51
- $ rvm use 2.5.3 # or jruby-9.2.5.0
52
- $ SEABOLT_LIB=~/seabolt/build/dist/lib/libseabolt17.dylib bundle
53
- $ SEABOLT_LIB=~/seabolt/build/dist/lib/libseabolt17.dylib rspec
63
+ $ SEABOLT_LIB=~/seabolt/build/dist/lib/libseabolt17.dylib bin/setup
54
64
 
55
- Please note that seabolt for now has to be installed separately: https://github.com/neo4j-drivers/seabolt
65
+ Please note that seabolt has to be installed separately: https://github.com/neo4j-drivers/seabolt
66
+
67
+ In order to run test by running `rake spec` you may have to set your own `NEO4J_BOLT_URL` URI or it will
68
+ fallback to `bolt://localhost:7687`.
56
69
 
57
70
  ## Contributing
58
71
 
59
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/neo4j-driver.
72
+ Suggestions, improvements, bug reports and pull requests are welcome on GitHub at https://github.com/neo4jrb/neo4j-ruby-driver.
60
73
 
61
74
  ## License
62
75
 
63
76
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
64
77
 
65
-
66
- [https://neo4j.com/docs/developer-manual/3.4/drivers/]: https://neo4j.com/docs/developer-manual/3.4/drivers/
67
-
68
- [https://neo4j.com/docs/developer-manual/3.4/drivers/]: https://neo4j.com/docs/developer-manual/3.4/drivers/
@@ -29,7 +29,7 @@ module Bolt
29
29
  attach_function :format_as_string, :BoltValue_format_as_String, %i[pointer string int32], :void
30
30
  attach_function :format_as_dictionary, :BoltValue_format_as_Dictionary, %i[pointer int32], :void
31
31
  attach_function :format_as_list, :BoltValue_format_as_List, %i[pointer int32], :void
32
- attach_function :format_as_bytes, :BoltValue_format_as_Bytes, %i[pointer string int32], :void
32
+ attach_function :format_as_bytes, :BoltValue_format_as_Bytes, %i[pointer pointer int32], :void
33
33
  attach_function :format_as_structure, :BoltValue_format_as_Structure, %i[pointer int16 int32], :void
34
34
  end
35
35
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Workaround for missing zeitwerk support in jruby-9.2.7.0
3
+ # Workaround for missing zeitwerk support in jruby-9.2.8.0
4
4
  if RUBY_PLATFORM.match?(/java/)
5
5
  module Bolt
6
6
  end
@@ -42,4 +42,10 @@ require 'concurrent/atomic/atomic_reference'
42
42
  require 'ffi'
43
43
  require 'loader'
44
44
  require 'recursive-open-struct'
45
+
46
+ module Neo4j
47
+ module Driver
48
+ end
49
+ end
50
+
45
51
  Loader.load
@@ -65,7 +65,7 @@ module Neo4j
65
65
  end
66
66
 
67
67
  def last_bookmark
68
- Bolt::Connection.last_bookmark(bolt_connection).first
68
+ Bolt::Connection.last_bookmark(bolt_connection).first.force_encoding(Encoding::UTF_8)
69
69
  end
70
70
 
71
71
  private
@@ -25,7 +25,8 @@ module Neo4j
25
25
 
26
26
  def run(query, parameters = {})
27
27
  ensure_can_run_queries
28
- @protocol.run_in_explicit_transaction(@connection, Statement.new(query, parameters), self)
28
+ @result&.failure
29
+ @result = @protocol.run_in_explicit_transaction(@connection, Statement.new(query, parameters), self)
29
30
  end
30
31
 
31
32
  def success
@@ -56,9 +56,8 @@ module Neo4j
56
56
  @failure = nil
57
57
  end
58
58
 
59
- def failure
60
- # bolt_summary if connection.open?
61
- end
59
+ alias failure consume # it probably should be summary instead of consume to preserve the potentially yet
60
+ # unused result set
62
61
 
63
62
  def on_failure(error)
64
63
  @finished = true
@@ -6,7 +6,7 @@ module Neo4j
6
6
  module Handlers
7
7
  class ResponseHandler
8
8
  delegate :bolt_connection, to: :connection
9
- attr_reader :connection
9
+ attr_reader :connection, :failure
10
10
  attr_accessor :request, :previous
11
11
 
12
12
  def initialize(connection)
@@ -31,8 +31,9 @@ module Neo4j
31
31
  if Bolt::Connection.summary_success(bolt_connection) == 1
32
32
  after_success(nil)
33
33
  else
34
- failure = Value::ValueAdapter.to_ruby(Bolt::Connection.failure(bolt_connection))
35
- raise Exceptions::ClientException.new(failure[:code], failure[:message])
34
+ return if previous&.failure
35
+ @failure = Value::ValueAdapter.to_ruby(Bolt::Connection.failure(bolt_connection))
36
+ raise Exceptions::ClientException.new(@failure[:code], @failure[:message])
36
37
  end
37
38
  end
38
39
 
@@ -55,6 +55,7 @@ module Neo4j
55
55
  end
56
56
 
57
57
  def begin_transaction(mode = @mode, config = nil)
58
+ ensure_session_is_open
58
59
  ensure_no_open_tx_before_starting_tx
59
60
  acquire_connection(mode)
60
61
  @transaction = ExplicitTransaction.new(@connection, self).begin(bookmarks, config)
@@ -81,15 +82,16 @@ module Neo4j
81
82
  end
82
83
 
83
84
  def acquire_connection(mode = @mode)
85
+ # make sure previous result is fully consumed and connection is released back to the pool
84
86
  @result&.failure
87
+
88
+ # there is no unconsumed error, so one of the following is true:
89
+ # 1) this is first time connection is acquired in this session
90
+ # 2) previous result has been successful and is fully consumed
91
+ # 3) previous result failed and error has been consumed
92
+
85
93
  raise Exceptions::IllegalStateException, 'Existing open connection detected' if @connection&.open?
86
94
  @connection = @connection_provider.acquire_connection(@mode)
87
- # old
88
- # raise Exception, 'existing connection present' if @connection
89
- #
90
- # status = Bolt::Status.create
91
- # @connection = Bolt::Connector.acquire(@connector, mode, status)
92
- # check_status(status)
93
95
  end
94
96
 
95
97
  def close_transaction_and_release_connection
@@ -9,7 +9,7 @@ module Neo4j
9
9
  extend StructureValue
10
10
 
11
11
  def self.to_ruby_value(id, labels, properties)
12
- Types::Node.new(id, labels, properties)
12
+ Types::Node.new(id, labels.map(&:to_sym), properties)
13
13
  end
14
14
  end
15
15
  end
@@ -17,9 +17,9 @@ module Neo4j
17
17
  when :bolt_float
18
18
  Bolt::Float.get(value)
19
19
  when :bolt_bytes
20
- Types::ByteArray.from_bytes(Array.new(Bolt::Value.size(value)) { |i| Bolt::Bytes.get(value, i) })
20
+ Types::Bytes.new(Array.new(Bolt::Value.size(value)) { |i| Bolt::Bytes.get(value, i) }.pack('C*'))
21
21
  when :bolt_string
22
- Bolt::String.get(value).read_string(Bolt::Value.size(value))
22
+ Bolt::String.get(value).read_string(Bolt::Value.size(value)).force_encoding(Encoding::UTF_8)
23
23
  when :bolt_dictionary
24
24
  Array.new(Bolt::Value.size(value)) do |i|
25
25
  [to_ruby(Bolt::Dictionary.key(value, i)).to_sym, to_ruby(Bolt::Dictionary.value(value, i))]
@@ -45,13 +45,11 @@ module Neo4j
45
45
  Bolt::Value.format_as_integer(value, object)
46
46
  when Float
47
47
  Bolt::Value.format_as_float(value, object)
48
- when Types::ByteArray
48
+ when Types::Bytes
49
49
  Bolt::Value.format_as_bytes(value, object, object.size)
50
50
  when String
51
- Bolt::Value.format_as_string(value, object, object.size)
52
- when Array
53
- Bolt::Value.format_as_list(value, object.size)
54
- object.each_with_index { |elem, index| to_neo(Bolt::List.value(value, index), elem) }
51
+ object = object.encode(Encoding::UTF_8) unless object.encoding == Encoding::UTF_8
52
+ Bolt::Value.format_as_string(value, object, object.bytesize)
55
53
  when Hash
56
54
  Bolt::Value.format_as_dictionary(value, object.size)
57
55
  object.each_with_index do |(key, elem), index|
@@ -59,6 +57,12 @@ module Neo4j
59
57
  Bolt::Dictionary.set_key(value, index, key, key.size)
60
58
  to_neo(Bolt::Dictionary.value(value, index), elem)
61
59
  end
60
+ when Types::Path
61
+ Exceptions::ClientException.unable_to_convert(object)
62
+ when Enumerable
63
+ object = object.to_a
64
+ Bolt::Value.format_as_list(value, object.size)
65
+ object.each_with_index { |elem, index| to_neo(Bolt::List.value(value, index), elem) }
62
66
  when Date
63
67
  DateValue.to_neo(value, object)
64
68
  when ActiveSupport::Duration
@@ -83,7 +87,7 @@ module Neo4j
83
87
  when Time
84
88
  TimeWithZoneOffsetValue.to_neo(value, object)
85
89
  else
86
- raise Exception, 'unsupported ruby type'
90
+ Exceptions::ClientException.unable_to_convert(object)
87
91
  end
88
92
  value
89
93
  end
@@ -5,9 +5,10 @@ module Neo4j
5
5
  class Statement
6
6
  attr_reader :text, :parameters
7
7
 
8
- def initialize(text, parameters = {})
8
+ def initialize(text, parameters = nil)
9
+ Internal::StatementValidator.validate!(parameters)
9
10
  @text = text
10
- @parameters = parameters
11
+ @parameters = parameters || {}
11
12
  end
12
13
  end
13
14
  end
@@ -11,7 +11,7 @@ module Neo4j
11
11
  super(id, properties)
12
12
  @start_node_id = start_node_id
13
13
  @end_node_id = end_node_id
14
- @type = type
14
+ @type = type.to_sym
15
15
  end
16
16
  end
17
17
  end
@@ -4,6 +4,11 @@ module Neo4j
4
4
  module Driver
5
5
  module Exceptions
6
6
  class ClientException < Neo4jException
7
+ class << self
8
+ def unable_to_convert(object)
9
+ raise self, "Unable to convert #{object.class.name} to Neo4j Value."
10
+ end
11
+ end
7
12
  end
8
13
  end
9
14
  end
@@ -4,14 +4,19 @@ module Neo4j
4
4
  module Driver
5
5
  module Exceptions
6
6
  class Neo4jException < RuntimeError
7
- attr_reader :code, :cause
7
+ attr_reader :code, :cause, :suppressed
8
8
 
9
9
  def initialize(*args)
10
10
  @code = args.shift if args.count > 1
11
11
  message = args.shift
12
12
  @cause = args.shift
13
+ @suppressed = args.shift
13
14
  super(message)
14
15
  end
16
+
17
+ def add_suppressed(exception)
18
+ (@suppressed ||= []) << exception
19
+ end
15
20
  end
16
21
  end
17
22
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Neo4j
4
+ module Driver
5
+ module Internal
6
+ module StatementValidator
7
+ def self.validate!(parameters)
8
+ unless parameters.nil? || parameters.is_a?(Hash)
9
+ raise ArgumentError,
10
+ "The parameters should be provided as Map type. Unsupported parameters type: #{parameters.class.name}"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Neo4j
4
+ module Driver
5
+ module Types
6
+ class Bytes < String
7
+ end
8
+ end
9
+ end
10
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Neo4j
4
4
  module Driver
5
- VERSION = '0.1.1'
5
+ VERSION = '0.1.3'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,152 +1,214 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-ruby-driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heinrich Klobuczek
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-20 00:00:00.000000000 Z
11
+ date: 2019-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: ffi
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '0'
20
- type: :runtime
19
+ name: activesupport
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: recursive-open-struct
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
32
+ version: 2.1.10
33
+ name: zeitwerk
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 2.1.10
41
41
  - !ruby/object:Gem::Dependency
42
- name: activesupport
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: '0'
48
- type: :runtime
47
+ name: ffi
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: zeitwerk
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- type: :runtime
61
+ name: recursive-open-struct
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  version: '0'
76
- type: :development
75
+ name: ffaker
77
76
  prerelease: false
77
+ type: :development
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: neo4j-rake_tasks
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
88
87
  - !ruby/object:Gem::Version
89
88
  version: 0.3.0
90
- type: :development
89
+ name: neo4j-rake_tasks
91
90
  prerelease: false
91
+ type: :development
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.3.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: parallel
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - ">="
102
101
  - !ruby/object:Gem::Version
103
102
  version: '0'
104
- type: :development
103
+ name: parallel
105
104
  prerelease: false
105
+ type: :development
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '13'
112
117
  name: rake
118
+ prerelease: false
119
+ type: :development
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "<"
123
+ - !ruby/object:Gem::Version
124
+ version: '13'
125
+ - !ruby/object:Gem::Dependency
113
126
  requirement: !ruby/object:Gem::Requirement
114
127
  requirements:
115
128
  - - ">="
116
129
  - !ruby/object:Gem::Version
117
130
  version: '0'
131
+ name: rspec-its
132
+ prerelease: false
118
133
  type: :development
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ name: hoe
119
146
  prerelease: false
147
+ type: :development
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - ">="
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: rspec-its
127
154
  requirement: !ruby/object:Gem::Requirement
128
155
  requirements:
129
156
  - - ">="
130
157
  - !ruby/object:Gem::Version
131
158
  version: '0'
159
+ name: hoe-bundler
160
+ prerelease: false
132
161
  type: :development
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ name: hoe-gemspec
133
174
  prerelease: false
175
+ type: :development
134
176
  version_requirements: !ruby/object:Gem::Requirement
135
177
  requirements:
136
178
  - - ">="
137
179
  - !ruby/object:Gem::Version
138
180
  version: '0'
139
- description:
181
+ - !ruby/object:Gem::Dependency
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '4.0'
187
+ - - "<"
188
+ - !ruby/object:Gem::Version
189
+ version: '7'
190
+ name: rdoc
191
+ prerelease: false
192
+ type: :development
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '4.0'
198
+ - - "<"
199
+ - !ruby/object:Gem::Version
200
+ version: '7'
201
+ description: ''
140
202
  email:
141
203
  - heinrich@mail.com
142
204
  executables: []
143
205
  extensions: []
144
- extra_rdoc_files: []
206
+ extra_rdoc_files:
207
+ - LICENSE.txt
208
+ - README.md
145
209
  files:
146
- - Gemfile
147
210
  - LICENSE.txt
148
211
  - README.md
149
- - Rakefile
150
212
  - ffi/bolt/address.rb
151
213
  - ffi/bolt/auth.rb
152
214
  - ffi/bolt/auto_releasable.rb
@@ -235,7 +297,8 @@ files:
235
297
  - lib/neo4j/driver/exceptions/untrusted_server_exception.rb
236
298
  - lib/neo4j/driver/internal/duration_normalizer.rb
237
299
  - lib/neo4j/driver/internal/ruby_signature.rb
238
- - lib/neo4j/driver/types/byte_array.rb
300
+ - lib/neo4j/driver/internal/statement_validator.rb
301
+ - lib/neo4j/driver/types/bytes.rb
239
302
  - lib/neo4j/driver/types/local_date_time.rb
240
303
  - lib/neo4j/driver/types/local_time.rb
241
304
  - lib/neo4j/driver/types/offset_time.rb
@@ -243,16 +306,14 @@ files:
243
306
  - lib/neo4j/driver/types/time.rb
244
307
  - lib/neo4j/driver/version.rb
245
308
  - lib/neo4j_ruby_driver.rb
246
- - neo4j-ruby-driver.gemspec
247
309
  homepage: https://github.com/neo4jrb/neo4j-ruby-driver
248
310
  licenses:
249
311
  - MIT
250
- metadata:
251
- allowed_push_host: https://rubygems.org/
252
- homepage_uri: https://github.com/neo4jrb/neo4j-ruby-driver
253
- source_code_uri: https://github.com/neo4jrb/neo4j-ruby-driver
254
- post_install_message:
255
- rdoc_options: []
312
+ metadata: {}
313
+ post_install_message:
314
+ rdoc_options:
315
+ - "--main"
316
+ - README.md
256
317
  require_paths:
257
318
  - lib
258
319
  - ffi
@@ -267,8 +328,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
328
  - !ruby/object:Gem::Version
268
329
  version: '0'
269
330
  requirements: []
270
- rubygems_version: 3.0.4
271
- signing_key:
331
+ rubyforge_project:
332
+ rubygems_version: 2.7.9
333
+ signing_key:
272
334
  specification_version: 4
273
- summary: neo4j ruby driver
335
+ summary: ''
274
336
  test_files: []
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- # Specify your gem's dependencies in neo4j-driver.gemspec
8
- gemspec
data/Rakefile DELETED
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
- require 'neo4j/rake_tasks'
6
-
7
- if RUBY_PLATFORM.match?(/java/) && ENV['SEABOLT_LIB']&.length&.positive?
8
- require 'jars/installer'
9
- task :install_jars do
10
- Jars::Installer.vendor_jars!('jruby')
11
- end
12
- end
13
-
14
- RSpec::Core::RakeTask.new(:spec)
15
-
16
- task default: :spec
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Neo4j
4
- module Driver
5
- module Types
6
- class ByteArray < String
7
- def self.from_bytes(bytes)
8
- new(bytes.pack('C*'))
9
- end
10
-
11
- def to_bytes
12
- unpack('C*')
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'neo4j/driver/version'
6
-
7
- Gem::Specification.new do |spec|
8
- ffi = ENV['SEABOLT_LIB']&.length&.positive?
9
-
10
- spec.name = "neo4j-#{ffi ? :ruby : :java}-driver"
11
- spec.version = Neo4j::Driver::VERSION
12
- spec.authors = ['Heinrich Klobuczek']
13
- spec.email = ['heinrich@mail.com']
14
-
15
- spec.summary = 'neo4j ruby driver'
16
- spec.homepage = 'https://github.com/neo4jrb/neo4j-ruby-driver'
17
- spec.license = 'MIT'
18
-
19
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
20
- # to allow pushing to a single host or delete this section to allow pushing to any host.
21
- if spec.respond_to?(:metadata)
22
- spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
23
-
24
- spec.metadata['homepage_uri'] = spec.homepage
25
- spec.metadata['source_code_uri'] = 'https://github.com/neo4jrb/neo4j-ruby-driver'
26
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
27
- else
28
- raise 'RubyGems 2.0 or newer is required to protect against ' \
29
- 'public gem pushes.'
30
- end
31
-
32
- # Specify which files should be added to the gem when it is released.
33
- spec.files << Dir[*%w[neo4j-ruby-driver.gemspec Rakefile README.md LICENSE.txt Gemfile lib/neo4j_ruby_driver.rb lib/loader.rb]]
34
-
35
- pdir = ffi ? 'ffi' : 'jruby'
36
-
37
- spec.files << Dir['lib/neo4j/**/*.rb']
38
- spec.files << Dir["#{pdir}/**/*.rb"]
39
-
40
- spec.bindir = 'exe'
41
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
42
- spec.require_paths = ['lib', pdir]
43
-
44
- spec.platform = 'java' if RUBY_PLATFORM.match?(/java/)
45
-
46
- if ffi
47
- spec.add_runtime_dependency 'ffi'
48
- spec.add_runtime_dependency 'recursive-open-struct'
49
- else
50
- spec.add_runtime_dependency 'jar-dependencies'
51
- spec.requirements << 'jar org.neo4j.driver, neo4j-java-driver, 1.7.5'
52
- # avoids to install it on the fly when jar-dependencies needs it
53
- spec.add_development_dependency 'ruby-maven'
54
- end
55
-
56
- spec.add_runtime_dependency 'activesupport'
57
- spec.add_runtime_dependency 'zeitwerk'
58
- spec.add_development_dependency 'bundler'
59
- spec.add_development_dependency 'neo4j-rake_tasks', '>= 0.3.0'
60
- spec.add_development_dependency 'parallel'
61
- spec.add_development_dependency 'rake'
62
- spec.add_development_dependency 'rspec-its'
63
- end