Methods
Attributes
[R] name
[R] uri
Public Class methods
find(name)
     # File railties/lib/commands/plugin.rb, line 164
164:   def self.find(name)
165:     name =~ /\// ? new(name) : Repositories.instance.find_plugin(name)
166:   end
new(uri, name=nil)
     # File railties/lib/commands/plugin.rb, line 159
159:   def initialize(uri, name=nil)
160:     @uri = uri
161:     guess_name(uri)
162:   end
Public Instance methods
git_url?()
     # File railties/lib/commands/plugin.rb, line 176
176:   def git_url?
177:     @uri =~ /^git:\/\// || @uri =~ /\.git$/
178:   end
info()
     # File railties/lib/commands/plugin.rb, line 217
217:   def info
218:     tmp = "#{rails_env.root}/_tmp_about.yml"
219:     if svn_url?
220:       cmd = "svn export #{@uri} \"#{rails_env.root}/#{tmp}\""
221:       puts cmd if $verbose
222:       system(cmd)
223:     end
224:     open(svn_url? ? tmp : File.join(@uri, 'about.yml')) do |stream|
225:       stream.read
226:     end rescue "No about.yml found in #{uri}"
227:   ensure
228:     FileUtils.rm_rf tmp if svn_url?
229:   end
install(method=nil, options = {})
     # File railties/lib/commands/plugin.rb, line 185
185:   def install(method=nil, options = {})
186:     method ||= rails_env.best_install_method?
187:     if :http == method
188:       method = :export if svn_url?
189:       method = :git    if git_url?
190:     end
191: 
192:     uninstall if installed? and options[:force]
193: 
194:     unless installed?
195:       send("install_using_#{method}", options)
196:       run_install_hook
197:     else
198:       puts "already installed: #{name} (#{uri}).  pass --force to reinstall"
199:     end
200:   end
installed?()
     # File railties/lib/commands/plugin.rb, line 180
180:   def installed?
181:     File.directory?("#{rails_env.root}/vendor/plugins/#{name}") \
182:       or rails_env.externals.detect{ |name, repo| self.uri == repo }
183:   end
svn_url?()
     # File railties/lib/commands/plugin.rb, line 172
172:   def svn_url?
173:     @uri =~ /svn(?:\+ssh)?:\/\/*/
174:   end
to_s()
     # File railties/lib/commands/plugin.rb, line 168
168:   def to_s
169:     "#{@name.ljust(30)}#{@uri}"
170:   end
uninstall()
     # File railties/lib/commands/plugin.rb, line 202
202:   def uninstall
203:     path = "#{rails_env.root}/vendor/plugins/#{name}"
204:     if File.directory?(path)
205:       puts "Removing 'vendor/plugins/#{name}'" if $verbose
206:       run_uninstall_hook
207:       rm_r path
208:     else
209:       puts "Plugin doesn't exist: #{path}"
210:     end
211:     # clean up svn:externals
212:     externals = rails_env.externals
213:     externals.reject!{|n,u| name == n or name == u}
214:     rails_env.externals = externals
215:   end