Sha256: 55a2f3c1573855155801aabc28d1c2e0eabc8573a25c465ba88f16ed5183ac3b

Contents?: true

Size: 744 Bytes

Versions: 2

Compression:

Stored size: 744 Bytes

Contents

module FbGraph
  module Connections
    class Collection < Array
      attr_reader :previous, :next

      def initialize(collection)
        result = replace(collection[:data])
        @previous, @next = {}, {}
        if (paging = collection[:paging])
          if paging[:previous]
            @previous = parse_query(URI.parse(paging[:previous]).query)
          end
          if paging[:next]
            @next = parse_query(URI.parse(paging[:next]).query)
          end
        end
      end

      private

      def parse_query(query)
        params = {}
        query.split('&').each do |q|
          key, value = q.split('=')
          params[key] = value
        end
        params.with_indifferent_access
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fb_graph-0.0.2 lib/fb_graph/connections/collection.rb
fb_graph-0.0.1 lib/fb_graph/connections/collection.rb