47colborne/cloud-sesame

View on GitHub
lib/cloud_sesame/query/node/page.rb

Summary

Maintainability
A
0 mins
Test Coverage
module CloudSesame
    module Query
        module Node
            class Page < Abstract

                attr_writer :page, :size, :start, :cursor

        def page
                    @page ||= context[:page] || 1
        end

                def size
                    @size ||= context[:size] || 10
                end

                def start
                    @start ||= (page - 1) * size
                end

                def cursor
                    @cursor ||= context[:cursor]
                end

                def compile
                    compiled = { size: size }
                    cursor ? compiled[:cursor] = cursor : compiled[:start] = start
                    compiled
                end

            end
        end
    end
end