class Tasking::Namespace
Attributes
name[R]
options[R]
Public Class Methods
add_namespace( ns )
click to toggle source
# File lib/tasking/namespace.rb, line 14 def self.add_namespace( ns ) namespaces[ns.name] = ns end
all()
click to toggle source
# File lib/tasking/namespace.rb, line 10 def self.all namespaces.values end
find_namespace( name )
click to toggle source
# File lib/tasking/namespace.rb, line 18 def self.find_namespace( name ) namespaces[name] end
find_or_create( name, options = {} )
click to toggle source
# File lib/tasking/namespace.rb, line 33 def self.find_or_create( name, options = {} ) find_namespace( name ) || new( name, options ) end
find_task( full_name )
click to toggle source
# File lib/tasking/namespace.rb, line 27 def self.find_task( full_name ) namespace_name, _, task_name = full_name.rpartition( '::' ) self.find_task_in_namespace( namespace_name, task_name ) end
find_task_in_namespace( ns_name, task_name )
click to toggle source
# File lib/tasking/namespace.rb, line 22 def self.find_task_in_namespace( ns_name, task_name ) ns = find_namespace( ns_name ) ns&.find_task( task_name ) end
new( name, options = {} )
click to toggle source
# File lib/tasking/namespace.rb, line 37 def initialize( name, options = {} ) @tasks = {} @name = name @options = Options.build( options ) self.class.add_namespace( self ) end
Private Class Methods
namespaces()
click to toggle source
# File lib/tasking/namespace.rb, line 5 def self.namespaces @namespaces ||= {} end
Public Instance Methods
execute( options = {}, &block )
click to toggle source
# File lib/tasking/namespace.rb, line 55 def execute( options = {}, &block ) @options.merge!( options ) block&.call end
find_task( name )
click to toggle source
# File lib/tasking/namespace.rb, line 72 def find_task( name ) @tasks[name] end
merge_options( options )
click to toggle source
# File lib/tasking/namespace.rb, line 60 def merge_options( options ) @options.merge!( options ) end
parent_namespace()
click to toggle source
# File lib/tasking/namespace.rb, line 49 def parent_namespace parent_name, _, _ = @name.rpartition( '::' ) parent_name.empty? ? nil : self.class.find_namespace( parent_name ) end
register_task( task )
click to toggle source
# File lib/tasking/namespace.rb, line 64 def register_task( task ) @tasks[task.name] = task end
tasks()
click to toggle source
# File lib/tasking/namespace.rb, line 45 def tasks @tasks.values end
unregister_task( task )
click to toggle source
# File lib/tasking/namespace.rb, line 68 def unregister_task( task ) @tasks.delete( task.name ) end