Sha256: 0ca5ff49725f7b7bcf9ca77d1f7ce365ce745ba48926f6390256caca6ab87204

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

To Do for nanoc 4.0
===================

New
---

* [3.x] assert that textual filter must return string 
* Get rid of notification center
* Get rid of core ext
	* Don't recursively clean attributes
* All stores should be pluggable 

Populate in data sources
------------------------

`Nanoc::DEFAULT_CONTENT`

all data sources are told to populate

Finding modified items
----------------------

Data sources should be queried to find out removed, added and changed items.

Abstractions
------------

ItemRepWriter

Item proxies
------------

Maybe this can be implemented as decorators.

### Core

    Nanoc::Core::Item
        identifier
        content
        attributes

    Nanoc::Core::ItemRep
        item_identifier
        name

    Nanoc::Core::ItemRepSnapshot
        item_identifier
        item_rep_name
        name
        content

### Proxies

    Nanoc::???::Item
        site
        children
        parent
        reps
        compiled_content

    Nanoc::???::ItemRep
        item_identifier
        item (weak ref?)
        compiled_content

    Nanoc::???::ItemRepSnapshot
        item_identifier
        item_rep_name
        item_rep (weak ref?)

Dependency types
----------------

* Item -> Item
* Item -> All items (@items.select { ... })
* Item -> Pattern (@item.children)

Query language
--------------

Is this strictly necessary? Maybe create an @items proxy that detects whether #find, #detect, #select, #each, ... are called. #[] would create a direct dependency. @items.children would also create a dependency on all its children and possible future ones (pattern dependency?).

### Capabilities

* @item.parent
* @item.children
* @items.select{ |i| i[:kind] == 'article' }

### Examples

    @items.query(:identifier, equals: '/foo/')
    @items.query(:identifier, starts_with: '/reviews/')
    @items.query(

-> how to distinguish between identifier and attributes?

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nanoc-3.6.3 TODO.md