Class Plugin
In: vendor/rails/railties/lib/commands/plugin.rb
Parent: Object

Methods

find   info   install   installed?   new   svn_url?   to_s   uninstall  

Attributes

name  [R] 
uri  [R] 

Public Class methods

[Source]

     # 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

[Source]

     # 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

Public Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 161
161:   def svn_url?
162:     @uri =~ /svn(?:\+ssh)?:\/\/*/
163:   end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 157
157:   def to_s
158:     "#{@name.ljust(30)}#{@uri}"
159:   end

[Source]

     # 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

[Validate]