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 540
540:     def initialize(base_command)
541:       @base_command = base_command
542:       @sources = []
543:       @local = false
544:       @remote = true
545:     end

Public Instance methods

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 547
547:     def options
548:       OptionParser.new do |o|
549:         o.set_summary_indent('  ')
550:         o.banner =    "Usage: #{@base_command.script_name} list [OPTIONS] [PATTERN]"
551:         o.define_head "List available plugins."
552:         o.separator   ""        
553:         o.separator   "Options:"
554:         o.separator   ""
555:         o.on(         "-s", "--source=URL1,URL2", Array,
556:                       "Use the specified plugin repositories.") {|sources| @sources = sources}
557:         o.on(         "--local", 
558:                       "List locally installed plugins.") {|local| @local, @remote = local, false}
559:         o.on(         "--remote",
560:                       "List remotely available plugins. This is the default behavior",
561:                       "unless --local is provided.") {|remote| @remote = remote}
562:       end
563:     end

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 565
565:     def parse!(args)
566:       options.order!(args)
567:       unless @sources.empty?
568:         @sources.map!{ |uri| Repository.new(uri) }
569:       else
570:         @sources = Repositories.instance.all
571:       end
572:       if @remote
573:         @sources.map{|r| r.plugins}.flatten.each do |plugin| 
574:           if @local or !plugin.installed?
575:             puts plugin.to_s
576:           end
577:         end
578:       else
579:         cd "#{@base_command.environment.root}/vendor/plugins"
580:         Dir["*"].select{|p| File.directory?(p)}.each do |name| 
581:           puts name
582:         end
583:       end
584:     end

[Validate]