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