itsi 0.2.8 → 0.2.9

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: 79c36b477ccc4ed0f1327f160d6a0c0d53d8a0524f3458d98ed3ddefa5e59e72
4
- data.tar.gz: eb43759f50d8eb8f62c7a8dbfcf71bea68ccda7b441877cc356cfba827d58612
3
+ metadata.gz: 2fefdf2d68abfbe038795e1220accdd23d9f69499e981cfd26786960be2ec8d6
4
+ data.tar.gz: 3be893a613f9472ce448a125648630f99c4ea5a50deecc81926b731674dbc1d4
5
5
  SHA512:
6
- metadata.gz: 201903b6a53a8f29f916711b4cffa67ae2f67737cff05c7ddae1016ba928f3c0704656a17ab8739d05da1ac2ff8ff15d3b26fb89527ebbf47b128af022a21953
7
- data.tar.gz: 7752aa84a9af2d8f8be6f52b714b73ce47c0cb6b19833f65248cacb8d7967f14ed89d387e7243c7663634305c169492566c0709534e0d33063e7c5e200a506f8
6
+ metadata.gz: 0f00f52320b33b8ee559eb90e4bfa60e48b0f72c6cf01666ab961e3d1eb34e9249f20990d9376f359f84d0fe18ae9b273b34495fe1f21e69b02b79bc5ce94e1f
7
+ data.tar.gz: 3e50141347d296b1b246636d7cd298a2540405d57872b6c6812edc9b0e351de1e4c59f89e36800be6c2cbb58493a426a876d07c919e978bbccd0dd0ce312c7ea
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "itsi-scheduler"
3
- version = "0.2.8"
3
+ version = "0.2.9"
4
4
  edition = "2021"
5
5
  authors = ["Wouter Coppieters <wc@pico.net.nz>"]
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "itsi-server"
3
- version = "0.2.8"
3
+ version = "0.2.9"
4
4
  edition = "2021"
5
5
  authors = ["Wouter Coppieters <wc@pico.net.nz>"]
6
6
  license = "MIT"
@@ -108,16 +108,13 @@ impl HttpRequestContext {
108
108
  }
109
109
 
110
110
  pub fn set_supported_encoding_set(&self, req: &HttpRequest) {
111
- let supported_encoding_set = req
112
- .headers()
113
- .get_all(ACCEPT_ENCODING)
114
- .into_iter()
115
- .cloned()
116
- .collect::<Vec<_>>();
117
- self.inner
118
- .supported_encoding_set
119
- .set(supported_encoding_set)
120
- .unwrap();
111
+ self.inner.supported_encoding_set.get_or_init(move || {
112
+ req.headers()
113
+ .get_all(ACCEPT_ENCODING)
114
+ .into_iter()
115
+ .cloned()
116
+ .collect::<Vec<_>>()
117
+ });
121
118
  }
122
119
 
