### Home Classes Methods

### In Files

- lib/ramaze/bin/runner.rb

### Methods

- ::commands_info
- ::run

### Class/Module Index

Quicksearch

- Ramaze
- Ramaze::App
- Ramaze::AppGraph
- Ramaze::Bin
- Ramaze::Bin::Console
- Ramaze::Bin::Create
- Ramaze::Bin::Helper
- Ramaze::Bin::Restart
- Ramaze::Bin::Runner
- Ramaze::Bin::Start
- Ramaze::Bin::Status
- Ramaze::Bin::Stop
- Ramaze::Cache
- Ramaze::Cache::LRU
- Ramaze::Cache::LocalMemCache
- Ramaze::Cache::MemCache
- Ramaze::Cache::Redis
- Ramaze::Cache::Sequel
- Ramaze::Controller
- Ramaze::CoreExtensions
- Ramaze::CoreExtensions::Array
- Ramaze::CoreExtensions::Binding
- Ramaze::CoreExtensions::Kernel
- Ramaze::CoreExtensions::Numeric
- Ramaze::CoreExtensions::Object
- Ramaze::CoreExtensions::Proc
- Ramaze::CoreExtensions::String
- Ramaze::Current
- Ramaze::DefaultController
- Ramaze::Dictionary
- Ramaze::Fiber
- Ramaze::Files
- Ramaze::GemSetup
- Ramaze::Gestalt
- Ramaze::Helper
- Ramaze::Helper::Auth
- Ramaze::Helper::Bench
- Ramaze::Helper::BlueForm
- Ramaze::Helper::BlueForm::Form
- Ramaze::Helper::CSRF
- Ramaze::Helper::Cache
- Ramaze::Helper::Cache::SingletonMethods
- Ramaze::Helper::Disqus
- Ramaze::Helper::Email
- Ramaze::Helper::Erector
- Ramaze::Helper::Flash
- Ramaze::Helper::Formatting
- Ramaze::Helper::Gestalt
- Ramaze::Helper::Gravatar
- Ramaze::Helper::Identity
- Ramaze::Helper::Layout
- Ramaze::Helper::Layout::SingletonMethods
- Ramaze::Helper::Link
- Ramaze::Helper::Localize
- Ramaze::Helper::Localize::Dictionary
- Ramaze::Helper::Localize::Parser
- Ramaze::Helper::Markaby
- Ramaze::Helper::Maruku
- Ramaze::Helper::Paginate
- Ramaze::Helper::Paginate::Paginator
- Ramaze::Helper::Paginate::Paginator::ArrayPager
- Ramaze::Helper::Paginate::Paginator::DataMapperPager
- Ramaze::Helper::Remarkably
- Ramaze::Helper::RequestAccessor
- Ramaze::Helper::SendFile
- Ramaze::Helper::SimpleCaptcha
- Ramaze::Helper::Stack
- Ramaze::Helper::Thread
- Ramaze::Helper::Ultraviolet
- Ramaze::Helper::Upload
- Ramaze::Helper::Upload::ClassMethods
- Ramaze::Helper::Upload::UploadedFile
- Ramaze::Helper::UserHelper
- Ramaze::Helper::UserHelper::Wrapper
- Ramaze::Helper::XHTML
- Ramaze::LRUHash
- Ramaze::Logger
- Ramaze::Logger::Analogger
- Ramaze::Logger::Growl
- Ramaze::Logger::Informer
- Ramaze::Logger::Knotify
- Ramaze::Logger::LogHub
- Ramaze::Logger::Logger
- Ramaze::Logger::RotatingInformer
- Ramaze::Logger::Syslog
- Ramaze::Logger::Xosd
- Ramaze::Logging
- Ramaze::MiddlewareCompiler
- Ramaze::Plugin
- Ramaze::Reloader
- Ramaze::Reloader::Hooks
- Ramaze::Reloader::WatchInotify
- Ramaze::Reloader::WatchStat
- Ramaze::Request
- Ramaze::Response
- Ramaze::SpecLogger
- Ramaze::Struct
- Ramaze::View
- Ramaze::View::Erector
- Ramaze::View::Erubis
- Ramaze::View::Ezamar
- Ramaze::View::Gestalt
- Ramaze::View::Haml
- Ramaze::View::Liquid
- Ramaze::View::Liquid::Tag
- Ramaze::View::Lokar
- Ramaze::View::Mustache
- Ramaze::View::Mustache::RamazeContext
- Ramaze::View::Nagoro
- Ramaze::View::Remarkably
- Ramaze::View::Sass
- Ramaze::View::Slippers
- Ramaze::View::Tagz
- Ramaze::View::Tagz::Methods
- Ramaze::View::Tenjin
- Nagoro
- Nagoro::Pipe
- Nagoro::Pipe::RenderPartial
- Bacon
- Bacon::PrettyOutput
- Erector
- Erector::Widget
- Rack
- Rack::RouteExceptions
- Tenjin
- Tenjin::Template
- BlankSlate
- Controller
- Fiber
- FiberError
- MainController
- Object
- OrderedSet
- Thread

No matching classes.

# Ramaze::Bin::Runner

Module used for running a particular command based on the specified command line arguments.

Usage:

    ramaze --help # Shows a help message
    ramaze -h     # Shows a help message as well
    ramaze -v     # Shows the version of Ramaze

    ramaze [COMMAND] # Runs [COMMAND]

@author Yorick Peterse @since 21-07-2011

### Constants

Banner

  String containing the banner of the main command.

Commands

  Hash containing all the available commands, their names and their classes.

### Public Class Methods

commands_info() click to toggle source

Generates an array of "rows" where each row contains the name and description of a command. The descriptions of all commands are aligned based on the length of the longest command name.

@author Yorick Peterse @since 21-07-2011 @return [Array]

    # File lib/ramaze/bin/runner.rb, line 115
    def self.commands_info
      cmds    = []
      longest = Commands.map { |name, klass| name.to_s }.sort[0].size

      Commands.each do |name, klass|
        name = name.to_s
        desc = ''

        # Try to extract the command description
        if klass.respond_to?(:const_defined?)            and klass.const_defined?(:Description)
          desc = klass.const_get(:Description)
        end

        # Align the description based on the length of the name
        while name.size <= longest do
          name += ' '
        end

        cmds.push(["#{name}    #{desc}"])
      end

      return cmds
    end

run(argv=ARGV) click to toggle source

Runs a particular command based on the specified array.

@example

    Ramaze::Bin::Runner.run(ARGV)
    Ramaze::Bin::Runner.run(['start', '--help'])

@author Yorick Peterse @since 21-07-2011 @param [Array] argv An array containing command line arguments, set to

    ARGV by default.

    # File lib/ramaze/bin/runner.rb, line 66
    def self.run(argv=ARGV)
      op = OptionParser.new do |opt|
        opt.banner         = Banner
        opt.summary_indent = '  '

        opt.separator "\nCommands:\n  #{commands_info.join("\n  ")}"

        # Show all the common options
        opt.separator "\nOptions:\n"

        # Show the version of Ramaze
        opt.on('-v', '--version', 'Shows the version of Ramaze') do
          puts Ramaze::VERSION
          exit
        end

        opt.on('-h', '--help', 'Shows this help message') do
          puts op
          exit
        end
      end

      op.order!(argv)

      # Show a help message if no command has been specified
      if !argv[0]
        puts op.to_s
        exit
      end

      cmd = argv.delete_at(0).to_sym

      if Commands.key?(cmd)
        cmd = Commands[cmd].new
        cmd.run(argv)
      else
        abort 'The specified command is invalid'
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.