ori-rb 0.4

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 (84) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +8 -0
  3. data/.ruby-version +1 -0
  4. data/LICENSE +9 -0
  5. data/README.md +444 -0
  6. data/Rakefile +17 -0
  7. data/docs/images/example_boundary.png +0 -0
  8. data/docs/images/example_boundary_cancellation.png +0 -0
  9. data/docs/images/example_channel.png +0 -0
  10. data/docs/images/example_mutex.png +0 -0
  11. data/docs/images/example_promise.png +0 -0
  12. data/docs/images/example_semaphore.png +0 -0
  13. data/docs/images/example_trace.png +0 -0
  14. data/docs/images/example_trace_tag.png +0 -0
  15. data/lib/ori/channel.rb +148 -0
  16. data/lib/ori/lazy.rb +163 -0
  17. data/lib/ori/mutex.rb +9 -0
  18. data/lib/ori/out/index.html +146 -0
  19. data/lib/ori/out/script.js +3 -0
  20. data/lib/ori/promise.rb +39 -0
  21. data/lib/ori/reentrant_semaphore.rb +68 -0
  22. data/lib/ori/scope.rb +620 -0
  23. data/lib/ori/select.rb +35 -0
  24. data/lib/ori/selectable.rb +9 -0
  25. data/lib/ori/semaphore.rb +49 -0
  26. data/lib/ori/task.rb +78 -0
  27. data/lib/ori/timeout.rb +16 -0
  28. data/lib/ori/tracer.rb +335 -0
  29. data/lib/ori/version.rb +5 -0
  30. data/lib/ori.rb +68 -0
  31. data/mise-tasks/test +15 -0
  32. data/mise.toml +40 -0
  33. data/sorbet/config +8 -0
  34. data/sorbet/rbi/gems/.gitattributes +1 -0
  35. data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
  36. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  37. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  38. data/sorbet/rbi/gems/erb@5.1.1.rbi +845 -0
  39. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  40. data/sorbet/rbi/gems/io-console@0.8.1.rbi +9 -0
  41. data/sorbet/rbi/gems/json@2.15.1.rbi +2101 -0
  42. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  43. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  44. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  45. data/sorbet/rbi/gems/minitest@5.26.0.rbi +2234 -0
  46. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  47. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +293 -0
  48. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  49. data/sorbet/rbi/gems/parser@3.3.9.0.rbi +5535 -0
  50. data/sorbet/rbi/gems/pp@0.6.3.rbi +376 -0
  51. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +477 -0
  52. data/sorbet/rbi/gems/prism@1.5.2.rbi +42056 -0
  53. data/sorbet/rbi/gems/psych@5.2.6.rbi +2469 -0
  54. data/sorbet/rbi/gems/racc@1.8.1.rbi +160 -0
  55. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  56. data/sorbet/rbi/gems/rake@13.3.0.rbi +3036 -0
  57. data/sorbet/rbi/gems/rbi@0.3.7.rbi +7115 -0
  58. data/sorbet/rbi/gems/rbs@3.9.5.rbi +6978 -0
  59. data/sorbet/rbi/gems/rdoc@6.15.0.rbi +12777 -0
  60. data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3845 -0
  61. data/sorbet/rbi/gems/reline@0.6.2.rbi +9 -0
  62. data/sorbet/rbi/gems/rexml@3.4.4.rbi +5285 -0
  63. data/sorbet/rbi/gems/rubocop-ast@1.47.1.rbi +7780 -0
  64. data/sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi +9 -0
  65. data/sorbet/rbi/gems/rubocop-sorbet@0.11.0.rbi +2506 -0
  66. data/sorbet/rbi/gems/rubocop@1.81.1.rbi +63489 -0
  67. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  68. data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
  69. data/sorbet/rbi/gems/stringio@3.1.7.rbi +9 -0
  70. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
  71. data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
  72. data/sorbet/rbi/gems/tsort@0.2.0.rbi +393 -0
  73. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +132 -0
  74. data/sorbet/rbi/gems/unicode-emoji@4.1.0.rbi +251 -0
  75. data/sorbet/rbi/gems/vernier@1.8.1-96ce5c739bfe6a18d2f4393f4219a1bf48674b87.rbi +904 -0
  76. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  77. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  78. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
  79. data/sorbet/shims/fiber.rbi +21 -0
  80. data/sorbet/shims/io.rbi +8 -0
  81. data/sorbet/shims/random.rbi +9 -0
  82. data/sorbet/shims/rdoc.rbi +3 -0
  83. data/sorbet/tapioca/require.rb +7 -0
  84. metadata +169 -0
