class SolveBio::ListObject

Public Instance Methods

[](k) click to toggle source
Calls superclass method
# File lib/solvebio/list_object.rb, line 3
def [](k)
    case k
    when String, Symbol
        super
    else
        raise ArgumentError.new("ListObject types only support String keys. Try: #data[#{k.inspect}])")
    end
end
all(params={}) click to toggle source
# File lib/solvebio/list_object.rb, line 17
def all(params={})
    resp = Client.request('get', url, {:params => params})
    Util.to_solve_object(resp)
end
at(i) click to toggle source
# File lib/solvebio/list_object.rb, line 43
def at(i)
    self.to_a[i]
end
create(params={}) click to toggle source
# File lib/solvebio/list_object.rb, line 22
def create(params={})
    resp = Client.request('post', url, {:params => params})
    Util.to_solve_object(resp)
end
each(*pass) { |at| ... } click to toggle source
# File lib/solvebio/list_object.rb, line 67
def each(*pass)
    return self unless block_given?
    i = 0
    ary = self.dup
    done = false
    until done
        if i >= ary.data.size
            ary = next_page
            break unless ary
            i = 0
        end
        yield(ary.at(i))
        i += 1
    end
    return self
end
first() click to toggle source
# File lib/solvebio/list_object.rb, line 84
def first
    self.data[0]
end
inspect()
Alias for: to_s
next_page(params={}) click to toggle source
# File lib/solvebio/list_object.rb, line 27
def next_page(params={})
    if self.links.next
        resp = Client.request('get', self.links.next, {:params => params})
        Util.to_solve_object(resp)
    end
    return nil
end
prev_page(params={}) click to toggle source
# File lib/solvebio/list_object.rb, line 35
def prev_page(params={})
    if self.links.prev
        resp = Client.request('get', self.links.prev, {:params => params})
        Util.to_solve_object(resp)
    end
    return nil
end
retrieve(id) click to toggle source
# File lib/solvebio/list_object.rb, line 12
def retrieve(id)
    response = Client.request('get', "#{url}/#{id}")
    Util.to_solve_object(response)
end
size() click to toggle source
# File lib/solvebio/list_object.rb, line 47
def size
    self[:total]
end
Also aliased as: total
to_a() click to toggle source
# File lib/solvebio/list_object.rb, line 52
def to_a
    return Util.to_solve_object(self.data)
end
to_s() click to toggle source
Calls superclass method
# File lib/solvebio/list_object.rb, line 56
def to_s
    if self.data[0] and self.data[0].class.constants.member?(:LIST_FIELDS)
        # Tabulate the result list
        fields, headers = self.data[0].class::LIST_FIELDS
        items = self.data.map { |item| fields.map{ |field| item[field] } }
        return "\n" + Tabulate.tabulate(items, headers)
    end
    super
end
Also aliased as: inspect
total()
Alias for: size