Class: AptlyTaskHelper
- Inherits:
-
TaskHelper
- Object
- TaskHelper
- AptlyTaskHelper
- Defined in:
- lib/aptly_task_helper.rb
Overview
Aptly task helper
Constant Summary collapse
- NAMESPACE =
'aptly'
Instance Method Summary collapse
- #category ⇒ Object
-
#initialize ⇒ AptlyTaskHelper
constructor
A new instance of AptlyTaskHelper.
- #task(opts = {}) ⇒ Object
Constructor Details
#initialize ⇒ AptlyTaskHelper
Returns a new instance of AptlyTaskHelper.
14 15 16 17 18 19 20 |
# File 'lib/aptly_task_helper.rb', line 14 def initialize super() @category = category @supported_methods = self.class.instance_methods(false).filter { |x| x.to_s.start_with? @category }.freeze @module_prefix = "#{NAMESPACE}::" @accepted_tasks = @supported_methods.map { |x| "#{@module_prefix}#{x}" }.freeze end |
Instance Method Details
#category ⇒ Object
10 11 12 |
# File 'lib/aptly_task_helper.rb', line 10 def category raise 'Override this method in your class' end |
#task(opts = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/aptly_task_helper.rb', line 22 def task(opts = {}) task_name = opts.delete(:_task) begin case task_name when ->(n) { @accepted_tasks.include?(n) } method_name = task_name.delete_prefix(@module_prefix) result = public_send(method_name, opts) { method_name => result } else raise TaskHelper::Error.new( 'Task with this name is not found here', "#{NAMESPACE}::#{@category}/task-not-found", 'task_name' => task_name ) end rescue PuppetX::Aptly::Error => e raise TaskHelper::Error.new(e., "#{task_name}/error") end end |