class Commands::Plugin
Attributes
environment[R]
script_name[R]
sources[R]
Public Class Methods
new()
click to toggle source
# File lib/commands/plugin/commands.rb, line 8 def initialize @environment = RailsEnvironment.default @rails_root = RailsEnvironment.default.root @script_name = File.basename($0) @sources = [] end
parse!(args=ARGV)
click to toggle source
# File lib/commands/plugin/commands.rb, line 116 def self.parse!(args=ARGV) Plugin.new.parse!(args) rescue NoMethodError puts "Error: RaPT currently does not work outside of a Rails application directory. Please change to the top level of a Rails application and try again." end
Public Instance Methods
environment=(value)
click to toggle source
# File lib/commands/plugin/commands.rb, line 15 def environment=(value) @environment = value RailsEnvironment.default = value end
options()
click to toggle source
# File lib/commands/plugin/commands.rb, line 20 def options OptionParser.new do |o| o.set_summary_indent(' ') o.banner = "Usage: #{@script_name} [OPTIONS] command" o.define_head "Rails plugin manager." o.separator "" o.separator "GENERAL OPTIONS" o.on("-r", "--root=DIR", String, "Set an explicit rails app directory.", "Default: #{@rails_root}") { |@rails_root| self.environment = RailsEnvironment.new(@rails_root) } o.on("-s", "--source=URL1,URL2", Array, "Use the specified plugin repositories instead of the defaults.") { |@sources|} o.on("-v", "--verbose", "Turn on verbose output.") { |$verbose| } o.on("-h", "--help", "Show this help message.") { puts o; exit } o.separator "" o.separator "COMMANDS" o.separator " discover Discover plugin repositories." o.separator " list List available plugins." o.separator " search Search for available plugins." o.separator " about Show basic info about a plugin." o.separator " install Install plugin(s) from known repositories or URLs." o.separator " update Update installed plugins." o.separator " remove Uninstall plugins." o.separator " source Add a plugin source repository." o.separator " unsource Remove a plugin repository." o.separator " sources List currently configured plugin repositories." o.separator " pack:install Install plugins from plugin pack file or URL" o.separator " pack:uninstall Uninstall plugins from plugin pack file or URL" o.separator " pack:about Display plugin pack information" o.separator "" o.separator "EXAMPLES" o.separator " Install a plugin:" o.separator " #{@script_name} install continuous_builder\n" o.separator " Install a plugin from a subversion URL:" o.separator " #{@script_name} install http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder\n" o.separator " Install a plugin and add a svn:externals entry to vendor/plugins" o.separator " #{@script_name} install -x continuous_builder\n" o.separator " Show information about the acts_as_chunky_bacon plugin:" o.separator " #{@script_name} about acts_as_chunky_bacon\n" o.separator " List all available plugins:" o.separator " #{@script_name} list\n" o.separator " List plugins in the specified repository:" o.separator " #{@script_name} list --source=http://dev.rubyonrails.com/svn/rails/plugins/\n" o.separator " Search available plugins:" o.separator " #{@script_name} search \"authentication\"\n" o.separator " Discover and prompt to add new repositories:" o.separator " #{@script_name} discover\n" o.separator " Discover new repositories but just list them, don't add anything:" o.separator " #{@script_name} discover -l\n" o.separator " Add a new repository to the source list:" o.separator " #{@script_name} source http://dev.rubyonrails.com/svn/rails/plugins/\n" o.separator " Remove a repository from the source list:" o.separator " #{@script_name} unsource http://dev.rubyonrails.com/svn/rails/plugins/\n" o.separator " Show currently configured repositories:" o.separator " #{@script_name} sources\n" o.separator " Show the options for the list command:" o.separator " #{@script_name} list -h\n" o.separator " Install a plugin pack:" o.separator " #{@script_name} pack:install http://opensource.agileevolved.com/pluginpacks/standard.pluginpack\n" o.separator " View plugin pack meta data:" o.separator " #{@script_name} pack:about http://opensource.agileevolved.com/pluginpacks/standard.pluginpack\n" end end
parse!(args=ARGV)
click to toggle source
# File lib/commands/plugin/commands.rb, line 90 def parse!(args=ARGV) general, sub = split_args(args) options.parse!(general) command = general.shift if command =~ /^(list|discover|install|source|unsource|sources|remove|update|about|search)$/ command = Commands.const_get(command.capitalize).new(self) command.parse!(sub) elsif command =~ /^(pack:install|pack:uninstall|pack:about)$/ command_name = command.split(':')[1] command = Commands::Pack.const_get(command_name.capitalize).new(self) command.parse!(sub) else puts "Unknown command: #{command}" puts options exit 1 end end
split_args(args)
click to toggle source
# File lib/commands/plugin/commands.rb, line 109 def split_args(args) left = [] left << args.shift while args[0] and args[0] =~ /^-/ left << args.shift if args[0] return [left, args] end