Sha256: 06361d92bc4e15dbe86acd0d8be9235d27e7241d54d81e15604b594b093c8fb2
Contents?: true
Size: 916 Bytes
Versions: 8
Compression:
Stored size: 916 Bytes
Contents
class Fanforce::CLI::Apps require 'singleton' require 'forwardable' include Singleton def dir_names @dirs ||= Dir.chdir($HomeDir) do Dir['*/'].inject([]) do |dirs, d| d = d.gsub('/', '') next dirs if d !~ /^(app-[a-z0-9-]+)\/?$/ next dirs << d if $Filter.blank? next dirs << d if $Filter[:dir_name].present? and $Filter[:dir_name] == d next dirs end end end def dirs dir_names.inject([]) do |result, d| result << "#{$HomeDir}/#{d}" end end def each(&block) cur_count = 0 total = dir_names.size dir_names.each do |d| cur_count += 1 app = Fanforce::CLI::App.load("#{$HomeDir}/#{d}") Dir.chdir(app.dir) { block.call(app, cur_count, total) } end end def count dir_names.size end class << self extend Forwardable def_delegators :instance, *Fanforce::CLI::Apps.instance_methods(false) end end
Version data entries
8 entries across 8 versions & 1 rubygems