123
120
  pub fn set_origin(&self, origin: Option<String>) {
@@ -27,52 +27,49 @@ Install Ruby
27
27
 
28
28
  Then use `gem` to install Itsi, or its components based on your Ruby version.
29
29
 
30
- **For Ruby >= 3.1**:
30
+ **For Ruby >= 3.0**:
31
31
  ```bash
32
32
  gem install itsi
33
33
  ```
34
34
  *(Installs both `itsi-server` and `itsi-scheduler`)*
35
35
 
36
- **For Ruby 2.7 – 3.0**:
36
+ **For Ruby 2.7**:
37
37
  ```bash
38
38
  gem install itsi-server
39
39
  ```
40
- *(Installs `itsi-server` only; `itsi-scheduler` is not supported on Ruby < 3.1)*
40
+ *(Installs `itsi-server` only; `itsi-scheduler` is not supported on Ruby 2.7)*
41
41
 
42
42
  {{< callout type="info" >}}
43
- Itsi (**server + scheduler**) requires **Ruby >= 3.1**.
43
+ Itsi (**server + scheduler**) requires **Ruby >= 3.0**.
44
44
 
45
45
  Itsi **server** supports **Ruby >= 2.7**.
46
46
 
47
47
  If you wish to use either the scheduler or server independently:
48
48
  - `gem install itsi-server`
49
- - `gem install itsi-scheduler` (Ruby >= 3.1 only)
50
-
49
+ - `gem install itsi-scheduler` (Ruby >= 3.0 only)
51
50
  {{< /callout >}}
52
51
 
53
52
  {{< /tab >}}
54
53
  {{< tab >}}
55
54
  **Mac**:
56
- **For Ruby >= 3.1**:
55
+ **For Ruby >= 3.0**:
57
56
  ```bash
58
57
  gem install itsi
59
58
  ```
60
59
 
61
- **For Ruby 2.7 – 3.0**:
60
+ **For Ruby 2.7**:
62
61
  ```bash
63
62
  gem install itsi-server
64
63
  ```
65
64
 
66
65
  {{< callout type="info" >}}
67
- Itsi (**server + scheduler**) requires **Ruby >= 3.1**.
66
+ Itsi (**server + scheduler**) requires **Ruby >= 3.0**.
68
67
 
69
68
  Itsi **server** supports **Ruby >= 2.7**.
70
69
 
71
70
  You can install components individually:
72
71
  - `gem install itsi-server`
73
- - `gem install itsi-scheduler` (Ruby >= 3.1 only)
74
-
75
- ⚠️ Scheduler is not compatible with Ruby 3.0.
72
+ - `gem install itsi-scheduler` (Ruby >= 3.0 only)
76
73
  {{< /callout >}}
77
74
 
78
75
  {{< /tab >}}
@@ -213,7 +213,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
213
213
 
214
214
  [[package]]
215
215
  name = "itsi-scheduler"
216
- version = "0.2.8"
216
+ version = "0.2.9"
217
217
  dependencies = [
218
218
  "bytes",
219
219
  "derive_more",
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "Itsi Scheduler - A light-weight Fiber Scheduler implementation for Ruby"
13
13
  spec.homepage = "https://itsi.fyi"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 3.1"
15
+ spec.required_ruby_version = ">= 3.0"
16
16
  spec.required_rubygems_version = ">= 3.1.11"
17
17
 
18
18
  spec.metadata["homepage_uri"] = spec.homepage
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Itsi
4
4
  class Scheduler
5
- VERSION = "0.2.8"
5
+ VERSION = "0.2.9"
6
6
  end
7
7
  end
@@ -122,7 +122,7 @@ module Itsi
122
122
 
123
123
  # Hook invoked at the end of the thread.
124
124
  # Will start our scheduler's Reactor.
125
- def scheduler_close
125
+ def close
126
126
  run
127
127
  ensure
128
128
  @closed ||= true
@@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1644
1644
 
1645
1645
  [[package]]
1646
1646
  name = "itsi-server"
1647
- version = "0.2.8"
1647
+ version = "0.2.9"
1648
1648
  dependencies = [
1649
1649
  "argon2",
1650
1650
  "async-channel",
@@ -35,6 +35,7 @@ module Itsi
35
35
  # 3. Default values.
36
36
  def self.build_config(args, config_file_path, builder_proc = nil)
37
37
  args.transform_keys!(&:to_sym)
38
+
38
39
  itsifile_config, errors = \
39
40
  if builder_proc
40
41
  DSL.evaluate(&builder_proc)
@@ -105,6 +106,7 @@ module Itsi
105
106
  Server.write_pid
106
107
  end
107
108
 
109
+
108
110
  srv_config = {
109
111
  workers: args.fetch(:workers) { itsifile_config.fetch(:workers, 1) },
110
112
  worker_memory_limit: args.fetch(:worker_memory_limit) { itsifile_config.fetch(:worker_memory_limit, nil) },
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Itsi
4
4
  class Server
5
- VERSION = "0.2.8"
5
+ VERSION = "0.2.9"
6
6
  end
7
7
  end
@@ -75,7 +75,7 @@ class TestRackServer < Minitest::Test
75
75
  end
76
76
 
77
77
  def test_scheduler_non_blocking
78
- return unless RUBY_VERSION > "3.1"
78
+ return unless RUBY_VERSION > "3.0"
79
79
 
80
80
  server(
81
81
  itsi_rb: lambda do
@@ -193,7 +193,7 @@ class TestRackServer < Minitest::Test
193
193
  server(app: lambda do |env|
194
194
  [200, { "Content-Type" => "text/plain", "Set-Cookie" => "session=abc123; Path=/" }, ["Cookie Test"]]
195
195
  end) do
196
- response = get_resp('/')
196
+ response = get_resp("/")
197
197
  assert_equal "200", response.code
198
198
  assert_match(/session=abc123/, response["set-cookie"])
199
199
  assert_equal "Cookie Test", response.body
@@ -258,7 +258,6 @@ class TestRackServer < Minitest::Test
258
258
  header_value = env["HTTP_X_MY_HEADER"] || ""
259
259
  [200, { "Content-Type" => "text/plain" }, [header_value]]
260
260
  end) do |uri|
261
-
262
261
  req = Net::HTTP::Get.new(uri)
263
262
  req["X-My-Header"] = "test-header"
264
263
  response = Net::HTTP.start(uri.hostname, uri.port) { |http| http.request(req) }
data/lib/itsi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Itsi
2
- VERSION = "0.2.8"
2
+ VERSION = '0.2.9'
3
3
  end
data/tasks.txt CHANGED
@@ -1,3 +1,7 @@
1
+ - Fix scheduler for Ruby 3.0
2
+ - Fix crash on require scheduler
3
+ - Fix orphaned processes on linux (Maybe need to kill watcher?)
4
+
1
5
  Tasks:
2
6
  - Static ruby build
3
7
  - Add way to opt non Itsi.rb files into LSP
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itsi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wouter Coppieters
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.2.8
18
+ version: 0.2.9
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.2.8
25
+ version: 0.2.9
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: itsi-server
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.2.8
32
+ version: 0.2.9
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.2.8
39
+ version: 0.2.9
40
40
  description: Wrapper Gem for both the Itsi server and the Itsi Fiber scheduler
41
41
  email:
42
42
  - wc@pico.net.nz
@@ -1035,7 +1035,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1035
1035
  requirements:
1036
1036
  - - ">="
1037
1037
  - !ruby/object:Gem::Version
1038
- version: '3.1'
1038
+ version: '3.0'
1039
1039
  required_rubygems_version: !ruby/object:Gem::Requirement
1040
1040
  requirements:
1041
1041
  - - ">="