class RestPack::Service::Loader
Public Class Methods
load(gem_name, module_name)
click to toggle source
# File lib/restpack_service/loader.rb, line 6 def self.load(gem_name, module_name) require 'require_all' require 'restpack_serializer' require 'active_support/core_ext' service_path = self.get_service_path(caller, gem_name) require "#{service_path}/version" require "#{service_path}/configuration" require_all "#{service_path}/tasks" Modularize.create module_name Modularize.create "#{module_name}::Models" Modularize.create "#{module_name}::Serializers" Modularize.create "#{module_name}::Tasks" Modularize.create "#{module_name}::Jobs" Modularize.create "#{module_name}::Commands" require_service_module 'models', service_path require_service_module 'serializers', service_path require_service_module 'commands', service_path require_service_module 'jobs', service_path end
Private Class Methods
get_service_path(load_caller, restpack_service_name)
click to toggle source
# File lib/restpack_service/loader.rb, line 38 def self.get_service_path(load_caller, restpack_service_name) #Gets the path of the calling service : http://stackoverflow.com/questions/14772381/get-directory-of-file-that-instantiated-a-class-ruby source_file = nil load_caller.each do |s| if(s =~ /(require|require_relative)/) source_file = File.dirname(File.expand_path(s.split(':')[0])) break end end "#{source_file}/#{restpack_service_name}" end
require_service_module(module_name, service_path)
click to toggle source
# File lib/restpack_service/loader.rb, line 33 def self.require_service_module(module_name, service_path) path = "#{service_path}/#{module_name.downcase}" require_all(path) if File.directory?(path) end