Sha256: 16c91c6a76f247c84bedcdeb11bb7a7c7658e543ce895d04436fedc12c3d68fd

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

module Nanoc
  class DataSource < Plugin

    attr_reader :config

    def initialize(site)
      @site       = site
      @references = 0
    end

    # Preparation

    def loading
      # Load if necessary
      up if @references == 0
      @references += 1

      yield
    ensure
      # Unload if necessary
      @references -= 1
      down if @references == 0
    end

    def up    ; end
    def down  ; end

    def setup ; end

    # Loading data

    def pages         ; error 'DataSource#pages must be overridden'         ; end
    def page_defaults ; error 'DataSource#page_defaults must be overridden' ; end
    def layouts       ; error 'DataSource#layouts must be overridden'       ; end
    def templates     ; error 'DataSource#templates must be overridden'     ; end
    def code          ; error 'DataSource#code must be overridden'          ; end

    # Creating data

    def create_page(name, template)
      error 'DataSource#create_page must be overridden'
    end

    def create_layout(name)
      error 'DataSource#create_layout must be overridden'
    end

    def create_template(name)
      error 'DataSource#create_template must be overridden'
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
nanoc-2.0.1 lib/nanoc/base/data_source.rb
nanoc-2.0 lib/nanoc/base/data_source.rb
nanoc-2.0.2 lib/nanoc/base/data_source.rb
nanoc-2.0.3 lib/nanoc/base/data_source.rb
nanoc-2.0.4 lib/nanoc/base/data_source.rb