Class: Rake::InvocationChain (Ruby 2.2.3)
Description: Class : Rake::InvocationChain - Ruby 2.2.3

- Home
- Core 2.2.3
- Std-lib 2.2.3
- Downloads

Support for the Ruby 2.2 series has ended. See here for reference.

### Home Classes Methods

### In Files

- rake/invocation_chain.rb
- rake/task.rb

### Parent

LinkedList

### Namespace

- CLASS Rake::InvocationChain::EmptyInvocationChain

### Methods

- ::append
- #append
- #member?
- #to_s

### Class/Module Index

Quicksearch

- FileUtils
- Module
- Object
- Pathname
- Rake::Application
- Rake::CompositePublisher
- Rake::DSL
- Rake::DefaultLoader
- Rake::EarlyTime
- Rake::FileCreationTask
- Rake::FileList
- Rake::FileTask
- Rake::FileUtilsExt
- Rake::InvocationChain
- Rake::InvocationChain::EmptyInvocationChain
- Rake::InvocationExceptionMixin
- Rake::LateTime
- Rake::LinkedList
- Rake::LinkedList::EmptyLinkedList
- Rake::MakefileLoader
- Rake::MultiTask
- Rake::NameSpace
- Rake::PackageTask
- Rake::PrivateReader
- Rake::RuleRecursionOverflowError
- Rake::Scope
- Rake::SshDirPublisher
- Rake::SshFilePublisher
- Rake::SshFreshDirPublisher
- Rake::Task
- Rake::TaskArgumentError
- Rake::TaskArguments
- Rake::TaskLib
- Rake::TaskManager
- Rake::TestTask
- Rake::Win32
- String

No matching classes.

# Rake::InvocationChain

InvocationChain tracks the chain of task invocations to detect circular dependencies.

### Constants

EMPTY

### Public Class Methods

append(invocation, chain) click to toggle source

Class level append.

                   # File rake/invocation_chain.rb, line 27
    def self.append(invocation, chain)
      chain.append(invocation)
    end

### Public Instance Methods

append(invocation) click to toggle source

Append an invocation to the chain of invocations. It is an error if the invocation already listed.

                   # File rake/invocation_chain.rb, line 14
    def append(invocation)
      if member?(invocation)
        fail RuntimeError, "Circular dependency detected: #{to_s} => #{invocation}"
      end
      conj(invocation)
    end

member?(invocation) click to toggle source

Is the invocation already in the chain?

                   # File rake/invocation_chain.rb, line 8
    def member?(invocation)
      head == invocation || tail.member?(invocation)
    end

to_s() click to toggle source

Convert to string, ie: TOP => invocation => invocation

                   # File rake/invocation_chain.rb, line 22
    def to_s
      "#{prefix}#{head}"
    end