| Class | Commands::List |
| In: |
vendor/rails/railties/lib/commands/plugin.rb
|
| Parent: | Object |
# 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
# 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
# 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