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 199 199: def info 200: tmp = "#{rails_env.root}/_tmp_about.yml" 201: if svn_url? 202: cmd = "svn export #{@uri} \"#{rails_env.root}/#{tmp}\"" 203: puts cmd if $verbose 204: system(cmd) 205: end 206: open(svn_url? ? tmp : File.join(@uri, 'about.yml')) do |stream| 207: stream.read 208: end rescue "No about.yml found in #{uri}" 209: ensure 210: FileUtils.rm_rf tmp if svn_url? 211: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 170 170: def install(method=nil, options = {}) 171: method ||= rails_env.best_install_method? 172: method = :export if method == :http and svn_url? 173: 174: uninstall if installed? and options[:force] 175: 176: unless installed? 177: send("install_using_#{method}", options) 178: run_install_hook 179: else 180: puts "already installed: #{name} (#{uri}). pass --force to reinstall" 181: end 182: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 165 165: def installed? 166: File.directory?("#{rails_env.root}/vendor/plugins/#{name}") \ 167: or rails_env.externals.detect{ |name, repo| self.uri == repo } 168: 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 184 184: def uninstall 185: path = "#{rails_env.root}/vendor/plugins/#{name}" 186: if File.directory?(path) 187: puts "Removing 'vendor/plugins/#{name}'" if $verbose 188: run_uninstall_hook 189: rm_r path 190: else 191: puts "Plugin doesn't exist: #{path}" 192: end 193: # clean up svn:externals 194: externals = rails_env.externals 195: externals.reject!{|n,u| name == n or name == u} 196: rails_env.externals = externals 197: end