Module: Thron::Pageable::ClassMethods

Defined in:
lib/thron/pageable.rb

Instance Method Summary collapse

Instance Method Details

#paginate(*apis) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/thron/pageable.rb', line 6

def paginate(*apis)
  (@paginated_apis = apis).each do |api|
    define_method("#{api}_paginator") do |*args|
      options = args.empty? ? {} : args.last
      limit = options.delete(:limit) { Paginator::MAX_LIMIT }
      body = ->(limit, offset) { send(api, options.merge!({ offset: offset, limit: limit })) }
      Paginator::new(body: body, limit: limit)
    end
  end
end

#paginator_methodsObject



17
18
19
# File 'lib/thron/pageable.rb', line 17

def paginator_methods
  Array(@paginated_apis).map { |api| :"#{api}_paginator" }
end