Sha256: 8791f255aff18d194d085bde1275a9e906a4a71e5794a673f08c52a4e4b52d1e

Contents?: true

Size: 717 Bytes

Versions: 8

Compression:

Stored size: 717 Bytes

Contents

class Fanforce::CLI::Plugins

  @@dirs = nil

  def self.dir_names
    @@dirs ||= Dir.chdir(Fanforce::CLI::DIR) do Dir['*/'].inject([]) do |dirs, d|
      d = d.gsub('/', '')
      (d =~ /^([a-z0-9-]+)\/?$/) ? dirs << d : dirs
    end end
  end

  def self.dirs
    dir_names.inject([]) do |result, d|
      result << "#{Fanforce::CLI::DIR}/#{d}"
    end
  end

  def self.each(&block)
    processed_count = 0
    total_count = dir_names.size
    dir_names.each do |d|
      processed_count += 1
      plugin = Fanforce::CLI::Plugin.load("#{Fanforce::CLI::DIR}/#{d}")
      Dir.chdir(plugin.dir) { block.call(plugin, processed_count, total_count) }
    end
  end

  def self.total_count
    dir_names.size
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fanforce-cli-2.0.0.rc13 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc12 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc11 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc10 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc9 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc8 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc7 lib/fanforce/cli/plugins.rb
fanforce-cli-2.0.0.rc6 lib/fanforce/cli/plugins.rb