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 523
523:     def initialize(base_command)
524:       @base_command = base_command
525:       @sources = []
526:       @local = false
527:       @remote = true
528:     end

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 530
530:     def options
531:       OptionParser.new do |o|
532:         o.set_summary_indent('  ')
533:         o.banner =    "Usage: #{@base_command.script_name} list [OPTIONS] [PATTERN]"
534:         o.define_head "List available plugins."
535:         o.separator   ""        
536:         o.separator   "Options:"
537:         o.separator   ""
538:         o.on(         "-s", "--source=URL1,URL2", Array,
539:                       "Use the specified plugin repositories.") {|@sources|}
540:         o.on(         "--local", 
541:                       "List locally installed plugins.") {|@local| @remote = false}
542:         o.on(         "--remote",
543:                       "List remotely available plugins. This is the default behavior",
544:                       "unless --local is provided.") {|@remote|}
545:       end
546:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 548
548:     def parse!(args)
549:       options.order!(args)
550:       unless @sources.empty?
551:         @sources.map!{ |uri| Repository.new(uri) }
552:       else
553:         @sources = Repositories.instance.all
554:       end
555:       if @remote
556:         @sources.map{|r| r.plugins}.flatten.each do |plugin| 
557:           if @local or !plugin.installed?
558:             puts plugin.to_s
559:           end
560:         end
561:       else
562:         cd "#{@base_command.environment.root}/vendor/plugins"
563:         Dir["*"].select{|p| File.directory?(p)}.each do |name| 
564:           puts name
565:         end
566:       end
567:     end

[Validate]