Sha256: 3f7a952ad7f22f569fad3142222669689d399a2419446273e9d309a0f71b8593

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

require 'find'
require 'apps/app_server/lib/app'
require 'apps/app_server/lib/git_app'

module Spider
    
    module AppServer
        
        def self.apps
            @apps ||= scan
        end
        
        def self.rescan
            @apps = scan
        end
    
        def self.scan
            apps = []
            self.paths.each do |path|
                apps += scan_path(path)
            end
            apps
        end
        
        def self.scan_path(path)
            apps = []
            git_repos = search_git(path)
            git_repos.each do |p|
                app = GitApp.new(p)
                apps << app if app.spec
            end
            apps
        end
        
        def self.search_git(path)
            found = []
            Find.find(path) do |p|
                if File.directory?(p)
                    if File.directory?("#{p}/objects") && File.directory?("#{p}/info") && File.file?("#{p}/HEAD")
                        found << p
                        Find.prune
                    end
                end
            end
            found
        end
        
        def self.search_dirs(path)
            Dir.glob("#{path}/**/_init.rb").each do |f|
                found << File.dirname(f)
            end
        end
        
        def self.paths
            Spider.conf.get('app_server.search_paths')
        end
        
    end
    
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spiderfw-0.5.13 apps/app_server/app_server.rb
spiderfw-0.5.12 apps/app_server/app_server.rb
spiderfw-0.5.11 apps/app_server/app_server.rb
spiderfw-0.5.10 apps/app_server/app_server.rb