Methods
B
D
E
F
I
N
U
Attributes
[R] root
Class Public methods
default()
# File railties/lib/commands/plugin.rb, line 83
def self.default
  @default ||= find
end
default=(rails_env)
# File railties/lib/commands/plugin.rb, line 87
def self.default=(rails_env)
  @default = rails_env
end
find(dir=nil)
# File railties/lib/commands/plugin.rb, line 75
def self.find(dir=nil)
  dir ||= pwd
  while dir.length > 1
    return new(dir) if File.exist?(File.join(dir, 'config', 'environment.rb'))
    dir = File.dirname(dir)
  end
end
new(dir)
# File railties/lib/commands/plugin.rb, line 71
def initialize(dir)
  @root = dir
end
Instance Public methods
best_install_method()
# File railties/lib/commands/plugin.rb, line 125
def best_install_method
  return :http unless use_svn?
  case
    when use_externals? then :externals
    when use_checkout? then :checkout
    else :export
  end
end
externals()
# File railties/lib/commands/plugin.rb, line 134
def externals
  return [] unless use_externals?
  ext = %xsvn propget svn:externals "#{root}/vendor/plugins"`
  lines = ext.respond_to?(:lines) ? ext.lines : ext
  lines.reject{ |line| line.strip == '' }.map do |line|
    line.strip.split(/\s+/, 2)
  end
end
externals=(items)
# File railties/lib/commands/plugin.rb, line 143
def externals=(items)
  unless items.is_a? String
    items = items.map{|name,uri| "#{name.ljust(29)} #{uri.chomp('/')}"}.join("\n")
  end
  Tempfile.open("svn-set-prop") do |file|
    file.write(items)
    file.flush
    system("svn propset -q svn:externals -F \"#{file.path}\" \"#{root}/vendor/plugins\"")
  end
end
install(name_uri_or_plugin)
# File railties/lib/commands/plugin.rb, line 91
def install(name_uri_or_plugin)
  if name_uri_or_plugin.is_a? String
    if name_uri_or_plugin =~ /:\/\//
      plugin = Plugin.new(name_uri_or_plugin)
    else
      plugin = Plugins[name_uri_or_plugin]
    end
  else
    plugin = name_uri_or_plugin
  end
  unless plugin.nil?
    plugin.install
  else
    puts "Plugin not found: #{name_uri_or_plugin}"
  end
end
use_checkout?()
# File railties/lib/commands/plugin.rb, line 118
def use_checkout?
  # this is a bit of a guess. we assume that if the rails environment
  # is under subversion then they probably want the plugin checked out
  # instead of exported. This can be overridden on the command line
  File.directory?("#{root}/.svn")
end
use_externals?()
# File railties/lib/commands/plugin.rb, line 114
def use_externals?
  use_svn? && File.directory?("#{root}/vendor/plugins/.svn")
end
use_svn?()
# File railties/lib/commands/plugin.rb, line 108
def use_svn?
  require 'active_support/core_ext/kernel'
  silence_stderr {%xsvn --version` rescue nil}
  !$?.nil? && $?.success?
end