cuboid 0.3.5 → 0.3.6

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: 640c2b600cf8fb162d629c1a213ae950796e5c2bedc0df8d91bb006b9eccfeba
4
- data.tar.gz: d0b42fac1eb06cf0a8e54fc3ca32e1e1346bba892eebe390ba42b75403a43ff1
3
+ metadata.gz: 171b5e2f29598954e7bb187061cfbc5ff520b05ba87fa9eee1f4d37e0f1061e3
4
+ data.tar.gz: cd3f65b26beb8745afa941902ed6d3783d7792139081285e4df6a1795034c86e
5
5
  SHA512:
6
- metadata.gz: 37d4a044e8113175387efdc1eef1dd72e134d08a722147a3befba34976159167345686e03612c6485300770b3b6d8366f98695901ef21d74b10c12399ffcd053
7
- data.tar.gz: 880059871670f4bc30beba7bbdaffde7cb33f79ab2618646ad5baa7ebe6b30b6335d4c54dba35b3bb88cbce5b37a006bfa3fa281f243a606fcffa5b21c72a3b5
6
+ metadata.gz: f5bb4086c573b41372d79faae0c7b243d337333dc1bfa5ae326eca53ddd47f2e4a64aef5b5751362c9b9754ce8ef181cb7a665db7ecb88c3360100c4cc78ad22
7
+ data.tar.gz: 20a8d4d77b283d655a7d0a122b4ad1b71b7b6b4461acdea2f35d458f64962e564a9d472ad82ad4d147a5c31550b70ad3a86120e07393c95045c598597323c1ad
data/cuboid.gemspec CHANGED
@@ -46,11 +46,11 @@ Gem::Specification.new do |s|
46
46
  s.add_dependency 'base64'
47
47
 
48
48
  # DO NOT TOUCH THIS GROUP VERSION
49
- s.add_dependency 'rack', '~> 2.2.22'
49
+ s.add_dependency 'rack', '>= 3.0'
50
50
  s.add_dependency 'rack-test'
51
51
  # REST API
52
- s.add_dependency 'sinatra', '3.2.0'
53
- s.add_dependency 'sinatra-contrib', '3.2.0'
52
+ s.add_dependency 'sinatra', '>= 4.0'
53
+ s.add_dependency 'sinatra-contrib', '>= 4.0'
54
54
 
55
55
  # RPC client/server implementation.
56
56
  s.add_dependency 'toq'
@@ -2,6 +2,11 @@ require 'puma'
2
2
  require 'puma/minissl'
3
3
  require 'sinatra/base'
4
4
  require 'sinatra/contrib'
5
+ # Rack 3 gemified Rack::Session out into the rack-session gem; sinatra-contrib
6
+ # pulls it in transitively, but the Rack::Session::Pool constant only loads
7
+ # when the session-pool file is required directly. Without this the
8
+ # `use Rack::Session::Pool` line below NameErrors at boot.
9
+ require 'rack/session/pool'
5
10
 
6
11
  module Cuboid
7
12
  module Rest
@@ -34,9 +39,26 @@ class Server < Sinatra::Base
34
39
 
35
40
  enable :logging
36
41
 
37
- VALID_REPORT_FORMATS = %w(json xml yaml html.zip)
42
+ # sinatra-contrib's default `:json_encoder` is `MultiJson`, and its
43
+ # `resolve_encoder_action` tries `:encode` before `:generate`. Under
44
+ # multi_json 1.20+, `MultiJson.encode` is a deprecated alias to
45
+ # `dump` and emits a warning on every call. Pin the encoder to
46
+ # stdlib `JSON` (which exposes `generate`) to bypass the alias and
47
+ # silence the deprecation without a downstream gem bump.
48
+ set :json_encoder, ::JSON
38
49
 
39
50
  before do
51
+ # Rack 3 reads and consumes `rack.input` to build the params hash
52
+ # for known content types (application/x-www-form-urlencoded,
53
+ # multipart/...) BEFORE the route handler runs. After that
54
+ # consumption `request.body.read` returns "" until the IO is
55
+ # rewound. Cuboid's REST routes hand-parse JSON via
56
+ # `JSON.load(request.body.read)`, so without this rewind every
57
+ # PUT/POST that ships a JSON body silently looks empty under
58
+ # Rack 3 — `Options.scheduler.url`, scan options, etc. never get
59
+ # set and downstream routes 404. Idempotent under Rack 2.
60
+ request.body.rewind if request.body.respond_to?(:rewind)
61
+
40
62
  protected!
41
63
  content_type :json
42
64
  end
data/lib/version CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuboid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Laskos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-01 00:00:00.000000000 Z
11
+ date: 2026-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -126,16 +126,16 @@ dependencies:
126
126
  name: rack
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 2.2.22
131
+ version: '3.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 2.2.22
138
+ version: '3.0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rack-test
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -154,30 +154,30 @@ dependencies:
154
154
  name: sinatra
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 3.2.0
159
+ version: '4.0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 3.2.0
166
+ version: '4.0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: sinatra-contrib
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 3.2.0
173
+ version: '4.0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 3.2.0
180
+ version: '4.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: toq
183
183
  requirement: !ruby/object:Gem::Requirement