Class: CLI::Mastermind::Plan
- Inherits:
-
Object
- Object
- CLI::Mastermind::Plan
- Includes:
- Interface
- Defined in:
- lib/cli/mastermind/plan.rb,
lib/cli/mastermind/plan/interface.rb
Defined Under Namespace
Modules: Interface
Instance Attribute Summary collapse
-
#children ⇒ Object
readonly
Used in the interactive plan selector to display child plans.
Class Method Summary collapse
-
.load(filename) ⇒ Object
Loads a particular plan from the filesystem.
Instance Method Summary collapse
- #add_children(plans) ⇒ Object
- #call(options = nil) ⇒ Object
-
#get_child(name) ⇒ Object
(also: #[], #dig)
Get the child plan with the specified
name. - #has_children? ⇒ Boolean
-
#initialize(name, description = nil, filename = nil, &block) ⇒ Plan
constructor
A new instance of Plan.
Methods included from Interface
Constructor Details
#initialize(name, description = nil, filename = nil, &block) ⇒ Plan
Returns a new instance of Plan.
20 21 22 23 24 |
# File 'lib/cli/mastermind/plan.rb', line 20 def initialize(name, description=nil, filename=nil, &block) super @children = {} end |
Instance Attribute Details
#children ⇒ Object (readonly)
Used in the interactive plan selector to display child plans
10 11 12 |
# File 'lib/cli/mastermind/plan.rb', line 10 def children @children end |
Class Method Details
.load(filename) ⇒ Object
Loads a particular plan from the filesystem.
14 15 16 17 18 |
# File 'lib/cli/mastermind/plan.rb', line 14 def self.load(filename) ext = File.extname(filename) loader = Loader.find_loader(ext) loader.load(filename) end |
Instance Method Details
#add_children(plans) ⇒ Object
33 34 35 36 |
# File 'lib/cli/mastermind/plan.rb', line 33 def add_children(plans) raise InvalidPlanError, 'Cannot add child plans to a plan with an action' unless @block.nil? plans.each(&method(:incorporate_plan)) end |
#call(options = nil) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/cli/mastermind/plan.rb', line 42 def call(=nil) case @block.arity when 1, -1 then instance_exec(, &@block) else instance_exec(&@block) end end |
#get_child(name) ⇒ Object Also known as: [], dig
Get the child plan with the specified name
27 28 29 |
# File 'lib/cli/mastermind/plan.rb', line 27 def get_child(name) @children[name] end |
#has_children? ⇒ Boolean
38 39 40 |
# File 'lib/cli/mastermind/plan.rb', line 38 def has_children? @children.any? end |