class LaunchBase::Plugin

Public Class Methods

class_name() click to toggle source
# File lib/launch_base/plugin.rb, line 56
def self.class_name
  name
    .split('::')
    .last
end
command_line_flag() click to toggle source
# File lib/launch_base/plugin.rb, line 48
def self.command_line_flag
  "with-#{plugin_name.tr('_', '-')}"
end
description() click to toggle source
# File lib/launch_base/plugin.rb, line 26
def self.description
  to_s
end
each_plugin(&block) click to toggle source
# File lib/launch_base/plugin.rb, line 40
def self.each_plugin(&block)
  @plugins.each(&block)
end
inherited(child_class) click to toggle source
# File lib/launch_base/plugin.rb, line 30
def self.inherited(child_class)
  plugin_name = child_class.plugin_name
  register(plugin_name, child_class)
end
install(destination_root:) click to toggle source
# File lib/launch_base/plugin.rb, line 22
def self.install(destination_root:)
  new([], {}, destination_root: destination_root).run_install
end
method_added(method_sym) click to toggle source
Calls superclass method
# File lib/launch_base/plugin.rb, line 7
def self.method_added(method_sym)
  super unless method_sym == :install
end
plugin_name() click to toggle source
# File lib/launch_base/plugin.rb, line 44
def self.plugin_name
  to_snake_case(class_name)
end
register(name, plugin) click to toggle source
# File lib/launch_base/plugin.rb, line 35
def self.register(name, plugin)
  @plugins ||= {}
  @plugins[name] = plugin
end
to_snake_case(str) click to toggle source
# File lib/launch_base/plugin.rb, line 62
def self.to_snake_case(str)
  str
    .gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
    .gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .tr('-', '_')
    .downcase
end

Public Instance Methods

class_name() click to toggle source
# File lib/launch_base/plugin.rb, line 52
def class_name
  self.class.class_name
end
run_install() click to toggle source
# File lib/launch_base/plugin.rb, line 16
def run_install
  say "Install #{class_name} module"
  install
  say "Successfully installed #{class_name} module"
end
touch(file_path) click to toggle source
# File lib/launch_base/plugin.rb, line 11
def touch(file_path)
  full_path = File.join(destination_root, file_path)
  FileUtils.touch(full_path)
end