Class: Apiwork::Adapter::Standard::Capability::Pagination::Operation::Paginate::Offset

Inherits:
Object
  • Object
show all
Defined in:
lib/apiwork/adapter/standard/capability/pagination/operation/paginate/offset.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(relation, config, params) ⇒ Offset

Returns a new instance of Offset.



17
18
19
20
21
# File 'lib/apiwork/adapter/standard/capability/pagination/operation/paginate/offset.rb', line 17

def initialize(relation, config, params)
  @relation = relation
  @config = config
  @params = params
end

Class Method Details

.apply(relation, config, params) ⇒ Object



12
13
14
# File 'lib/apiwork/adapter/standard/capability/pagination/operation/paginate/offset.rb', line 12

def apply(relation, config, params)
  new(relation, config, params).apply
end

Instance Method Details

#applyObject



23
24
25
26
27
28
29
30
31
# File 'lib/apiwork/adapter/standard/capability/pagination/operation/paginate/offset.rb', line 23

def apply
  number = @params.fetch(:number, 1).to_i
  size = [@params.fetch(:size, @config.default_size).to_i, 1].max

  {
    data: @relation.limit(size).offset((number - 1) * size),
    metadata: (number, size),
  }
end