xchan.rb 0.17.2 → 0.18.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ce716f918994e2481e8fbd333dbdb7e0b258341a09e32d464a54a2331edbd09
4
- data.tar.gz: f17d86bf4004ca1ebef87950ff9d20c7aaad29940e8c031ff84d817ade3adeb9
3
+ metadata.gz: 49c3ec314ad19f47d91dd30c854e94ad184fd70a0cb5ed7fd0139b506b295c6e
4
+ data.tar.gz: 1ba90eb765464330c3c6c35385c6ce6732f0bd95cd21e85be236576b7a0ba7c5
5
5
  SHA512:
6
- metadata.gz: c77e364ea0f6365d4fddae810cd14e999cf584dd301e5a651a5565d78fcce157909f0b96a155f67f8f22bb50f1c7d5c2535653e4871f2e5dab862c1e38f207f3
7
- data.tar.gz: a4f2d57cf1843407d7056c4528d7e41372ed84378e33f6ca2777b6b2dde93b80fe5e57d33d2b01337a089d808b11e3e6d92c91b4f57f86aeefc4a3e4782c6afa
6
+ metadata.gz: d29f66b50713d1277b25ad2900bbcd5a99ac1589a921e0b0a8ccd2028e534204ffc8a382b68f3ba48947aa2be8fda90843adda2fbdf133db3cf9fb230f2a5873
7
+ data.tar.gz: 218b603663b0cac0af9c6780e942c74decb096045e9a7eef14daf5c6644286bd2ee8e1969445260952425bfad08b4bd2fb588a6a1d1f3be0b45d0913337575b5
@@ -12,7 +12,7 @@ jobs:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  os: [ubuntu-latest, macos-latest]
15
- ruby: [3.1, 3.2, 3.3]
15
+ ruby: [3.2, 3.3]
16
16
  runs-on: ${{ matrix.os }}
17
17
  steps:
18
18
  - uses: actions/checkout@v2
@@ -20,7 +20,7 @@ jobs:
20
20
  with:
21
21
  ruby-version: ${{ matrix.ruby }}
22
22
  - run: bundle install
23
- - run: SERIALIZER=marshal bundle exec rake
24
- - run: SERIALIZER=json bundle exec rake
25
- - run: SERIALIZER=yaml bundle exec rake
26
- - run: SERIALIZER=pure bundle exec rake
23
+ - run: SERIALIZER=marshal; for t in *_test.rb; do ruby test/${t}; done
24
+ - run: SERIALIZER=json; for t in *_test.rb; do ruby test/${t}; done
25
+ - run: SERIALIZER=yaml; for t in *_test.rb; do ruby test/${t}; done
26
+ - run: SERIALIZER=pure; for t in *_test.rb; do ruby test/${t}; done
data/.projectile CHANGED
@@ -1,4 +1,5 @@
1
- +.
1
+ +/
2
+ +/.github/
2
3
  -/doc/
3
4
  -/.yardoc/
4
5
  -/.gems/
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  xchan.rb is an easy to use library for InterProcess
4
4
  Communication (IPC). The library provides a channel
5
- that can transfer Ruby objects between Ruby processes
6
- with a parent <-> child relationship.
5
+ that can help facilitate communication between Ruby
6
+ processes who have a parent &lt;=&gt; child relationship.
7
7
 
8
8
  ## Examples
9
9
 
@@ -11,30 +11,25 @@ with a parent <-> child relationship.
11
11
 
12
12
  #### Options
13
13
 
