main.rb features the following:

- unification of option, argument, keyword, and environment
      parameter parsing
    - auto generation of usage and help messages
    - support for mode/sub-commands
    - io redirection support
    - logging hooks using ruby's built-in logging mechanism
    - intelligent error handling and exit codes
    - use as dsl or library for building Main objects
    - parsing user defined ARGV and ENV
    - zero requirements for understanding the obtuse apis of any
      command line option parsers
    - leather pants

  In short main.rb aims to drastically lower the barrier to writing
  uniform command line applications.

WWW:	http://codeforpeople.com/lib/ruby/main/

PR:		ports/128664
Submitted by:	Wen Heping <wenheping at gmail.com>
This commit is contained in:
Martin Wilke 2008-11-09 23:05:04 +00:00
parent 6c249d26a1
commit a23357c7a7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=222657
4 changed files with 54 additions and 0 deletions

View File

@ -2415,6 +2415,7 @@
SUBDIR += rubygem-json
SUBDIR += rubygem-json_pure
SUBDIR += rubygem-linecache
SUBDIR += rubygem-main
SUBDIR += rubygem-mocha
SUBDIR += rubygem-mojombo-grit
SUBDIR += rubygem-needle

View File

@ -0,0 +1,32 @@
# New ports collection makefile for: rubygem-main
# Date created: 07, Nov 2008
# Whom: Wen Heping <wenheping@gmail.com>
#
# $FreeBSD$
#
PORTNAME= main
PORTVERSION= 2.8.3
CATEGORIES= devel rubygems
MASTER_SITES= RF/codeforpeople
MAINTAINER= wenheping@gmail.com
COMMENT= A Class Factory and Dsl for Generating Command Line Programs
BUILD_DEPENDS= rubygem-fattr>=1.0.3:${PORTSDIR}/devel/rubygem-fattr \
rubygem-arrayfields>=4.5.0:${PORTSDIR}/devel/rubygem-arrayfields
RUN_DEPENDS= rubygem-fattr>=1.0.3:${PORTSDIR}/devel/rubygem-fattr \
rubygem-arrayfields>=4.5.0:${PORTSDIR}/devel/rubygem-arrayfields
USE_RUBY= yes
USE_RUBYGEMS= yes
post-install:
@${ECHO} ${GEM_CACHE} > ${TMPPLIST}
@${FIND} ${PREFIX}/${GEM_DOC_DIR} -type f | ${SED} -e 's,${PREFIX}/${GEM_DOC_DIR},${GEM_DOC_DIR},' >> ${TMPPLIST}
@${FIND} ${PREFIX}/${GEM_LIB_DIR} -type f | ${SED} -e 's,${PREFIX}/${GEM_LIB_DIR},${GEM_LIB_DIR},' >> ${TMPPLIST}
@${ECHO} ${GEM_SPEC} >> ${TMPPLIST}
@${FIND} ${PREFIX}/${GEM_LIB_DIR} -type d -depth | ${SED} -e 's,${PREFIX}/${GEM_LIB_DIR},@dirrm ${GEM_LIB_DIR},' >> ${TMPPLIST}
@${FIND} ${PREFIX}/${GEM_DOC_DIR} -type d -depth | ${SED} -e 's,${PREFIX}/${GEM_DOC_DIR},@dirrm ${GEM_DOC_DIR},' >> ${TMPPLIST}
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
MD5 (rubygem/main-2.8.3.gem) = dcb344a9ad5f72cdc03c34a496400d73
SHA256 (rubygem/main-2.8.3.gem) = 013b059565cd133ab5dfddf53c9cb265949e6d6ad717296617c3381b4fb7e05a
SIZE (rubygem/main-2.8.3.gem) = 30720

View File

@ -0,0 +1,18 @@
main.rb features the following:
- unification of option, argument, keyword, and environment
parameter parsing
- auto generation of usage and help messages
- support for mode/sub-commands
- io redirection support
- logging hooks using ruby's built-in logging mechanism
- intelligent error handling and exit codes
- use as dsl or library for building Main objects
- parsing user defined ARGV and ENV
- zero requirements for understanding the obtuse apis of any
command line option parsers
- leather pants
In short main.rb aims to drastically lower the barrier to writing
uniform command line applications.
WWW: http://codeforpeople.com/lib/ruby/main/