Class: Dry::CLI::CommandRegistry::Node Private
- Inherits:
-
Object
- Object
- Dry::CLI::CommandRegistry::Node
- Defined in:
- lib/dry/cli/command_registry.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Node of the registry
Instance Attribute Summary collapse
- #after_callbacks ⇒ Object readonly private
- #aliases ⇒ Object readonly private
- #before_callbacks ⇒ Object readonly private
- #children ⇒ Object readonly private
- #command ⇒ Object readonly private
- #parent ⇒ Object readonly private
Instance Method Summary collapse
- #alias!(key, child) ⇒ Object private
- #aliases!(aliases) ⇒ Object private
- #children? ⇒ Boolean private
-
#initialize(parent = nil) ⇒ Node
constructor
private
A new instance of Node.
- #leaf!(command) ⇒ Object private
- #leaf? ⇒ Boolean private
- #lookup(token) ⇒ Object private
- #put(parent, key) ⇒ Object private
- #subcommands!(command) ⇒ Object private
Constructor Details
#initialize(parent = nil) ⇒ Node
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Node.
107 108 109 110 111 112 113 114 115 |
# File 'lib/dry/cli/command_registry.rb', line 107 def initialize(parent = nil) @parent = parent @children = {} @aliases = {} @command = nil @before_callbacks = Chain.new @after_callbacks = Chain.new end |
Instance Attribute Details
#after_callbacks ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
103 104 105 |
# File 'lib/dry/cli/command_registry.rb', line 103 def after_callbacks @after_callbacks end |
#aliases ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
91 92 93 |
# File 'lib/dry/cli/command_registry.rb', line 91 def aliases @aliases end |
#before_callbacks ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
99 100 101 |
# File 'lib/dry/cli/command_registry.rb', line 99 def before_callbacks @before_callbacks end |
#children ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
87 88 89 |
# File 'lib/dry/cli/command_registry.rb', line 87 def children @children end |
#command ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
95 96 97 |
# File 'lib/dry/cli/command_registry.rb', line 95 def command @command end |
#parent ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
83 84 85 |
# File 'lib/dry/cli/command_registry.rb', line 83 def parent @parent end |
Instance Method Details
#alias!(key, child) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
144 145 146 |
# File 'lib/dry/cli/command_registry.rb', line 144 def alias!(key, child) @aliases[key] = child end |
#aliases!(aliases) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
150 151 152 153 154 |
# File 'lib/dry/cli/command_registry.rb', line 150 def aliases!(aliases) aliases.each do |a| parent.alias!(a, self) end end |
#children? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
164 165 166 |
# File 'lib/dry/cli/command_registry.rb', line 164 def children? children.any? end |
#leaf!(command) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
131 132 133 |
# File 'lib/dry/cli/command_registry.rb', line 131 def leaf!(command) @command = command end |
#leaf? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
158 159 160 |
# File 'lib/dry/cli/command_registry.rb', line 158 def leaf? !command.nil? end |
#lookup(token) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
125 126 127 |
# File 'lib/dry/cli/command_registry.rb', line 125 def lookup(token) children[token] || aliases[token] end |
#put(parent, key) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
119 120 121 |
# File 'lib/dry/cli/command_registry.rb', line 119 def put(parent, key) children[key] ||= self.class.new(parent) end |
#subcommands!(command) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
137 138 139 140 |
# File 'lib/dry/cli/command_registry.rb', line 137 def subcommands!(command) command_class = command.is_a?(Class) ? command : command.class command_class.subcommands = children end |