module HammerCLIForeman::AssociatingCommands::CommandExtension
Public Instance Methods
base_name(cls)
click to toggle source
# File lib/hammer_cli_foreman/associating_commands.rb, line 31 def base_name(cls) cls.name.split("::")[-1] end
extend_command(base_command)
click to toggle source
# File lib/hammer_cli_foreman/associating_commands.rb, line 6 def extend_command(base_command) commands = self.constants.map {|c| self.const_get(c)}.select {|c| c < HammerCLI::AbstractCommand } commands.each do |cmd| plug_command(cmd, base_command) end end
plug_command(command, base_command)
click to toggle source
# File lib/hammer_cli_foreman/associating_commands.rb, line 14 def plug_command(command, base_command) cmd_name = base_name(command) base_name = base_name(base_command) name = base_name + cmd_name cmd_cls = Class.new(command) base_command.const_set(name, cmd_cls) cmd_cls.resource(base_command.resource.name) cmd_cls.desc(command.desc) #TODO: update messages to inherit from parents cmd_cls.success_message(command.success_message) cmd_cls.failure_message(command.failure_message) cmd_cls.build_options end