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 425
425:     def initialize
426:       @environment = RailsEnvironment.default
427:       @rails_root = RailsEnvironment.default.root
428:       @script_name = File.basename($0) 
429:       @sources = []
430:     end

[Source]

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

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 432
432:     def environment=(value)
433:       @environment = value
434:       RailsEnvironment.default = value
435:     end

[Source]

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

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 494
494:     def parse!(args=ARGV)
495:       general, sub = split_args(args)
496:       options.parse!(general)
497:       
498:       command = general.shift
499:       if command =~ /^(list|discover|install|source|unsource|sources|remove|update|info)$/
500:         command = Commands.const_get(command.capitalize).new(self)
501:         command.parse!(sub)
502:       else
503:         puts "Unknown command: #{command}"
504:         puts options
505:         exit 1
506:       end
507:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 509
509:     def split_args(args)
510:       left = []
511:       left << args.shift while args[0] and args[0] =~ /^-/
512:       left << args.shift if args[0]
513:       return [left, args]
514:     end

[Validate]