Skip to content

Commit 277be1a

Browse files
committed
Modernize gem.
1 parent 9b94ec1 commit 277be1a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+375
-370
lines changed

.github/workflows/test-coverage.yaml

+4-6
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,12 @@ jobs:
3535

3636
steps:
3737
- uses: actions/checkout@v4
38-
39-
- name: Install packages (Ubuntu)
40-
if: matrix.os == 'ubuntu'
41-
run: sudo apt-get install -y liburing-dev
42-
43-
- uses: ruby/setup-ruby@v1
38+
- uses: ruby/setup-ruby-pkgs@v1
4439
with:
4540
ruby-version: ${{matrix.ruby}}
4641
bundler-cache: true
4742
cache-version: io_uring
43+
apt-get: liburing-dev
4844

4945
- name: Run tests
5046
timeout-minutes: 5
@@ -54,6 +50,8 @@ jobs:
5450

5551
- uses: actions/upload-artifact@v4
5652
with:
53+
include-hidden-files: true
54+
if-no-files-found: error
5755
name: coverage-${{matrix.os}}-${{matrix.ruby}}-${{matrix.selector}}
5856
path: .covered.db
5957

.rubocop.yml

+4
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ Layout/EmptyLinesAroundModuleBody:
4747

4848
Style/FrozenStringLiteralComment:
4949
Enabled: true
50+
51+
Style/StringLiterals:
52+
Enabled: true
53+
EnforcedStyle: double_quotes

async.gemspec

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ Gem::Specification.new do |spec|
77
spec.version = Async::VERSION
88

99
spec.summary = "A concurrency framework for Ruby."
10-
spec.authors = ["Samuel Williams", "Bruno Sutic", "Jeremy Jung", "Olle Jonsson", "Devin Christensen", "Patrik Wenger", "Emil Tin", "Jamie McCarthy", "Kent Gruber", "Brian Morearty", "Colin Kelley", "Dimitar Peychinov", "Gert Goet", "Jiang Jinyang", "Julien Portalier", "Jun Jiang", "Ken Muryoi", "Leon Löchner", "Masafumi Okura", "Masayuki Yamamoto", "Math Ieu", "Ryan Musgrave", "Salim Semaoune", "Shannon Skipper", "Sokolov Yura", "Stefan Wrobel", "Trevor Turk"]
10+
spec.authors = ["Samuel Williams", "Bruno Sutic", "Jeremy Jung", "Olle Jonsson", "Patrik Wenger", "Devin Christensen", "Emil Tin", "Jamie McCarthy", "Kent Gruber", "Brian Morearty", "Colin Kelley", "Dimitar Peychinov", "Gert Goet", "Jiang Jinyang", "Julien Portalier", "Jun Jiang", "Ken Muryoi", "Leon Löchner", "Masafumi Okura", "Masayuki Yamamoto", "Math Ieu", "Ryan Musgrave", "Salim Semaoune", "Shannon Skipper", "Sokolov Yura", "Stefan Wrobel", "Trevor Turk"]
1111
spec.license = "MIT"
1212

13-
spec.cert_chain = ['release.cert']
14-
spec.signing_key = File.expand_path('~/.gem/release.pem')
13+
spec.cert_chain = ["release.cert"]
14+
spec.signing_key = File.expand_path("~/.gem/release.pem")
1515

1616
spec.homepage = "https://github.com/socketry/async"
1717

@@ -21,9 +21,9 @@ Gem::Specification.new do |spec|
2121
"source_code_uri" => "https://github.com/socketry/async.git",
2222
}
2323

24-
spec.files = Dir.glob(['{lib}/**/*', '*.md'], File::FNM_DOTMATCH, base: __dir__)
24+
spec.files = Dir.glob(["{lib}/**/*", "*.md"], File::FNM_DOTMATCH, base: __dir__)
2525

26-
spec.required_ruby_version = ">= 3.1.1"
26+
spec.required_ruby_version = ">= 3.1"
2727

