Sha256: 6ded96ccebd9e1e22e513c0e3ede5c16ed535f9d79631e026206dda525c80e04

Contents?: true

Size: 965 Bytes

Versions: 2

Compression:

Stored size: 965 Bytes

Contents

# encoding: utf-8

module Nanoc::DataSources
  # @deprecated Fetch data from online data sources manually instead
  class Twitter < Nanoc::DataSource
    def items
      @item ||= begin
        require 'json'

        # Get data
        @http_client ||= Nanoc::Extra::CHiCk::Client.new
        _status, _headers, data = *@http_client.get("http://twitter.com/statuses/user_timeline/#{config[:username]}.json")

        # Parse as JSON
        raw_items = JSON.parse(data)

        # Convert to items
        raw_items.enum_with_index.map do |raw_item, _i|
          # Get data
          content = raw_item['text']
          attributes = {
            created_at: raw_item['created_at'],
            source: raw_item['source']
          }
          identifier = "/#{raw_item['id']}/"
          mtime = Time.parse(raw_item['created_at'])

          # Build item
          Nanoc::Item.new(content, attributes, identifier, mtime)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nanoc-3.8.0 lib/nanoc/data_sources/deprecated/twitter.rb
nanoc-3.7.5 lib/nanoc/data_sources/deprecated/twitter.rb