Class: A2A::Middleware::LimitPaginationSize
- Inherits:
-
Object
- Object
- A2A::Middleware::LimitPaginationSize
- Defined in:
- lib/a2a/middleware/limit_pagination_size.rb
Overview
Clamps ‘request.page_size` to a valid range and sets `env` for downstream handlers.
Accepts a single integer — the maximum page size (also used as the default when the client doesn’t specify one). Clamps to [1, max].
Usage:
on "ListTasks" do
use A2A::Middleware::LimitPaginationSize, 50
respond_with -> (env) {
page_size = env["a2a.page_size"]
# ...
}
end
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, max = 100) ⇒ LimitPaginationSize
constructor
A new instance of LimitPaginationSize.
Constructor Details
#initialize(app, max = 100) ⇒ LimitPaginationSize
Returns a new instance of LimitPaginationSize.
25 26 27 28 |
# File 'lib/a2a/middleware/limit_pagination_size.rb', line 25 def initialize(app, max = 100) @app = app @max = max end |
Instance Method Details
#call(env) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/a2a/middleware/limit_pagination_size.rb', line 30 def call(env) request = env["a2a.request"] page_size = @max if request.respond_to?(:page_size) && request.page_size ps = request.page_size.to_i page_size = [[ps, 1].max, @max].min end env["a2a.page_size"] = page_size @app.call(env) end |