Class: Nanoc3::DataSources::Delicious Deprecated

Inherits:
Nanoc3::DataSource show all
Defined in:
lib/nanoc3/data_sources/deprecated/delicious.rb

Overview

Deprecated.

Fetch data from online data sources manually instead

Instance Attribute Summary

Attributes inherited from Nanoc3::DataSource

#config, #items_root, #layouts_root

Instance Method Summary collapse

Methods inherited from Nanoc3::DataSource

#create_item, #create_layout, #down, #initialize, #layouts, #loading, #setup, #unuse, #up, #update, #use

Methods included from PluginRegistry::PluginMethods

#identifier, #identifiers, #named, #register

Constructor Details

This class inherits a constructor from Nanoc3::DataSource

Instance Method Details

#itemsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/nanoc3/data_sources/deprecated/delicious.rb', line 8

def items
  @items ||= begin
    require 'json'

    # Get data
    @http_client ||= Nanoc3::Extra::CHiCk::Client.new
    status, headers, data = *@http_client.get("http://feeds.delicious.com/v2/json/#{self.config[:username]}")

    # 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['n']
      attributes = {
        :url         => raw_item['u'],
        :description => raw_item['d'],
        :tags        => raw_item['t'],
        :date        => Time.parse(raw_item['dt']),
        :note        => raw_item['n'],
        :author      => raw_item['a']
      }
      identifier = "/#{i}/"
      mtime = nil

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