Class | Plugin |
In: |
vendor/rails/railties/lib/commands/plugin.rb
|
Parent: | Object |
name | [R] | |
uri | [R] |
# File vendor/rails/railties/lib/commands/plugin.rb, line 153 153: def self.find(name) 154: name =~ /\// ? new(name) : Repositories.instance.find_plugin(name) 155: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 148 148: def initialize(uri, name=nil) 149: @uri = uri 150: guess_name(uri) 151: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 165 165: def git_url? 166: @uri =~ /^git:\/\// || @uri =~ /\.git$/ 167: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 206 206: def info 207: tmp = "#{rails_env.root}/_tmp_about.yml" 208: if svn_url? 209: cmd = "svn export #{@uri} \"#{rails_env.root}/#{tmp}\"" 210: puts cmd if $verbose 211: system(cmd) 212: end 213: open(svn_url? ? tmp : File.join(@uri, 'about.yml')) do |stream| 214: stream.read 215: end rescue "No about.yml found in #{uri}" 216: ensure 217: FileUtils.rm_rf tmp if svn_url? 218: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 174 174: def install(method=nil, options = {}) 175: method ||= rails_env.best_install_method? 176: if :http == method 177: method = :export if svn_url? 178: method = :clone if git_url? 179: end 180: 181: uninstall if installed? and options[:force] 182: 183: unless installed? 184: send("install_using_#{method}", options) 185: run_install_hook 186: else 187: puts "already installed: #{name} (#{uri}). pass --force to reinstall" 188: end 189: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 169 169: def installed? 170: File.directory?("#{rails_env.root}/vendor/plugins/#{name}") \ 171: or rails_env.externals.detect{ |name, repo| self.uri == repo } 172: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 161 161: def svn_url? 162: @uri =~ /svn(?:\+ssh)?:\/\/*/ 163: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 157 157: def to_s 158: "#{@name.ljust(30)}#{@uri}" 159: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 191 191: def uninstall 192: path = "#{rails_env.root}/vendor/plugins/#{name}" 193: if File.directory?(path) 194: puts "Removing 'vendor/plugins/#{name}'" if $verbose 195: run_uninstall_hook 196: rm_r path 197: else 198: puts "Plugin doesn't exist: #{path}" 199: end 200: # clean up svn:externals 201: externals = rails_env.externals 202: externals.reject!{|n,u| name == n or name == u} 203: rails_env.externals = externals 204: end