2828
spec.add_dependency "console", "~> 1.26"
2929
spec.add_dependency "fiber-annotation"

bake.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
#
88
# @parameter version [String] The new version number.
99
def after_gem_release_version_increment(version)
10-
context['releases:update'].call(version)
11-
context['utopia:project:readme:update'].call
10+
context["releases:update"].call(version)
11+
context["utopia:project:readme:update"].call
1212
end

benchmark/async_vs_lightio.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2018-2022, by Samuel Williams.
5+
# Copyright, 2018-2024, by Samuel Williams.
66

7-
require 'async'
8-
require 'lightio'
7+
require "async"
8+
require "lightio"
99

10-
require 'benchmark/ips'
10+
require "benchmark/ips"
1111

1212
#
1313
# It's hard to know exactly how to interpret these results. When running parallel

benchmark/rubies/benchmark.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# Released under the MIT License.
55
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require 'socket'
8-
require 'fiber'
7+
require "socket"
8+
require "fiber"
99

1010
puts
1111
puts RUBY_DESCRIPTION

benchmark/thread_vs_fiber.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2019-2022, by Samuel Williams.
5+
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require 'benchmark/ips'
7+
require "benchmark/ips"
88

99
GC.disable
1010

benchmark/timers/after_0.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'benchmark/ips'
7+
require "benchmark/ips"
88

9-
require 'timers'
10-
require 'io/event/timers'
9+
require "timers"
10+
require "io/event/timers"
1111

1212
Benchmark.ips do |benchmark|
1313
benchmark.time = 1

benchmark/timers/after_cancel.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'benchmark/ips'
7+
require "benchmark/ips"
88

9-
require 'timers'
10-
require 'io/event/timers'
9+
require "timers"
10+
require "io/event/timers"
1111

1212
Benchmark.ips do |benchmark|
1313
benchmark.time = 1

benchmark/timers/after_n.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'benchmark/ips'
7+
require "benchmark/ips"
88

9-
require 'timers'
10-
require 'io/event/timers'
9+
require "timers"
10+
require "io/event/timers"
1111

1212
Benchmark.ips do |benchmark|
1313
benchmark.time = 1

config/sus.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2022-2023, by Samuel Williams.
4+
# Copyright, 2022-2024, by Samuel Williams.
55

6-
require 'covered/sus'
6+
require "covered/sus"
77
include Covered::Sus
88

9-
ENV['CONSOLE_LEVEL'] ||= 'fatal'
9+
ENV["CONSOLE_LEVEL"] ||= "fatal"

examples/buffer/buffer.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2021-2022, by Samuel Williams.
5+
# Copyright, 2021-2024, by Samuel Williams.
66

77
# abort "Need IO::Buffer" unless IO.const_defined?(:Buffer)
88

9-
require_relative '../../lib/async'
9+
require_relative "../../lib/async"
1010

1111
file = File.open("/dev/zero")
1212

examples/bugs/write_lock.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2023, by Samuel Williams.
5+
# Copyright, 2023-2024, by Samuel Williams.
66

77
# This bug only generally shows up on Linux, when using io_uring, as it has more fine-grained locking. The issue is that `puts` can acquire and release a write lock, and if one thread releases that lock while the reactor on the waitq thread is closing, it can call `unblock` with `@selector = nil` which fails or causes odd behaviour.
88

9-
require_relative '../../lib/async'
9+
require_relative "../../lib/async"
1010

1111
def wait_for_interrupt(thread_index, repeat)
1212
sequence = []

examples/callback/loop.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2018-2022, by Samuel Williams.
5+
# Copyright, 2018-2024, by Samuel Williams.
66

77
# frozen_string_literal: true
88

9-
require 'async/reactor'
9+
require "async/reactor"
1010

1111
class Callback
1212
def initialize

examples/capture/capture.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# Released under the MIT License.
55
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require 'irb'
8-
require 'console'
7+
require "irb"
8+
require "console"
99

1010
pids = ARGV.collect(&:to_i)
1111

