Sha256: 0689baf67db681dd421b2ee0d506ab880714d240b6d3dd501042c066e3abdd8b

Contents?: true

Size: 1.23 KB

Versions: 17

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module Paperwork
    ##
    # task generators for building with middleman
    module Tasks
        ##
        # base class for all task generators. takes
        # care that every task is registered and
        # executed during build
        #
        class Base
            attr_reader :name, :dependencies

            def initialize(name, *dependencies)
                @name = name
                @dependencies = dependencies.compact
                self.register(self)
            end

            def register(task)
                registered_tasks[task.name] = task unless registered?(task.name)
            end

            def registered_tasks
                @@registered_tasks ||= {}
            end

            def registered?(name)
                registered_tasks.keys.include?(name)
            end

            def create_tasks
                registered_tasks.each do |_name, task|
                    task.tasks
                end
            end

            def self.explain
                list = @@registered_tasks.map do |_name, task|
                    "\t#{task.class}: #{task.name} => #{task.dependencies}"
                end
                list.join("\n")
            end
        end
    end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
paperwork-0.5.1 lib/paperwork/tasks/base.rb
paperwork-0.5.0 lib/paperwork/tasks/base.rb
paperwork-0.4.1 lib/paperwork/tasks/base.rb
paperwork-0.4.0 lib/paperwork/tasks/base.rb
paperwork-0.3.5 lib/paperwork/tasks/base.rb
paperwork-0.3.4 lib/paperwork/tasks/base.rb
paperwork-0.3.3 lib/paperwork/tasks/base.rb
paperwork-0.3.2 lib/paperwork/tasks/base.rb
paperwork-0.3.1 lib/paperwork/tasks/base.rb
paperwork-0.3.0 lib/paperwork/tasks/base.rb
paperwork-0.2.6 lib/paperwork/tasks/base.rb
paperwork-0.2.5 lib/paperwork/tasks/base.rb
paperwork-0.2.4 lib/paperwork/tasks/base.rb
paperwork-0.2.3 lib/paperwork/tasks/base.rb
paperwork-0.2.2 lib/paperwork/tasks/base.rb
paperwork-0.2.1 lib/paperwork/tasks/base.rb
paperwork-0.2.0 lib/paperwork/tasks/base.rb