Sha256: fb1d0a0624af0120044b41146c69eceeecd6e961e47f341ba937671a48e9f8c5

Contents?: true

Size: 850 Bytes

Versions: 1

Compression:

Stored size: 850 Bytes

Contents

require 'relish/commands/dsl/context_class'
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.1.0 lib/relish/commands/dsl.rb