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

Methods

new   options   parse!  

Public Class methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 499
499:     def initialize(base_command)
500:       @base_command = base_command
501:       @sources = []
502:       @local = false
503:       @remote = true
504:     end

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 506
506:     def options
507:       OptionParser.new do |o|
508:         o.set_summary_indent('  ')
509:         o.banner =    "Usage: #{@base_command.script_name} list [OPTIONS] [PATTERN]"
510:         o.define_head "List available plugins."
511:         o.separator   ""        
512:         o.separator   "Options:"
513:         o.separator   ""
514:         o.on(         "-s", "--source=URL1,URL2", Array,
515:                       "Use the specified plugin repositories.") {|@sources|}
516:         o.on(         "--local", 
517:                       "List locally installed plugins.") {|@local| @remote = false}
518:         o.on(         "--remote",
519:                       "List remotely available plugins. This is the default behavior",
520:                       "unless --local is provided.") {|@remote|}
521:       end
522:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 524
524:     def parse!(args)
525:       options.order!(args)
526:       unless @sources.empty?
527:         @sources.map!{ |uri| Repository.new(uri) }
528:       else
529:         @sources = Repositories.instance.all
530:       end
531:       if @remote
532:         @sources.map{|r| r.plugins}.flatten.each do |plugin| 
533:           if @local or !plugin.installed?
534:             puts plugin.to_s
535:           end
536:         end
537:       else
538:         cd "#{@base_command.environment.root}/vendor/plugins"
539:         Dir["*"].select{|p| File.directory?(p)}.each do |name| 
540:           puts name
541:         end
542:       end
543:     end

[Validate]