-
Notifications
You must be signed in to change notification settings - Fork 102
Changelog
davetron5000 edited this page Jun 9, 2012
·
49 revisions
- Fixed bug where
default_command
didn't work for top level commands. Fix courtesy @v-yarotsky - Added around hook for automatic-resource-management of global setup. Idea courtesy @v-yarotsky
- Doc fixes from *v-yarotsky and @aterris
2.0!
- Subcommands
- Better help output
- Way more features when declaring flags and switches
-
OptionParser
underneath, so you get all of it's power (and none of it's weaknesses) - Switches are negatable by default
- Bootstraped apps are better, including aruba, an rvmrc, and more modern filenames
- More easily place command declarations in external files
- Can add multi-paragraph descriptions via a double line break
- New command,
default_command
- Bugfixes related to scaffolded apps
- File permissions on created config files set more strictly, (see #58), thanks @bemurphy!)
- Fixes #57 by removing the
-R
from the rdoc call in the gemspec
- Added back the load path stuff I removed in 1.3.4, since it was causing problems running locally. Need a better solution and/or wait for GLI 2
- 1.9.3 support
- Stop futzing with the load path in
gli
and in generated code
- Fix bug with word-wrapping help text ( See #51, thanks babysnakes!)
- Fix bug where omitting all
desc
calls results in no documentation (closed #48) - Get the home directory in a more x-platform way (closed #47)
- Added simplecov for 1.9.2 code coverage
- Some other fixes to make dev tools compatible with various rubies
Thanks to gnufied for the patches!
- Use
/usr/bin/env
instead of/usr/bin/ruby
ingli
and scaffolded apps - Allow flags to appear after arguments
-
Gemfile.lock
no longer tracked in git, per best practices
- Help now shows the default values based on what's in the configuration (closed #10)
- Fixed bug where options specified in config cannot be overridden on the command line (closed #43)
- Scaffolded apps no longer require a 1.8.7-only test class (closed #42)
- You can now skip pre and post blocks per command (see Hooks for more)
- You can specify a program description and it shows up in the help (closed #40)
- JRuby support (i.e. just made sure it actually works on JRuby)
- Test coverage of the
gli
command and a basic scaffolded site (closed #30)
- Help output now makes distinction between global and command options
- Error messages on bad invocations now give you a clue as to where to look (e.g. use 'gli help' for list of commands)
- Using
gemspec
andadd_development_dependency
instead of putting gems in the Gemfile - Massive overhaul of rubydoc; everything's consistent, up to date, and usable now
- Created the all-important cheatsheet
- Refactored some nasty methods
- Corrected gemspec to include all the files
- Fixed issue with Ruby 1.9
case
statement
This version is broken, as it doesn't include ONE file in the .gem
This version is broken, as it doesn't include two files in the .gem
, and is not compatible with Ruby 1.9
- new GLI apps will exit nonzero on errors (see Error Handling)
- Support for custom exit codes
- GLI now uses an environment variable to allow for debugging caught exceptions
- GLI now uses the width of the terminal for displaying help messages, not just hard-coding 80
- Changed uses of
map(&:symbol)
to older form, since this doesn't work on 100% of Ruby 1.8.7s.
- Changed default data structure of options back to a
Hash
. If you want to use theOpenStruct
subclassOptions
, simply putuse_openstruct true
in your command line definition.
- Added ability to use
help
command to list commands suitable for creating bash completion script -
options
andglobal_options
will now contain values for all aliases of each flag and switch, so if you created a flag withflag [:f,:flag]
and the user specifies-f foo
on the command line, bothoptions[:f]
andoptions[:flag]
will have the valuefoo
. Same behavior for--flag=foo
. - You may now no-longer use names that have already been used. So if you declare a switch
switch :foo
and then later declare a flagflag [:f,:foo]
, you get anArgumentError
. This is only checked within relevant scope, so you can still use the same option names between commands, and you can still have the same option name once in global and once in command scope. This is really a bugfix as the behavior of GLI was not clear before. -
long_desc
now shows up in generated rdoc for flags and switches - Scaffoling now generates a usable
Gemfile
for bundler - More direct support for version numbers in GLI-managed apps
Changed the way we locate FILE
's directory; if it's a symlink it would've have worked. Required adding :realpath
method to File
for pre 1.9.2 rubies