Sha256: 852d10a4ddd32ff66ef66dd0fd502f4bbc1f00751b2ae3bf668718f21a38b9f5

Contents?: true

Size: 1.76 KB

Versions: 9

Compression:

Stored size: 1.76 KB

Contents

#!/usr/bin/env ruby

require 'rubygems'
require 'commander'

program :name, 'commander'
program :version, Commander::VERSION
program :description, 'Commander utility program.'

command :init do |c|
	c.syntax = 'commander init <file>'
	c.summary = 'Initialize a commander template'
	c.description = 'Initialize an empty <file> with a commander template, 
    allowing very quick creation of commander executables.'
	c.example 'Create a new file with a commander template.', 'commander init bin/my_executable'
	c.when_called do |args, options|
	  file = args.shift || abort('file argument required.')
		name = ask 'Machine name of program: '
		description = ask 'Describe your program: '
		commands = ask_for_array 'List the sub-commands you wish to create: '
		begin
      File.open(file, 'w') do |f|
        f.write <<-"...".gsub!(/^ {10}/, '')
          #!/usr/bin/env ruby
          
          require 'rubygems'
          require 'commander'
          require '#{name}'
          
          program :version, #{name.capitalize}::VERSION
          program :description, '#{description}'
           
        ...
        commands.each do |command|
          f.write <<-"...".gsub!(/^ {12}/, '')
            command :#{command} do |c|
              c.syntax = '#{name} #{command} [options]'
              c.summary = ''
              c.description = ''
              c.example 'description', 'command example'
              c.option '--some-switch', 'Some switch that does something'
              c.when_called do |args, options|
                # Do something or c.when_called #{name.capitalize}::Commands::#{command.capitalize}
              end
            end

          ...
        end
       end
       say "Initialized template in #{file}"
		 rescue Exception => e
       abort e
		 end
	end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
visionmedia-commander-3.2.0 bin/commander
visionmedia-commander-3.2.2 bin/commander
visionmedia-commander-3.2.3 bin/commander
visionmedia-commander-3.2.4 bin/commander
visionmedia-commander-3.2.5 bin/commander
visionmedia-commander-3.2.6 bin/commander
visionmedia-commander-3.2.7 bin/commander
visionmedia-commander-3.2.8 bin/commander
visionmedia-commander-3.2.9 bin/commander