class Vop::ServiceLoader

Public Class Methods

new(plugin) click to toggle source
# File standard/services/helpers/service_loader.rb, line 5
def initialize(plugin)
  @plugin = plugin
  @op = plugin.op

  @services = []

  @plugin.inject_helpers(self)

  extend ServiceSyntax
end

Public Instance Methods

new_service(name) click to toggle source
# File standard/services/helpers/service_loader.rb, line 16
def new_service(name)
  $logger.debug "new service in #{@plugin.name}: #{name}"
  @service = Service.new(@plugin, name)
  $logger.debug "service plugin : #{@service.plugin.name}"
  @services << @service
  @service
end
read_sources(named_sources) click to toggle source
# File standard/services/helpers/service_loader.rb, line 24
def read_sources(named_sources)
  # reads a hash of <name> => <source string>
  named_sources.each do |name, source|

    new_service(name)

    begin
      self.instance_eval(source[:code], source[:file_name])
    rescue SyntaxError => detail
      raise Errors::ServiceLoadError.new("problem loading service #{name}", detail.backtrace.join("\n"))
    end
  end

  @services
end