In Files

Parent

Methods

Bones::App::Main

Attributes

stdout[R]
stderr[R]

Public Class Methods

new( opts = {} ) click to toggle source

Create a new Main application instance. Options can be passed to configuret he stdout and stderr IO streams (very useful for testing).

    # File lib/bones/app.rb, line 26
26:     def initialize( opts = {} )
27:       opts[:stdout] ||= $stdout
28:       opts[:stderr] ||= $stderr
29: 
30:       @opts = opts
31:       @stdout = opts[:stdout]
32:       @stderr = opts[:stderr]
33:     end

Public Instance Methods

help() click to toggle source

Show the toplevel Mr Bones help message.

    # File lib/bones/app.rb, line 72
72:     def help
73:       msg = NAME  bones v#{::Bones.version}DESCRIPTION  Mr Bones is a handy tool that builds a skeleton for your new Ruby  projects. The skeleton contains some starter code and a collection of  rake tasks to ease the management and deployment of your source code.  Usage:    bones -h/--help    bones -v/--version    bones command [options] [arguments]  Examples:    bones create new_project    bones freeze -r git://github.com/fudgestudios/bort.git bort    bones create -s bort new_rails_project  Commands:
74: 
75:      fmt = lambda { |cmd|
76:              if @plugins[cmd] < ::Bones::App::Command
77:                msg << "    bones %-15s %s\n" % [cmd, @plugins[cmd].summary]
78:              end
79:            }
80: 
81:      ary = [:create, :freeze, :unfreeze, :info]
82:      ary.each(&fmt)
83:      (@plugins.keys - ary).each(&fmt)
84: 
85:       msg.concat   Further Help:    Each command has a '--help' option that will provide detailed    information for that command.    http://github.com/TwP/bones
86: 
87:     stdout.puts msg
88:     end
run( args ) click to toggle source

Parse the desired user command and run that command object.

    # File lib/bones/app.rb, line 37
37:     def run( args )
38:       commands = []
39:       @plugins = ::Bones::App.plugins
40:       @plugins.each { |k,v| commands << k.to_s if v < ::Bones::App::Command }
41: 
42:       cmd_str = args.shift
43:       cmd = case cmd_str
44:         when *commands
45:           key = cmd_str.to_sym
46:           @plugins[key].new @opts
47:         when nil, '-h', '--help'
48:           help
49:         when '-v', '--version'
50:           stdout.puts "Mr Bones v#{::Bones.version}"
51:         else
52:           raise Error, "Unknown command #{cmd_str.inspect}"
53:         end
54: 
55:       if cmd
56:         cmd.parse args
57:         cmd.run
58:       end
59: 
60:     rescue Bones::App::Error => err
61:       stderr.puts "ERROR:  While executing bones ..."
62:       stderr.puts "    #{err.message}"
63:       exit 1
64:     rescue StandardError => err
65:       stderr.puts "ERROR:  While executing bones ... (#{err.class})"
66:       stderr.puts "    #{err.to_s}"
67:       exit 1
68:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.