class Litbuild::Visitor
This is the base class for Litubild Visitors; it defines a no-operation Visitor
. Each Visitor
subclass encapsulates one of the operations that can be performed on a Blueprint
along with its dependencies and components (and along with the dependencies and components of those Blueprints and so on).
Public Class Methods
new(directory: '/')
click to toggle source
The main Visitor
classes (bash script, asciidoc) write files to specific directories, and need to be able to switch to subdirectories tmeporarily; so Litbuild::Visitor
has some functionality to support that.
The default '/' value is just to avoid nil checking for Visitors that don't need this feature.
# File lib/litbuild/visitor.rb, line 18 def initialize(directory: '/') @dir_stack = [directory] end
Public Instance Methods
in_subdirectory(subdir) { || ... }
click to toggle source
# File lib/litbuild/visitor.rb, line 22 def in_subdirectory(subdir) @dir_stack.push(File.join(cwd, subdir)) yield @dir_stack.pop end
visit_commands(commands:)
click to toggle source
# File lib/litbuild/visitor.rb, line 28 def visit_commands(commands:); end
visit_narrative(narrative:)
click to toggle source
# File lib/litbuild/visitor.rb, line 30 def visit_narrative(narrative:); end
visit_package(package:)
click to toggle source
# File lib/litbuild/visitor.rb, line 32 def visit_package(package:); end
visit_section(section:)
click to toggle source
# File lib/litbuild/visitor.rb, line 34 def visit_section(section:); end
Protected Instance Methods
cwd()
click to toggle source
# File lib/litbuild/visitor.rb, line 38 def cwd @dir_stack.last end