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

Version Path
fanforce-cli-1.7.1 lib/fanforce/cli/apps.rb
fanforce-cli-1.7.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.6.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.5.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.4.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.3.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.2.0 lib/fanforce/cli/apps.rb
fanforce-cli-1.1.0 lib/fanforce/cli/apps.rb