@@ -60,7 +60,7 @@ def strace(pid, duration = 60)
6060
if first_line = input.gets
6161
if rule = input.gets # horizontal separator
6262
pattern = Regexp.new(
63-
rule.split(/\s/).map{|s| "(.{1,#{s.size}})"}.join(' ')
63+
rule.split(/\s/).map{|s| "(.{1,#{s.size}})"}.join(" ")
6464
)
6565

6666
header = pattern.match(first_line).captures.map{|key| key.strip.to_sym}

examples/count/fibers.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'async'
8-
require 'benchmark'
7+
require "async"
8+
require "benchmark"
99

1010
transitions = []
1111

examples/count/threads.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'benchmark'
7+
require "benchmark"
88

99
transitions = []
1010

examples/dataloader/dataloader.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2022-2023, by Samuel Williams.
4+
# Copyright, 2022-2024, by Samuel Williams.
55

6-
require 'net/http'
7-
require 'uri'
6+
require "net/http"
7+
require "uri"
88

99
class Dataloader
1010
def initialize

examples/dataloader/main.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2022-2023, by Samuel Williams.
5+
# Copyright, 2022-2024, by Samuel Williams.
66

7-
require 'async'
8-
require_relative 'dataloader'
7+
require "async"
8+
require_relative "dataloader"
99

1010
Async do
1111
dataloader = Dataloader.new

examples/debug/sample.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Released under the MIT License.
44
# Copyright, 2023-2024, by Samuel Williams.
55

6-
require 'async'
6+
require "async"
77

88
Async do |t|
99
t.async do

examples/dining-philosophers/philosophers.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require 'async'
8-
require 'async/semaphore'
7+
require "async"
8+
require "async/semaphore"
99

1010
class Philosopher
1111
def initialize(name, left_fork, right_fork)

examples/hup-test/child.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# Released under the MIT License.
55
# Copyright, 2023-2024, by Samuel Williams.
66

7-
require_relative '../../lib/async'
8-
require 'console'
7+
require_relative "../../lib/async"
8+
require "console"
99

1010
Async do |task|
1111
while true

examples/hup-test/main.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Released under the MIT License.
55
# Copyright, 2023-2024, by Samuel Williams.
66

7-
require 'console'
7+
require "console"
88

99
while true
1010
pid = Process.spawn("./child.rb")

examples/load/test.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
# Released under the MIT License.
55
# Copyright, 2024, by Samuel Williams.
66

7-
require_relative '../../lib/async'
8-
require_relative '../../lib/async/idler'
7+
require_relative "../../lib/async"
8+
require_relative "../../lib/async/idler"
99

1010
Async do
1111
idler = Async::Idler.new(0.8)
1212

1313
Async do
1414
while true
1515
idler.async do
16-
$stdout.write '.'
16+
$stdout.write "."
1717
while true
1818
sleep 0.1
1919
end

examples/queue/producer.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2019-2022, by Samuel Williams.
5+
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require 'async'
8-
require 'async/queue'
7+
require "async"
8+
require "async/queue"
99

1010
Async do
1111
# Queue of up to 10 items:

examples/stop/condition.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2019-2022, by Samuel Williams.
5+
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require_relative '../../lib/async'; require_relative '../../lib/async/queue'
7+
require_relative "../../lib/async"; require_relative "../../lib/async/queue"
88

99
Async do |consumer|
1010
consumer.annotate "consumer"

examples/stop/sleep.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
# frozen_string_literal: true
33

44
# Released under the MIT License.
5-
# Copyright, 2019-2022, by Samuel Williams.
5+
# Copyright, 2019-2024, by Samuel Williams.
66

7-
require_relative '../../lib/async'
7+
require_relative "../../lib/async"
88

9-
require 'async/http/endpoint'
10-
require 'async/http/server'
9+
require "async/http/endpoint"
10+
require "async/http/server"
1111

12-
require 'async/http/internet'
12+
require "async/http/internet"
1313

1414
# To query the web server:
1515
# curl http://localhost:9292/kittens

0 commit comments

Comments
 (0)