14
- The first argument given to xchan is the serializer
15
- that it should use. A channel that will communicate
16
- in pure strings (ie with no serialization) is
17
- available as `xchan(:pure)`.
18
-
19
- Otherwise, when a channel is written to or read from,
20
- a Ruby object is serialized (on write) or deserialized
21
- (on read). The serializers available to choose from
22
- are `xchan(:marshal)`, `xchan(:json)`, and `xchan(:yaml)`.
23
- The example uses
24
- [`Marshal`](https://www.rubydoc.info/stdlib/core/Marshal):
14
+ The first argument provided to xchan is the serializer
15
+ that should be used. A channel that will communicate
16
+ purely in strings (in other words: without serialization)
17
+ is available as `xchan(:pure)` - otherwise a wide range of
18
+ serializers are available by default: `xchan(:marshal)`,
19
+ `xchan(:json)`, and `xchan(:yaml)`.
25
20
 
26
21
  ```ruby
27
22
  require "xchan"
28
23
 
29
24
  ##
30
- # This channel uses Marshal to serialize objects
25
+ # Marshal as the serializer
31
26
  ch = xchan(:marshal)
32
27
  Process.wait fork { ch.send(5) }
33
- print "There are ", ch.recv + 7, " disciples and the same number of tribes", "\n"
28
+ print "#{ch.recv} + 7 = 12", "\n"
34
29
  ch.close
35
30
 
36
31
  ##
37
- # There are 12 disciples and the same number of tribes
32
+ # 5 + 7 = 12
38
33
  ```
39
34
 
40
35
  ### Read operations
@@ -184,7 +179,7 @@ print "The maximum size of a single message is: ", sndbuf.int, " bytes.\n"
184
179
  ## Documentation
185
180
 
186
181
  A complete API reference is available at
187
- [0x1eef.github.io/x/xchan.rb](https://0x1eef.github.io/x/xchan.rb/).
182
+ [0x1eef.github.io/x/xchan.rb](https://0x1eef.github.io/x/xchan.rb/)
188
183
 
189
184
  ## Install
190
185
 
@@ -194,11 +189,11 @@ xchan.rb can be installed via rubygems.org:
194
189
 
195
190
  ## Sources
196
191
 
197
- * [Source code (GitHub)](https://github.com/0x1eef/xchan.rb#readme)
198
- * [Source code (GitLab)](https://gitlab.com/0x1eef/xchan.rb#about)
192
+ * [GitHub](https://github.com/0x1eef/xchan.rb#readme)
193
+ * [GitLab](https://gitlab.com/0x1eef/xchan.rb#about)
199
194
 
200
- ## <a id="license"> License </a>
195
+ ## License
201
196
 
202
- [BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
197
+ [BSD Zero Clause](https://choosealicense.com/licenses/0bsd/)
203
198
  <br>
204
- See [LICENSE](./LICENSE).
199
+ See [LICENSE](./LICENSE)
data/lib/xchan/bytes.rb CHANGED
@@ -95,6 +95,6 @@ class Chan::Bytes
95
95
  end
96
96
 
97
97
  def deserialize(bytes)
98
- JSON.load(bytes)
98
+ JSON.parse(bytes)
99
99
  end
100
100
  end
data/lib/xchan/counter.rb CHANGED
@@ -57,6 +57,6 @@ class Chan::Counter
57
57
  end
58
58
 
59
59
  def deserialize(bytes)
60
- JSON.load(bytes)
60
+ JSON.parse(bytes)
61
61
  end
62
62
  end
@@ -1,5 +1,7 @@
1
- require 'delegate'
2
- require 'tmpdir'
1
+ # frozen_string_literal: true
2
+
3
+ require "delegate"
4
+ require "tmpdir"
3
5
 
4
6
  ##
5
7
  # @private
@@ -63,12 +65,12 @@ class Chan::Tempfile < DelegateClass(File)
63
65
  #
64
66
  # Related: Tempfile.create.
65
67
  #
66
- def initialize(basename="", tmpdir=nil, mode: 0, perm: 0600, **options)
68
+ def initialize(basename = "", tmpdir = nil, mode: 0, perm: 0o600, **kwargs)
67
69
  warn "Tempfile.new doesn't call the given block.", uplevel: 1 if block_given?
68
70
 
69
71
  @unlinked = false
70
- @mode = mode|File::RDWR|File::CREAT|File::EXCL
71
- ::Dir::Tmpname.create(basename, tmpdir, **options) do |tmpname, n, opts|
72
+ @mode = mode | File::RDWR | File::CREAT | File::EXCL
73
+ ::Dir::Tmpname.create(basename, tmpdir, **kwargs) do |tmpname, n, opts|
72
74
  @tmpfile = File.open(tmpname, @mode, perm, **opts)
73
75
  @perm = perm
74
76
  @opts = opts.freeze
@@ -81,7 +83,7 @@ class Chan::Tempfile < DelegateClass(File)
81
83
  # Opens or reopens the file with mode "r+".
82
84
  def open
83
85
  _close
84
- mode = @mode & ~(File::CREAT|File::EXCL)
86
+ mode = @mode & ~(File::CREAT | File::EXCL)
85
87
  @tmpfile = File.open(@tmpfile.path, mode, **@opts)
86
88
  __setobj__(@tmpfile)
87
89
  end
@@ -97,7 +99,7 @@ class Chan::Tempfile < DelegateClass(File)
97
99
  #
98
100
  # If you don't explicitly unlink the temporary file, the removal
99
101
  # will be delayed until the object is finalized.
100
- def close(unlink_now=false)
102
+ def close(unlink_now = false)
101
103
  _close
102
104
  unlink if unlink_now
103
105
  end
@@ -153,7 +155,7 @@ class Chan::Tempfile < DelegateClass(File)
153
155
  ObjectSpace.undefine_finalizer(self)
154
156
  @unlinked = true
155
157
  end
156
- alias delete unlink
158
+ alias_method :delete, :unlink
157
159
 
158
160
  # Returns the full path name of the temporary file.
159
161
  # This will be nil if #unlink has been called.
@@ -170,7 +172,7 @@ class Chan::Tempfile < DelegateClass(File)
170
172
  File.size(@tmpfile.path)
171
173
  end
172
174
  end
173
- alias length size
175
+ alias_method :length, :size
174
176
 
175
177
  # :stopdoc:
176
178
  def inspect
@@ -190,7 +192,7 @@ class Chan::Tempfile < DelegateClass(File)
190
192
  def call(*args)
191
193
  return if @pid != Process.pid
192
194
 
193
- $stderr.puts "removing #{@tmpfile.path}..." if $DEBUG
195
+ warn "removing #{@tmpfile.path}..." if $DEBUG
194
196
 
195
197
  @tmpfile.close
196
198
  begin
@@ -198,7 +200,7 @@ class Chan::Tempfile < DelegateClass(File)
198
200
  rescue Errno::ENOENT
199
201
  end
200
202
 
201
- $stderr.puts "done" if $DEBUG
203
+ warn "done" if $DEBUG
202
204
  end
203
205
  end
204
206
 
@@ -240,8 +242,8 @@ class Chan::Tempfile < DelegateClass(File)
240
242
  # ensure
241
243
  # f.close
242
244
  # end
243
- def self.open(*args, **kw)
244
- tempfile = new(*args, **kw)
245
+ def self.open(*args, **kwargs)
246
+ tempfile = new(*args, **kwargs)
245
247
 
246
248
  if block_given?
247
249
  begin
@@ -313,10 +315,10 @@ module Chan
313
315
  #
314
316
  # Related: Tempfile.new.
315
317
  #
316
- def Tempfile.create(basename="", tmpdir=nil, mode: 0, perm: 0600, **options)
318
+ def Tempfile.create(basename = "", tmpdir = nil, mode: 0, perm: 0o600, **kwargs)
317
319
  tmpfile = nil
318
- Dir::Tmpname.create(basename, tmpdir, **options) do |tmpname, n, opts|
319
- mode |= File::RDWR|File::CREAT|File::EXCL
320
+ Dir::Tmpname.create(basename, tmpdir, **kwargs) do |tmpname, n, opts|
321
+ mode |= File::RDWR | File::CREAT | File::EXCL
320
322
  tmpfile = File.open(tmpname, mode, perm, **opts)
321
323
  end
322
324
  if block_given?
@@ -325,7 +327,11 @@ module Chan
325
327
  ensure
326
328
  unless tmpfile.closed?
327
329
  if File.identical?(tmpfile, tmpfile.path)
328
- unlinked = File.unlink tmpfile.path rescue nil
330
+ unlinked = begin
331
+ File.unlink tmpfile.path
332
+ rescue
333
+ nil
334
+ end
329
335
  end
330
336
  tmpfile.close
331
337
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  ##
4
- # An easy-to-use InterProcess Communication (IPC) library.
4
+ # An easy-to-use InterProcess Communication (IPC) library
5
5
  class Chan::UNIXSocket
6
6
  require "socket"
7
7
  require "lockf"
@@ -42,11 +42,11 @@ class Chan::UNIXSocket
42
42
  # @return [Chan::UNIXSocket]
43
43
  # Returns an instance of {Chan::UNIXSocket Chan::UNIXSocket}
44
44
  def initialize(s, sock_type: Socket::SOCK_DGRAM, tmpdir: Dir.tmpdir)
45
- @s = Chan.shortcuts[s]&.call || s
45
+ @s = Chan.serializers[s]&.call || s
46
46
  @r, @w = ::UNIXSocket.pair(sock_type)
47
47
  @bytes = Chan::Bytes.new(tmpdir)
48
48
  @counter = Chan::Counter.new(tmpdir)
49
- @lock = LockFile.new Chan.temporary_file(%w[xchan .lock], tmpdir:)
49
+ @lockf = Lock::File.new Chan.temporary_file(%w[xchan .lock], tmpdir:)
50
50
  end
51
51
 
52
52
  ##
@@ -64,11 +64,11 @@ class Chan::UNIXSocket
64
64
  #
65
65
  # @return [void]
66
66
  def close
67
- @lock.lock
67
+ @lockf.lock
68
68
  raise IOError, "channel is closed" if closed?
69
- [@r, @w, @bytes, @lock.file].each(&:close)
69
+ [@r, @w, @bytes, @lockf].each(&:close)
70
70
  rescue IOError => ex
71
- @lock.release
71
+ @lockf.release
72
72
  raise(ex)
73
73
  end
74
74
 
@@ -111,14 +111,14 @@ class Chan::UNIXSocket
111
111
  # @return [Integer, nil]
112
112
  # Returns the number of bytes written to the channel
113
113
  def send_nonblock(object)
114
- @lock.lock_nonblock
114
+ @lockf.lock_nonblock
115
115
  raise IOError, "channel closed" if closed?
116
116
  len = @w.write_nonblock(serialize(object))
117
117
  @bytes.push(len)
118
118
  @counter.increment!(bytes_written: len)
119
- len.tap { @lock.release }
119
+ len.tap { @lockf.release }
120
120
  rescue IOError, IO::WaitWritable, Errno::ENOBUFS => ex
121
- @lock.release
121
+ @lockf.release
122
122
  raise Chan::WaitWritable, ex.message
123
123
  rescue Errno::EWOULDBLOCK => ex
124
124
  raise Chan::WaitLockable, ex.message
@@ -164,18 +164,18 @@ class Chan::UNIXSocket
164
164
  # @return [Object]
165
165
  # Returns an object from the channel
166
166
  def recv_nonblock
167
- @lock.lock_nonblock
167
+ @lockf.lock_nonblock
168
168
  raise IOError, "closed channel" if closed?
169
169
  len = @bytes.shift
170
170
  obj = deserialize(@r.read_nonblock(len.zero? ? 1 : len))
171
171
  @counter.increment!(bytes_read: len)
172
- obj.tap { @lock.release }
172
+ obj.tap { @lockf.release }
173
173
  rescue IOError => ex
174
- @lock.release
174
+ @lockf.release
175
175
  raise(ex)
176
176
  rescue IO::WaitReadable => ex
177
177
  @bytes.unshift(len)
178
- @lock.release
178
+ @lockf.release
179
179
  raise Chan::WaitReadable, ex.message
180
180
  rescue Errno::EAGAIN => ex
181
181
  raise Chan::WaitLockable, ex.message
@@ -187,9 +187,9 @@ class Chan::UNIXSocket
187
187
 
188
188
  ##
189
189
  # @example
190
- # ch = xchan
190
+ # ch = xchan(:pure)
191
191
  # 1.upto(4) { ch.send(_1) }
192
- # ch.to_a.last # => 4
192
+ # ch.to_a.last # => "4"
193
193
  #
194
194
  # @return [Array<Object>]
195
195
  # Returns the contents of the channel
@@ -269,10 +269,10 @@ class Chan::UNIXSocket
269
269
  private
270
270
 
271
271
  def lock
272
- @lock.lock
272
+ @lockf.lock
273
273
  yield
274
274
  ensure
275
- @lock.release
275
+ @lockf.release
276
276
  end
277
277
 
278
278
  def serialize(obj)
data/lib/xchan/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chan
4
- VERSION = "0.17.2"
4
+ VERSION = "0.18.0"
5
5
  end
data/lib/xchan.rb CHANGED
@@ -10,17 +10,14 @@ module Chan
10
10
  WaitLockable = Class.new(Errno::EWOULDBLOCK)
11
11
 
12
12
  ##
13
- # The Pure serializer won't perform
14
- # serialization that goes beyond calling
15
- # `.to_s` on the object it is given. It
16
- # can be useful when you want to communicate
17
- # purely in strings.
13
+ # Coerces an object to a string for a
14
+ # channel communicating in raw strings
15
+ # (in other words: without serialization)
18
16
  #
19
17
  # @example
20
18
  # ch = xchan(:pure)
21
- # Process.wait fork {
22
- # ch.send "Hello world"
23
- # }
19
+ # fork { ch.send "Hello world" }
20
+ # Process.wait
24
21
  # puts ch.recv
25
22
  Pure = Class.new do
26
23
  def self.dump(str) = str.to_s
@@ -47,8 +44,8 @@ module Chan
47
44
 
48
45
  ##
49
46
  # @return [Hash<Symbol, Proc>]
50
- # Maps a short name to a serializer
51
- def self.shortcuts
47
+ # Returns the default serializers
48
+ def self.serializers
52
49
  {
53
50
  pure: lambda { Pure },
54
51
  marshal: lambda { Marshal },
@@ -76,7 +73,7 @@ module Kernel
76
73
  # @param sock_type (see Chan::UNIXSocket#initialize)
77
74
  # @param tmpdir (see Chan::UNIXSocket#initialize)
78
75
  # @return (see Chan::UNIXSocket#initialize)
79
- def xchan(s, **kw_args)
80
- Chan::UNIXSocket.new(s, **kw_args)
76
+ def xchan(s, ...)
77
+ Chan::UNIXSocket.new(s, ...)
81
78
  end
82
79
  end
@@ -2,13 +2,14 @@
2
2
 
3
3
  require_relative "../setup"
4
4
  require "xchan"
5
+ require "xchan"
5
6
 
6
7
  ##
7
- # This channel uses Marshal to serialize objects
8
+ # Marshal as the serializer
8
9
  ch = xchan(:marshal)
9
10
  Process.wait fork { ch.send(5) }
10
- print "There are ", ch.recv + 7, " disciples and the same number of tribes", "\n"
11
+ print "#{ch.recv} + 7 = 12", "\n"
11
12
  ch.close
12
13
 
13
14
  ##
14
- # There are 12 disciples and the same number of tribes
15
+ # 5 + 7 = 12
data/test/readme_test.rb CHANGED
@@ -1,42 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "setup"
4
- require "test/cmd"
4
+ require "test-cmd"
5
5
 
6
6
  class Chan::ReadmeTest < Test::Unit::TestCase
7
7
  def test_serialization_1_serializers
8
- assert_equal "There are 12 disciples and the same number of tribes\n",
9
- readme_example("serialization/1_serializers.rb").stdout
8
+ assert_equal "5 + 7 = 12\n",
9
+ cmd("ruby", readme_example("serialization/1_serializers.rb")).stdout
10
10
  end
11
11
 
12
12
  def test_read_operations_1_blocking_read
13
13
  r = 'Send a random number \(from parent process\)\s*' \
14
14
  'Received random number \(child process\): \d+'
15
15
  assert_match Regexp.new(r),
16
- readme_example("read_operations/1_blocking_read.rb").stdout
17
- .tr("\n", " ")
16
+ cmd("ruby", readme_example("read_operations/1_blocking_read.rb"))
17
+ .stdout
18
+ .tr("\n", " ")
18
19
  end
19
20
 
20
21
  def test_write_operations_2_non_blocking_write
21
22
  assert_equal ["Blocked - free send buffer\n"],
22
- readme_example("write_operations/2_nonblocking_write.rb").stdout
23
- .each_line
24
- .uniq
23
+ cmd("ruby", readme_example("write_operations/2_nonblocking_write.rb"))
24
+ .stdout
25
+ .each_line
26
+ .uniq
25
27
  end
26
28
 
27
29
  def test_socket_2_options
28
30
  r = 'The read buffer can contain a maximum of: \d{1,6} bytes.\s*' \
29
31
  'The maximum size of a single message is: \d{1,6} bytes.\s*'
30
32
  assert_match Regexp.new(r),
31
- readme_example("socket/2_options.rb").stdout
32
- .tr("\n", " ")
33
+ cmd("ruby", readme_example("socket/2_options.rb"))
34
+ .stdout
35
+ .tr("\n", " ")
33
36
  end
34
37
 
35
38
  private
36
39
 
37
40
  def readme_example(path)
38
- examples_dir = File.join(Dir.getwd, "share", "xchan.rb", "examples")
39
- example = File.join(examples_dir, path)
40
- cmd "bundle exec ruby #{example}"
41
+ dir = File.join(Dir.getwd, "share", "xchan.rb", "examples")
42
+ File.join(dir, path)
41
43
  end
42
44
  end
data/test/setup.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bundler/setup"
3
4
  require "json"
4
5
  require "yaml"
5
6
  require "timeout"
data/test/xchan_test.rb CHANGED
@@ -84,7 +84,7 @@ class Chan::RecvNonBlockTest < Chan::Test
84
84
  end
85
85
 
86
86
  def test_recv_nonblock_with_a_lock
87
- ch.instance_variable_get(:@lock).lock
87
+ ch.instance_variable_get(:@lockf).lock
88
88
  pid = fork do
89
89
  ch.recv_nonblock
90
90
  exit(1)
@@ -205,7 +205,7 @@ class Chan::TemporaryFileTest < Chan::Test
205
205
  end
206
206
 
207
207
  def test_temporary_file_path
208
- assert_match %r|#{Regexp.escape(Dir.tmpdir)}/foobar[a-zA-Z0-9-]+\.txt|,
208
+ assert_match %r{#{Regexp.escape(Dir.tmpdir)}/foobar[a-zA-Z0-9-]+\.txt},
209
209
  file.to_path
210
210
  ensure
211
211
  file.close
data/xchan.rb.gemspec CHANGED
@@ -12,11 +12,11 @@ Gem::Specification.new do |gem|
12
12
  gem.require_paths = ["lib"]
13
13
  gem.summary = "An easy to use InterProcess Communication (IPC) library"
14
14
  gem.description = gem.summary
15
- gem.add_runtime_dependency "lockf.rb", "~> 1.0"
15
+ gem.add_runtime_dependency "lockf.rb", "~> 2.1"
16
16
  gem.add_development_dependency "test-unit", "~> 3.5.7"
17
17
  gem.add_development_dependency "yard", "~> 0.9"
18
18
  gem.add_development_dependency "redcarpet", "~> 3.5"
19
19
  gem.add_development_dependency "standard", "~> 1.13"
20
- gem.add_development_dependency "test-cmd.rb", "~> 0.8"
20
+ gem.add_development_dependency "test-cmd.rb", "~> 0.12.4"
21
21
  gem.add_development_dependency "rake", "~> 13.1"
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xchan.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.2
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-11 00:00:00.000000000 Z
11
+ date: 2024-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lockf.rb
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '2.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: test-unit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.8'
89
+ version: 0.12.4
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.8'
96
+ version: 0.12.4
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +117,6 @@ extra_rdoc_files: []
117
117
  files:
118
118
  - ".github/workflows/tests.yml"
119
119
  - ".gitignore"
120
- - ".gitlab-ci.yml"
121
120
  - ".projectile"
122
121
  - ".rubocop.yml"
123
122
  - ".yardopts"
@@ -162,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
161
  - !ruby/object:Gem::Version
163
162
  version: '0'
164
163
  requirements: []
165
- rubygems_version: 3.5.9
164
+ rubygems_version: 3.5.11
166
165
  signing_key:
167
166
  specification_version: 4
168
167
  summary: An easy to use InterProcess Communication (IPC) library
data/.gitlab-ci.yml DELETED
@@ -1,12 +0,0 @@
1
- stages:
2
- - test
3
-
4
- test-ruby32:
5
- stage: test
6
- image: ruby:3.2.0
7
- script:
8
- - bundle install
9
- - SERIALIZER=marshal bundle exec rake
10
- - SERIALIZER=json bundle exec rake
11
- - SERIALIZER=yaml bundle exec rake
12
- - SERIALIZER=pure bundle exec rake