Sha256: a03375251455c0c34a71dc0ddf518b7d8058c0ac0b775ba8642b6d08798cec46

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

# coding: utf-8

module UzuUzu
  module Service
    AppsLoaded = {}
    #
    #
    #
    def const_missing(id)
      AppsLoaded[::UzuUzu.current.name] ||= {}
      service = AppsLoaded[::UzuUzu.current.name][id.to_sym]
      unless service
        require_base = self.name.gsub(/::/, '/').sub(/^UzuUzu/, 'uzuuzu').snake_case
        service_name = ::Environments.current.service_name || ''
        service_name = "#{service_name}/" unless service_name.blank?
        require "#{require_base}/#{service_name}#{id.to_s.snake_case}"
        service = const_get("#{service_name.camel_case}").const_get("#{id}")
        service.apploaded if service.respond_to?(:apsploaded)
        AppsLoaded[::UzuUzu.current.name][id.to_sym] = service
      end
      if service
        service
      else
        super(id)
      end
    rescue => e
      ::UzuUzu.logger.debug e
      ::UzuUzu.logger.debug e.backtrace
      super(id)
    end
    
    #
    #
    #
    def method_missing(id)
      service = const_missing(id.to_s.camel_case)
      if service
        service.new
      else
        super(id)
      end
    rescue => e
      ::UzuUzu.logger.debug e
      ::UzuUzu.logger.debug e.backtrace
      super(id)
    end
    
    extend self
  end # Service
end # UzuUzu

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
uzuuzu-core-0.0.15 lib/uzuuzu/service.rb
uzuuzu-core-0.0.14 lib/uzuuzu/service.rb
uzuuzu-core-0.0.13 lib/uzuuzu/service.rb
uzuuzu-core-0.0.12 lib/uzuuzu/service.rb