Sha256: 28df8b32dabbda9709e25c6d97e41181f79da5facc29da04eb41f796a6da5746
Contents?: true
Size: 1.09 KB
Versions: 5
Compression:
Stored size: 1.09 KB
Contents
require 'pleiades/core/command/executor' module Pleiades module Command class Factory def self.production(event, path_info) @factory = new(event, path_info) @factory.operate end def initialize(event, path_info) @event = event @path_info = path_info end def operate executor_class(decorate_command(command_class)) end private def command_class klass_path = @path_info[:command_path] || Pleiades::Config.command.default command_constantize(klass_path).new(@event) end def command_constantize(path) path.split('/').map(&:camelize).join('::').constantize end def executor_class(command) @path_info[:executor].constantize.new( command, @path_info[:call_method] ) end def decorate_command(command) concerns = @path_info[:concern].map(&:constantize) command.class_eval do concerns.each do |concern| include concern end end command end end end end
Version data entries
5 entries across 5 versions & 1 rubygems