Class: Commands::Install
- Defined in:
- railties/lib/rails/commands/plugin.rb
Instance Method Summary collapse
- #determine_install_method ⇒ Object
-
#initialize(base_command) ⇒ Install
constructor
A new instance of Install.
- #options ⇒ Object
- #parse!(args) ⇒ Object
Constructor Details
#initialize(base_command) ⇒ Install
Returns a new instance of Install.
352 353 354 355 356 |
# File 'railties/lib/rails/commands/plugin.rb', line 352 def initialize(base_command) @base_command = base_command @method = :http @options = { :quiet => false, :revision => nil, :force => false } end |
Instance Method Details
#determine_install_method ⇒ Object
388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 |
# File 'railties/lib/rails/commands/plugin.rb', line 388 def determine_install_method best = @base_command.environment.best_install_method @method = :http if best == :http and @method == :export case when (best == :http and @method != :http) msg = "Cannot install using subversion because `svn' cannot be found in your PATH" when (best == :export and (@method != :export and @method != :http)) msg = "Cannot install using #{@method} because this project is not under subversion." when (best != :externals and @method == :externals) msg = "Cannot install using externals because vendor/plugins is not under subversion." end if msg puts msg exit 1 end @method end |
#options ⇒ Object
358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 |
# File 'railties/lib/rails/commands/plugin.rb', line 358 def OptionParser.new do |o| o.set_summary_indent(' ') o. = "Usage: #{@base_command.script_name} install PLUGIN [PLUGIN [PLUGIN] ...]" o.define_head "Install one or more plugins." o.separator "" o.separator "Options:" o.on( "-x", "--externals", "Use svn:externals to grab the plugin.", "Enables plugin updates and plugin versioning.") { |v| @method = :externals } o.on( "-o", "--checkout", "Use svn checkout to grab the plugin.", "Enables updating but does not add a svn:externals entry.") { |v| @method = :checkout } o.on( "-e", "--export", "Use svn export to grab the plugin.", "Exports the plugin, allowing you to check it into your local repository. Does not enable updates or add an svn:externals entry.") { |v| @method = :export } o.on( "-q", "--quiet", "Suppresses the output from installation.", "Ignored if -v is passed (rails plugin -v install ...)") { |v| @options[:quiet] = true } o.on( "-r REVISION", "--revision REVISION", "Checks out the given revision from subversion or git.", "Ignored if subversion/git is not used.") { |v| @options[:revision] = v } o.on( "-f", "--force", "Reinstalls a plugin if it's already installed.") { |v| @options[:force] = true } o.separator "" o.separator "You can specify plugin names as given in 'plugin list' output or absolute URLs to " o.separator "a plugin repository." end end |
#parse!(args) ⇒ Object
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 |
# File 'railties/lib/rails/commands/plugin.rb', line 406 def parse!(args) .parse!(args) if args.blank? puts exit 1 end environment = @base_command.environment install_method = determine_install_method puts "Plugins will be installed using #{install_method}" if $verbose args.each do |name| ::Plugin.find(name).install(install_method, @options) end rescue StandardError => e puts "Plugin not found: #{args.inspect}" puts e.inspect if $verbose exit 1 end |