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

Methods

environment=   new   options   parse!   parse!   split_args  

Attributes

environment  [R] 
script_name  [R] 
sources  [R] 

Public Class methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 403
403:     def initialize
404:       @environment = RailsEnvironment.default
405:       @rails_root = RailsEnvironment.default.root
406:       @script_name = File.basename($0) 
407:       @sources = []
408:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 492
492:     def self.parse!(args=ARGV)
493:       Plugin.new.parse!(args)
494:     end

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 410
410:     def environment=(value)
411:       @environment = value
412:       RailsEnvironment.default = value
413:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 415
415:     def options
416:       OptionParser.new do |o|
417:         o.set_summary_indent('  ')
418:         o.banner =    "Usage: #{@script_name} [OPTIONS] command"
419:         o.define_head "Rails plugin manager."
420:         
421:         o.separator ""        
422:         o.separator "GENERAL OPTIONS"
423:         
424:         o.on("-r", "--root=DIR", String,
425:              "Set an explicit rails app directory.",
426:              "Default: #{@rails_root}") { |@rails_root| self.environment = RailsEnvironment.new(@rails_root) }
427:         o.on("-s", "--source=URL1,URL2", Array,
428:              "Use the specified plugin repositories instead of the defaults.") { |@sources|}
429:         
430:         o.on("-v", "--verbose", "Turn on verbose output.") { |$verbose| }
431:         o.on("-h", "--help", "Show this help message.") { puts o; exit }
432:         
433:         o.separator ""
434:         o.separator "COMMANDS"
435:         
436:         o.separator "  discover   Discover plugin repositories."
437:         o.separator "  list       List available plugins."
438:         o.separator "  install    Install plugin(s) from known repositories or URLs."
439:         o.separator "  update     Update installed plugins."
440:         o.separator "  remove     Uninstall plugins."
441:         o.separator "  source     Add a plugin source repository."
442:         o.separator "  unsource   Remove a plugin repository."
443:         o.separator "  sources    List currently configured plugin repositories."
444:         
445:         o.separator ""
446:         o.separator "EXAMPLES"
447:         o.separator "  Install a plugin:"
448:         o.separator "    #{@script_name} install continuous_builder\n"
449:         o.separator "  Install a plugin from a subversion URL:"
450:         o.separator "    #{@script_name} install http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder\n"
451:         o.separator "  Install a plugin and add a svn:externals entry to vendor/plugins"
452:         o.separator "    #{@script_name} install -x continuous_builder\n"
453:         o.separator "  List all available plugins:"
454:         o.separator "    #{@script_name} list\n"
455:         o.separator "  List plugins in the specified repository:"
456:         o.separator "    #{@script_name} list --source=http://dev.rubyonrails.com/svn/rails/plugins/\n"
457:         o.separator "  Discover and prompt to add new repositories:"
458:         o.separator "    #{@script_name} discover\n"
459:         o.separator "  Discover new repositories but just list them, don't add anything:"
460:         o.separator "    #{@script_name} discover -l\n"
461:         o.separator "  Add a new repository to the source list:"
462:         o.separator "    #{@script_name} source http://dev.rubyonrails.com/svn/rails/plugins/\n"
463:         o.separator "  Remove a repository from the source list:"
464:         o.separator "    #{@script_name} unsource http://dev.rubyonrails.com/svn/rails/plugins/\n"
465:         o.separator "  Show currently configured repositories:"
466:         o.separator "    #{@script_name} sources\n"        
467:       end
468:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 470
470:     def parse!(args=ARGV)
471:       general, sub = split_args(args)
472:       options.parse!(general)
473:       
474:       command = general.shift
475:       if command =~ /^(list|discover|install|source|unsource|sources|remove|update|info)$/
476:         command = Commands.const_get(command.capitalize).new(self)
477:         command.parse!(sub)
478:       else
479:         puts "Unknown command: #{command}"
480:         puts options
481:         exit 1
482:       end
483:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 485
485:     def split_args(args)
486:       left = []
487:       left << args.shift while args[0] and args[0] =~ /^-/
488:       left << args.shift if args[0]
489:       return [left, args]
490:     end

[Validate]