@@ -0,0 +1,21 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ class Fiber
5
+ class << self
6
+ sig { returns(Fiber) }
7
+ def current; end
8
+
9
+ sig { params(scheduler: T.untyped).void }
10
+ def set_scheduler(scheduler); end
11
+
12
+ sig { returns(T.untyped) }
13
+ def current_scheduler; end
14
+ end
15
+
16
+ sig { params(block: T.proc.void).void }
17
+ def initialize(&block); end
18
+
19
+ sig { returns(T::Boolean) }
20
+ def blocking?; end
21
+ end
@@ -0,0 +1,8 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ class IO
5
+ READABLE = T.let(nil, Integer)
6
+ WRITABLE = T.let(nil, Integer)
7
+ PRIORITY = T.let(nil, Integer)
8
+ end
@@ -0,0 +1,9 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ class Random
5
+ class << self
6
+ sig { params(extra_timestamp_bits: Integer).returns(String) }
7
+ def uuid_v7(extra_timestamp_bits: 0); end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ # typed: true
2
+
3
+ class RDoc::Task; end
@@ -0,0 +1,7 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "minitest/autorun"
5
+ require "nio"
6
+ require "random/formatter"
7
+ require "zeitwerk"
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ori-rb
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.4'
5
+ platform: ruby
6
+ authors:
7
+ - Jahfer Husain
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: nio4r
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.7'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.7'
26
+ - !ruby/object:Gem::Dependency
27
+ name: sorbet
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.12645
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.6.12645
40
+ - !ruby/object:Gem::Dependency
41
+ name: zeitwerk
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 2.7.1
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 2.7.1
54
+ description: Ori is a library for Ruby that provides a robust set of primitives for
55
+ building concurrent applications. The name comes from the Japanese word 折り "ori"
56
+ meaning "fold", reflecting how concurrent operations interleave.
57
+ email:
58
+ - echo@jahfer.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".rubocop.yml"
64
+ - ".ruby-version"
65
+ - LICENSE
66
+ - README.md
67
+ - Rakefile
68
+ - docs/images/example_boundary.png
69
+ - docs/images/example_boundary_cancellation.png
70
+ - docs/images/example_channel.png
71
+ - docs/images/example_mutex.png
72
+ - docs/images/example_promise.png
73
+ - docs/images/example_semaphore.png
74
+ - docs/images/example_trace.png
75
+ - docs/images/example_trace_tag.png
76
+ - lib/ori.rb
77
+ - lib/ori/channel.rb
78
+ - lib/ori/lazy.rb
79
+ - lib/ori/mutex.rb
80
+ - lib/ori/out/index.html
81
+ - lib/ori/out/script.js
82
+ - lib/ori/promise.rb
83
+ - lib/ori/reentrant_semaphore.rb
84
+ - lib/ori/scope.rb
85
+ - lib/ori/select.rb
86
+ - lib/ori/selectable.rb
87
+ - lib/ori/semaphore.rb
88
+ - lib/ori/task.rb
89
+ - lib/ori/timeout.rb
90
+ - lib/ori/tracer.rb
91
+ - lib/ori/version.rb
92
+ - mise-tasks/test
93
+ - mise.toml
94
+ - sorbet/config
95
+ - sorbet/rbi/gems/.gitattributes
96
+ - sorbet/rbi/gems/ast@2.4.3.rbi
97
+ - sorbet/rbi/gems/benchmark@0.4.1.rbi
98
+ - sorbet/rbi/gems/date@3.4.1.rbi
99
+ - sorbet/rbi/gems/erb@5.1.1.rbi
100
+ - sorbet/rbi/gems/erubi@1.13.1.rbi
101
+ - sorbet/rbi/gems/io-console@0.8.1.rbi
102
+ - sorbet/rbi/gems/json@2.15.1.rbi
103
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi
104
+ - sorbet/rbi/gems/lint_roller@1.1.0.rbi
105
+ - sorbet/rbi/gems/logger@1.7.0.rbi
106
+ - sorbet/rbi/gems/minitest@5.26.0.rbi
107
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
108
+ - sorbet/rbi/gems/nio4r@2.7.4.rbi
109
+ - sorbet/rbi/gems/parallel@1.27.0.rbi
110
+ - sorbet/rbi/gems/parser@3.3.9.0.rbi
111
+ - sorbet/rbi/gems/pp@0.6.3.rbi
112
+ - sorbet/rbi/gems/prettyprint@0.2.0.rbi
113
+ - sorbet/rbi/gems/prism@1.5.2.rbi
114
+ - sorbet/rbi/gems/psych@5.2.6.rbi
115
+ - sorbet/rbi/gems/racc@1.8.1.rbi
116
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
117
+ - sorbet/rbi/gems/rake@13.3.0.rbi
118
+ - sorbet/rbi/gems/rbi@0.3.7.rbi
119
+ - sorbet/rbi/gems/rbs@3.9.5.rbi
120
+ - sorbet/rbi/gems/rdoc@6.15.0.rbi
121
+ - sorbet/rbi/gems/regexp_parser@2.11.3.rbi
122
+ - sorbet/rbi/gems/reline@0.6.2.rbi
123
+ - sorbet/rbi/gems/rexml@3.4.4.rbi
124
+ - sorbet/rbi/gems/rubocop-ast@1.47.1.rbi
125
+ - sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi
126
+ - sorbet/rbi/gems/rubocop-sorbet@0.11.0.rbi
127
+ - sorbet/rbi/gems/rubocop@1.81.1.rbi
128
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
129
+ - sorbet/rbi/gems/spoom@1.6.3.rbi
130
+ - sorbet/rbi/gems/stringio@3.1.7.rbi
131
+ - sorbet/rbi/gems/tapioca@0.16.11.rbi
132
+ - sorbet/rbi/gems/thor@1.4.0.rbi
133
+ - sorbet/rbi/gems/tsort@0.2.0.rbi
134
+ - sorbet/rbi/gems/unicode-display_width@3.2.0.rbi
135
+ - sorbet/rbi/gems/unicode-emoji@4.1.0.rbi
136
+ - sorbet/rbi/gems/vernier@1.8.1-96ce5c739bfe6a18d2f4393f4219a1bf48674b87.rbi
137
+ - sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
138
+ - sorbet/rbi/gems/yard@0.9.37.rbi
139
+ - sorbet/rbi/gems/zeitwerk@2.7.3.rbi
140
+ - sorbet/shims/fiber.rbi
141
+ - sorbet/shims/io.rbi
142
+ - sorbet/shims/random.rbi
143
+ - sorbet/shims/rdoc.rbi
144
+ - sorbet/tapioca/require.rb
145
+ homepage: https://github.com/jahfer/ori
146
+ licenses:
147
+ - MIT
148
+ metadata:
149
+ homepage_uri: https://github.com/jahfer/ori
150
+ source_code_uri: https://github.com/jahfer/ori
151
+ changelog_uri: https://github.com/jahfer/ori/releases
152
+ rdoc_options: []
153
+ require_paths:
154
+ - lib
155
+ required_ruby_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '3.3'
160
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ requirements: []
166
+ rubygems_version: 3.6.9
167
+ specification_version: 4
168
+ summary: A library for building concurrent applications.
169
+ test_files: []