module Scaffolder::ToolIndex

Public Instance Methods

[](type) click to toggle source
# File lib/scaffolder/tool_index.rb, line 14
def [](type)
  if tool_exists?(type)
    get_tool(type)
  else
    Scaffolder::Tool::Help
  end
end
get_tool(name) click to toggle source
# File lib/scaffolder/tool_index.rb, line 6
def get_tool(name)
  tools[normalise(name)]
end
tool_exists?(name) click to toggle source
# File lib/scaffolder/tool_index.rb, line 10
def tool_exists?(name)
  ! get_tool(name).nil?
end

Private Instance Methods

normalise(name) click to toggle source
# File lib/scaffolder/tool_index.rb, line 39
def normalise(name)
  name.to_s.downcase.to_sym if name
end
tool_classes() click to toggle source
# File lib/scaffolder/tool_index.rb, line 24
def tool_classes
  Scaffolder::Tool.constants.inject(Array.new) do |array,constant|
    clss = Scaffolder::Tool.const_get(constant)
    array << clss if clss.superclass == Scaffolder::Tool
    array
  end
end
tools() click to toggle source
# File lib/scaffolder/tool_index.rb, line 32
def tools
  tool_classes.inject(Hash.new) do |hash,clss|
    hash[clss.to_s.split('::').last.downcase.to_sym] = clss
    hash
  end
end