All Projects → janlelis → rationalist

janlelis / rationalist

Licence: other
parse argument options in ruby

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to rationalist

type-flag
⛳️ Typed command-line arguments parser for Node.js
Stars: ✭ 105 (+150%)
Mutual labels:  argv, minimist
novusk
A kernel written in Rust
Stars: ✭ 61 (+45.24%)
Mutual labels:  unix-like
MTJailed-Native
A terminal emulator with remote shell for non-jailbroken iOS devices
Stars: ✭ 24 (-42.86%)
Mutual labels:  unix-like
dimcli
C++ Command Line Parser Toolkit
Stars: ✭ 32 (-23.81%)
Mutual labels:  cli-args
apollo
A Unix-style personal search engine and web crawler for your digital footprint.
Stars: ✭ 1,270 (+2923.81%)
Mutual labels:  unix-like
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+495.24%)
Mutual labels:  unix-like
chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-52.38%)
Mutual labels:  unix-like
src
MidnightBSD OS source code
Stars: ✭ 21 (-50%)
Mutual labels:  unix-like
-LibraryOS-Exokernel Implementation
Exokernel is one of the major sources for container and library OS techniques.
Stars: ✭ 41 (-2.38%)
Mutual labels:  unix-like
conbox
conbox is a Go implementation of unix-like utilities as single static executable intended for small container images.
Stars: ✭ 36 (-14.29%)
Mutual labels:  unix-like
cleye
👁‍🗨 cleye — The intuitive & typed CLI development tool for Node.js
Stars: ✭ 235 (+459.52%)
Mutual labels:  argv
munix
🦠 µnix is a UNIX-like operating system
Stars: ✭ 57 (+35.71%)
Mutual labels:  unix-like
Caporal.js
A full-featured framework for building command line applications (cli) with node.js
Stars: ✭ 3,279 (+7707.14%)
Mutual labels:  argv
argen
Generate argument parsing logic in C from a simple config
Stars: ✭ 14 (-66.67%)
Mutual labels:  argv
Browsix
Browsix is a Unix-like operating system for the browser.
Stars: ✭ 2,583 (+6050%)
Mutual labels:  unix-like

rationalist [version] [ci]

Strongly influenced by substack's minimist nodejs module.

setup

Add to your Gemfile:

gem 'rationalist'

For more info, see the original README below, with all JS replaced with Ruby.

minimist

parse argument options

This module is the guts of optimist's argument parser without all the fanciful decoration.

example

require 'rationalist'
argv = Rationalist.parse(ARGV)
p argv
$ ruby example/parse.rb -a beep -b boop
{:_=>[], :a=>"beep", :b=>"boop"}
$ ruby example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
{ :_=>["foo", "bar", "baz"],
  :x=>3,
  :y=>4,
  :n=>5,
  :a=>true,
  :b=>true,
  :c=>true,
  :beep=>"boop" }

methods

require 'rationalist'

argv = Rationalist.parse(args = ARGV, **opts, &unknown_block)

Return an argument object argv populated with the array arguments from args.

argv[:_] contains all the arguments that didn't have an option associated with them.

Numeric-looking arguments will be returned as numbers unless opts[:string] or opts[:boolean] is set for that argument name.

Any arguments after '--' will not be parsed and will end up in argv[:_].

options can be:

  • opts[:string] - a string or array of strings argument names to always treat as strings
  • opts[:boolean] - a boolean, string or array of strings to always treat as booleans. if true will treat all double hyphenated arguments without equal signs as boolean (e.g. affects --foo, not -f or --foo=bar)
  • opts[:alias] - an object mapping string names to strings or arrays of string argument names to use as aliases
  • opts[:default] - an object mapping string argument names to default values
  • opts[:stop_early] - when true, populate argv[:_] with everything after the first non-option
  • opts[:'--'] - when true, populate argv._ with everything before the -- and argv[:'--'] with everything after the --. Here's an example:
  • &unknown_block - a block which is invoked with a command line parameter not defined in the opts configuration object. If the function returns false, the unknown option is not added to argv.
>> Rationalist.parse('one two three -- four five --six'.split(' '), { '--': true })
{ :_=>["one", "two", "three"],
  :"--"=>["four", "five", "--six"] }

Note that with opts[:'--'] set, parsing for arguments still stops after the --.

install

With rubygems do:

gem install rationalist

license

MIT

rationalist was written by Jan Lelis and minimist was written by James Halliday.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].