Methods
Public Class methods
[ show source ]
# File railties/lib/commands/plugin.rb, line 541
541: def initialize(base_command)
542: @base_command = base_command
543: @sources = []
544: @local = false
545: @remote = true
546: end
Public Instance methods
[ show source ]
# File railties/lib/commands/plugin.rb, line 548
548: def options
549: OptionParser.new do |o|
550: o.set_summary_indent(' ')
551: o.banner = "Usage: #{@base_command.script_name} list [OPTIONS] [PATTERN]"
552: o.define_head "List available plugins."
553: o.separator ""
554: o.separator "Options:"
555: o.separator ""
556: o.on( "-s", "--source=URL1,URL2", Array,
557: "Use the specified plugin repositories.") {|sources| @sources = sources}
558: o.on( "--local",
559: "List locally installed plugins.") {|local| @local, @remote = local, false}
560: o.on( "--remote",
561: "List remotely available plugins. This is the default behavior",
562: "unless --local is provided.") {|remote| @remote = remote}
563: end
564: end
[ show source ]
# File railties/lib/commands/plugin.rb, line 566
566: def parse!(args)
567: options.order!(args)
568: unless @sources.empty?
569: @sources.map!{ |uri| Repository.new(uri) }
570: else
571: @sources = Repositories.instance.all
572: end
573: if @remote
574: @sources.map{|r| r.plugins}.flatten.each do |plugin|
575: if @local or !plugin.installed?
576: puts plugin.to_s
577: end
578: end
579: else
580: cd "#{@base_command.environment.root}/vendor/plugins"
581: Dir["*"].select{|p| File.directory?(p)}.each do |name|
582: puts name
583: end
584: end
585: end