Module: Supabase::Postgrest::SelectMixin
- Included in:
- RPCFilterRequestBuilder, SelectRequestBuilder
- Defined in:
- lib/supabase/postgrest/request_builder.rb
Overview
Mixin providing select-only modifiers (order/limit/offset/range).
Instance Method Summary collapse
- #limit(size, foreign_table: nil) ⇒ Object
- #offset(size) ⇒ Object
- #order(column, desc: false, nullsfirst: nil, foreign_table: nil) ⇒ Object
- #range(start, finish, foreign_table: nil) ⇒ Object
Instance Method Details
#limit(size, foreign_table: nil) ⇒ Object
370 371 372 373 374 |
# File 'lib/supabase/postgrest/request_builder.rb', line 370 def limit(size, foreign_table: nil) key = foreign_table ? "#{foreign_table}.limit" : "limit" @request.params[key] = size self end |
#offset(size) ⇒ Object
376 377 378 379 |
# File 'lib/supabase/postgrest/request_builder.rb', line 376 def offset(size) @request.params["offset"] = size self end |
#order(column, desc: false, nullsfirst: nil, foreign_table: nil) ⇒ Object
359 360 361 362 363 364 365 366 367 368 |
# File 'lib/supabase/postgrest/request_builder.rb', line 359 def order(column, desc: false, nullsfirst: nil, foreign_table: nil) key = foreign_table ? "#{foreign_table}.order" : "order" direction = desc ? "desc" : "asc" nulls = nullsfirst.nil? ? "" : ".#{nullsfirst ? 'nullsfirst' : 'nullslast'}" new_value = "#{column}.#{direction}#{nulls}" existing = @request.params[key] @request.params[key] = existing ? "#{existing},#{new_value}" : new_value self end |
#range(start, finish, foreign_table: nil) ⇒ Object
381 382 383 384 385 386 387 |
# File 'lib/supabase/postgrest/request_builder.rb', line 381 def range(start, finish, foreign_table: nil) offset_key = foreign_table ? "#{foreign_table}.offset" : "offset" limit_key = foreign_table ? "#{foreign_table}.limit" : "limit" @request.params[offset_key] = start @request.params[limit_key] = finish - start + 1 self end |