Sha256: 01a9cd63f90b1a6b85461c86177b5956bfb651a3d60ebc5ea9fcee1a58887bc8

Contents?: true

Size: 841 Bytes

Versions: 1

Compression:

Stored size: 841 Bytes

Contents

require 'relish/commands/dsl/base'
require 'relish/commands/dsl/option'
require 'relish/commands/dsl/command'
require 'relish/commands/dsl/help_text'

module Relish
  module Command
    module Dsl
      
      def option(name, options = {})
        Option.new(self).define(name, options)
        Option.names << name.to_s
      end
      
      def usage(str)
        HelpText.next_usage = str
      end
      
      def desc(str)
        HelpText.next_description = str
      end
      
      def command(arg, &block)
        case arg
        when Hash
          name, alias_target = arg.to_a.flatten
          block = lambda { self.send(alias_target) }
        when Symbol
          name = arg
        else
          raise ArgumentError
        end
        
        Command.new(self).define(name, &block)
      end
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
relish-0.0.9 lib/relish/commands/dsl.rb