class Pleiades::Command::Factory
Public Class Methods
new(event, path_info)
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 11 def initialize(event, path_info) @event = event @path_info = path_info end
production(event, path_info)
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 6 def self.production(event, path_info) @factory = new(event, path_info) @factory.operate end
Public Instance Methods
operate()
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 16 def operate executor_class(decorate_command(command_class)) end
Private Instance Methods
command_class()
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 22 def command_class klass_path = @path_info[:command_path] || Pleiades::Config.command.default command_constantize(klass_path).new(@event) end
command_constantize(path)
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 28 def command_constantize(path) path.split('/').map(&:camelize).join('::').constantize end
decorate_command(command)
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 39 def decorate_command(command) concerns = @path_info[:concern].map(&:constantize) command.class_eval do concerns.each do |concern| include concern end end command end
executor_class(command)
click to toggle source
# File lib/pleiades/core/command/factory.rb, line 32 def executor_class(command) @path_info[:executor].constantize.new( command, @path_info[:call_method] ) end