Class Repositories
In: railties/lib/commands/plugin.rb
Parent: Object

Methods

add   all   defaults   each   each   exist?   find_home   find_plugin   instance   load!   new   remove   save  

Included Modules

Enumerable

Public Class methods

[Source]

# File railties/lib/commands/plugin.rb, line 358
  def self.each(&block)
    self.instance.each(&block)
  end

[Source]

# File railties/lib/commands/plugin.rb, line 354
  def self.instance
    @instance ||= Repositories.new
  end

[Source]

# File railties/lib/commands/plugin.rb, line 276
  def initialize(cache_file = File.join(find_home, ".rails-plugin-sources"))
    @cache_file = File.expand_path(cache_file)
    load!
  end

Public Instance methods

[Source]

# File railties/lib/commands/plugin.rb, line 285
  def add(uri)
    unless find{|repo| repo.uri == uri }
      @repositories.push(Repository.new(uri)).last
    end
  end

[Source]

# File railties/lib/commands/plugin.rb, line 299
  def all
    @repositories
  end

[Source]

# File railties/lib/commands/plugin.rb, line 329
  def defaults
    "http://dev.rubyonrails.com/svn/rails/plugins/\n"
  end

[Source]

# File railties/lib/commands/plugin.rb, line 281
  def each(&block)
    @repositories.each(&block)
  end

[Source]

# File railties/lib/commands/plugin.rb, line 295
  def exist?(uri)
    @repositories.detect{|repo| repo.uri == uri }
  end

[Source]

# File railties/lib/commands/plugin.rb, line 336
  def find_home
    ['HOME', 'USERPROFILE'].each do |homekey|
      return ENV[homekey] if ENV[homekey]
    end
    if ENV['HOMEDRIVE'] && ENV['HOMEPATH']
      return "#{ENV['HOMEDRIVE']}:#{ENV['HOMEPATH']}"
    end
    begin
      File.expand_path("~")
    rescue StandardError => ex
      if File::ALT_SEPARATOR
        "C:/"
      else
        "/"
      end
    end
  end

[Source]

# File railties/lib/commands/plugin.rb, line 303
  def find_plugin(name)
    @repositories.each do |repo|
      repo.each do |plugin|
        return plugin if plugin.name == name
      end
    end
    return nil
  end

[Source]

# File railties/lib/commands/plugin.rb, line 312
  def load!
    contents = File.exist?(@cache_file) ? File.read(@cache_file) : defaults
    contents = defaults if contents.empty?
    @repositories = contents.split(/\n/).reject do |line|
      line =~ /^\s*#/ or line =~ /^\s*$/
    end.map { |source| Repository.new(source.strip) }
  end

[Source]

# File railties/lib/commands/plugin.rb, line 291
  def remove(uri)
    @repositories.reject!{|repo| repo.uri == uri}
  end

[Source]

# File railties/lib/commands/plugin.rb, line 320
  def save
    File.open(@cache_file, 'w') do |f|
      each do |repo|
        f.write(repo.uri)
        f.write("\n")
      end
    end
  end

[Validate]