module JamesBond::Core::MissionLoader
Public Class Methods
append_default_missions(mission_list)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 35 def self.append_default_missions(mission_list) mission_list + default_missions.map do |mission_class| klass = Object.const_get(mission_class) klass.new end end
constantize_gem_name(gem_name)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 42 def self.constantize_gem_name(gem_name) class_name = (gem_name || "").split("-") .map { |split| split.split("_").collect(&:capitalize).join } .join("::") end
default_missions()
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 8 def self.default_missions @default_missions ||= %w(JamesBond::Core::HelpMission) end
default_missions=(list)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 12 def self.default_missions=(list) @default_missions = list end
generate_gem_require_name(gem_name)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 48 def self.generate_gem_require_name(gem_name) gem_name.gsub("-", "/") end
load_mission(mission_name)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 25 def self.load_mission(mission_name) gem_name = "james_bond-#{sanitize_mission_name(mission_name)}_mission" require_name = generate_gem_require_name(gem_name) constant_name = constantize_gem_name(gem_name) require require_name klass = Object.const_get(constant_name) klass.new end
load_missions(mission_names)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 16 def self.load_missions(mission_names) missions_loaded = mission_names.map do |mission_name| load_mission(mission_name) end missions_loaded = append_default_missions(missions_loaded) JamesBond::Core::MissionPool.new(mission_list: missions_loaded) end
sanitize_mission_name(mission_name)
click to toggle source
# File lib/james_bond/core/mission_loader.rb, line 52 def self.sanitize_mission_name(mission_name) mission_name.gsub(/[^0-9a-z\_\-]/i, "") end