Module: WIP::Runner::Commands
- Defined in:
- lib/wip/runner/commands.rb
Class Method Summary collapse
- .explicit ⇒ Object
- .implicit ⇒ Object
- .locate(name, namespace = nil) ⇒ Object
- .namespace ⇒ Object
- .within(namespace) ⇒ Object
Class Method Details
.explicit ⇒ Object
32 33 34 35 36 |
# File 'lib/wip/runner/commands.rb', line 32 def explicit @explicit ||= begin namespace.const_get(:Commands) if namespace.const_defined?(:Commands) end end |
.implicit ⇒ Object
28 29 30 |
# File 'lib/wip/runner/commands.rb', line 28 def implicit WIP::Runner::CLI end |
.locate(name, namespace = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/wip/runner/commands.rb', line 5 def locate(name, namespace = nil) return nil if name.nil? || name.match(/^-/) command = name.split('-').map(&:capitalize).join namespaces = namespace ? [namespace] : [explicit, implicit] namespaces.each do |ns| return ns.const_get(command) if ns && ns.const_defined?(command) end raise InvalidCommand, name end |
.namespace ⇒ Object
38 39 40 |
# File 'lib/wip/runner/commands.rb', line 38 def namespace WIP::Runner::CLI.namespace end |
.within(namespace) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/wip/runner/commands.rb', line 16 def within(namespace) return [] if namespace.nil? namespace.constants .collect { |const| namespace.const_get(const) } .select { |command| command < Command # is a subclass of } end |