Class: Tasking::Namespace
- Inherits:
-
Object
- Object
- Tasking::Namespace
- Defined in:
- lib/tasking/namespace.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
- .add_namespace(ns) ⇒ Object
- .all ⇒ Object
- .find_namespace(name) ⇒ Object
- .find_or_create(name, options = {}) ⇒ Object
- .find_task(full_name) ⇒ Object
- .find_task_in_namespace(ns_name, task_name) ⇒ Object
Instance Method Summary collapse
- #execute(options = {}, &block) ⇒ Object
- #find_task(name) ⇒ Object
-
#initialize(name, options = {}) ⇒ Namespace
constructor
A new instance of Namespace.
- #merge_options(options) ⇒ Object
- #parent_namespace ⇒ Object
- #register_task(task) ⇒ Object
- #tasks ⇒ Object
- #unregister_task(task) ⇒ Object
Constructor Details
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/tasking/namespace.rb', line 3 def name @name end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
3 4 5 |
# File 'lib/tasking/namespace.rb', line 3 def @options end |
Class Method Details
.add_namespace(ns) ⇒ Object
14 15 16 |
# File 'lib/tasking/namespace.rb', line 14 def self.add_namespace( ns ) namespaces[ns.name] = ns end |
.all ⇒ Object
10 11 12 |
# File 'lib/tasking/namespace.rb', line 10 def self.all namespaces.values end |
.find_namespace(name) ⇒ Object
18 19 20 |
# File 'lib/tasking/namespace.rb', line 18 def self.find_namespace( name ) namespaces[name] end |
.find_or_create(name, options = {}) ⇒ Object
33 34 35 |
# File 'lib/tasking/namespace.rb', line 33 def self.find_or_create( name, = {} ) find_namespace( name ) || new( name, ) end |
.find_task(full_name) ⇒ Object
27 28 29 30 31 |
# 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) ⇒ Object
22 23 24 25 |
# 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 |
Instance Method Details
#execute(options = {}, &block) ⇒ Object
55 56 57 58 |
# File 'lib/tasking/namespace.rb', line 55 def execute( = {}, &block ) @options.merge!( ) block&.call end |
#find_task(name) ⇒ Object
72 73 74 |
# File 'lib/tasking/namespace.rb', line 72 def find_task( name ) @tasks[name] end |
#merge_options(options) ⇒ Object
60 61 62 |
# File 'lib/tasking/namespace.rb', line 60 def ( ) @options.merge!( ) end |
#parent_namespace ⇒ Object
49 50 51 52 53 |
# 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) ⇒ Object
64 65 66 |
# File 'lib/tasking/namespace.rb', line 64 def register_task( task ) @tasks[task.name] = task end |
#tasks ⇒ Object
45 46 47 |
# File 'lib/tasking/namespace.rb', line 45 def tasks @tasks.values end |
#unregister_task(task) ⇒ Object
68 69 70 |
# File 'lib/tasking/namespace.rb', line 68 def unregister_task( task ) @tasks.delete( task.name ) end |