Module: Anvil::Task::Naming

Included in:
Anvil::Task, Callback
Defined in:
lib/anvil/task/naming.rb

Overview

Methods for inferring task class names from cli arguments

Instance Method Summary collapse

Instance Method Details

#description(str = nil) ⇒ Object



27
28
29
30
# File 'lib/anvil/task/naming.rb', line 27

def description(str = nil)
  return @description unless str
  @description = str
end

#from_name(task_name) ⇒ Class

Returns a ruby class from a CLI name

Parameters:

  • task_name (String)

    the CLI name for a task e.g. anvil:build

Returns:



15
16
17
18
19
20
21
# File 'lib/anvil/task/naming.rb', line 15

def from_name(task_name)
  namespaced_task     = get_namespace task_name
  camelized_task      = "#{namespaced_task.pop}_task".camelize
  camelized_namespace = "#{namespaced_task.shift}".camelize

  "#{camelized_namespace}::#{camelized_task}".constantize
end

#get_namespace(task_name) ⇒ Object



7
8
9
# File 'lib/anvil/task/naming.rb', line 7

def get_namespace(task_name)
  task_name.to_s.split ':'
end

#task_nameObject



23
24
25
# File 'lib/anvil/task/naming.rb', line 23

def task_name
  name[/(.*)Task/, 1].underscore.gsub('/', ':')
end