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