Method: Rubyists::Linear::BaseModel::ClassMethods#all

Defined in:
lib/linear/models/base_model/class_methods.rb

#all(after: nil, filter: nil, max: 100) ⇒ Object



117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/linear/models/base_model/class_methods.rb', line 117

def all(after: nil, filter: nil, max: 100)
  edges = []
  moar = true
  while moar
    data = gql_query(filter:, after:)
    subjects = data[plural]
    edges += subjects[:edges]
    moar = false if edges.size >= max || !subjects[:pageInfo][:hasNextPage]
    after = subjects[:pageInfo][:endCursor]
  end
  edges.map { |edge| new edge[:node] }
end