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 442
442:     def initialize
443:       @environment = RailsEnvironment.default
444:       @rails_root = RailsEnvironment.default.root
445:       @script_name = File.basename($0) 
446:       @sources = []
447:     end

[Source]

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

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 449
449:     def environment=(value)
450:       @environment = value
451:       RailsEnvironment.default = value
452:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 454
454:     def options
455:       OptionParser.new do |o|
456:         o.set_summary_indent('  ')
457:         o.banner =    "Usage: #{@script_name} [OPTIONS] command"
458:         o.define_head "Rails plugin manager."
459:         
460:         o.separator ""        
461:         o.separator "GENERAL OPTIONS"
462:         
463:         o.on("-r", "--root=DIR", String,
464:              "Set an explicit rails app directory.",
465:              "Default: #{@rails_root}") { |rails_root| @rails_root = rails_root; self.environment = RailsEnvironment.new(@rails_root) }
466:         o.on("-s", "--source=URL1,URL2", Array,
467:              "Use the specified plugin repositories instead of the defaults.") { |sources| @sources = sources}
468:         
469:         o.on("-v", "--verbose", "Turn on verbose output.") { |verbose| $verbose = verbose }
470:         o.on("-h", "--help", "Show this help message.") { puts o; exit }
471:         
472:         o.separator ""
473:         o.separator "COMMANDS"
474:         
475:         o.separator "  discover   Discover plugin repositories."
476:         o.separator "  list       List available plugins."
477:         o.separator "  install    Install plugin(s) from known repositories or URLs."
478:         o.separator "  update     Update installed plugins."
479:         o.separator "  remove     Uninstall plugins."
480:         o.separator "  source     Add a plugin source repository."
481:         o.separator "  unsource   Remove a plugin repository."
482:         o.separator "  sources    List currently configured plugin repositories."
483:         
484:         o.separator ""
485:         o.separator "EXAMPLES"
486:         o.separator "  Install a plugin:"
487:         o.separator "    #{@script_name} install continuous_builder\n"
488:         o.separator "  Install a plugin from a subversion URL:"
489:         o.separator "    #{@script_name} install http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder\n"
490:         o.separator "  Install a plugin from a git URL:"
491:         o.separator "    #{@script_name} install git://github.com/SomeGuy/my_awesome_plugin.git\n"
492:         o.separator "  Install a plugin and add a svn:externals entry to vendor/plugins"
493:         o.separator "    #{@script_name} install -x continuous_builder\n"
494:         o.separator "  List all available plugins:"
495:         o.separator "    #{@script_name} list\n"
496:         o.separator "  List plugins in the specified repository:"
497:         o.separator "    #{@script_name} list --source=http://dev.rubyonrails.com/svn/rails/plugins/\n"
498:         o.separator "  Discover and prompt to add new repositories:"
499:         o.separator "    #{@script_name} discover\n"
500:         o.separator "  Discover new repositories but just list them, don't add anything:"
501:         o.separator "    #{@script_name} discover -l\n"
502:         o.separator "  Add a new repository to the source list:"
503:         o.separator "    #{@script_name} source http://dev.rubyonrails.com/svn/rails/plugins/\n"
504:         o.separator "  Remove a repository from the source list:"
505:         o.separator "    #{@script_name} unsource http://dev.rubyonrails.com/svn/rails/plugins/\n"
506:         o.separator "  Show currently configured repositories:"
507:         o.separator "    #{@script_name} sources\n"        
508:       end
509:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 511
511:     def parse!(args=ARGV)
512:       general, sub = split_args(args)
513:       options.parse!(general)
514:       
515:       command = general.shift
516:       if command =~ /^(list|discover|install|source|unsource|sources|remove|update|info)$/
517:         command = Commands.const_get(command.capitalize).new(self)
518:         command.parse!(sub)
519:       else
520:         puts "Unknown command: #{command}"
521:         puts options
522:         exit 1
523:       end
524:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 526
526:     def split_args(args)
527:       left = []
528:       left << args.shift while args[0] and args[0] =~ /^-/
529:       left << args.shift if args[0]
530:       return [left, args]
531:     end

[Validate]