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