A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/davetron5000/gli

https://github.com/davetron5000/gli -

  • Fixes gemspec URL (see #338)

- Ruby
Published by davetron5000 about 1 year ago

https://github.com/davetron5000/gli - 2.22.1

  • Added ostruct as dependency. See #337 (thanks @aither64)

- Ruby
Published by davetron5000 about 1 year ago

https://github.com/davetron5000/gli -

  • Improve error messaging when strict arguments are configured and too few or too many arguments are provided (see #335 and #334 thanks @rsanheim!)

- Ruby
Published by davetron5000 over 1 year ago

https://github.com/davetron5000/gli -

Fix link to API doc to use https. See #329 (thanks @noraj )

- Ruby
Published by davetron5000 over 1 year ago

https://github.com/davetron5000/gli -

Added metadata to gemspec. See #308 and #328 (thanks @noraj )

- Ruby
Published by davetron5000 over 1 year ago

https://github.com/davetron5000/gli -

  • Fixed #244 where a flag that is both :required and :multiple is allowed to have no value. See #327

- Ruby
Published by davetron5000 over 1 year ago

https://github.com/davetron5000/gli -

  • Fixed issue with Scaffolding
  • Upgraded dev environment and build matrix
  • Changed to Minitest instead of way old MiniTest

See #325

- Ruby
Published by davetron5000 over 1 year ago

https://github.com/davetron5000/gli -

  • Drop official support for 2.x rubies and add 3.1 and 3.2 to the build matrix
  • Fix typo in rake task (See #318 / thanks @mattbrictson!)
  • Remove use of File.exists? which was removed from Ruby 3.2 (See #316 / thanks @mattbrictson!)

- Ruby
Published by davetron5000 over 2 years ago

https://github.com/davetron5000/gli -

  • command_missing see #315 courtesy @camertron

- Ruby
Published by davetron5000 about 4 years ago

https://github.com/davetron5000/gli -

  • Gemfile references github.io. See #311

- Ruby
Published by davetron5000 over 4 years ago

https://github.com/davetron5000/gli -

  • Reworked tests to remove Cucumber and Aruba
  • Unit tests are now minitest
  • Scaffold now uses minitest and sets versions, plus does not include Cucumber/Aruba any longer
  • CI in CircleCI for matrixed builds, including Ruby 3.0
  • Fixes a Ruby 3 issue. See #301
  • Other minor updates for local dev. See #303

- Ruby
Published by davetron5000 about 5 years ago

https://github.com/davetron5000/gli -

  • Fixes inconsistent error messages related to subcommands. See #299 and thanks @JacobEvelyn

- Ruby
Published by davetron5000 over 5 years ago

https://github.com/davetron5000/gli -

  • Slower tests can wait longer to timeout. See #297 and thanks @calestar !

- Ruby
Published by davetron5000 almost 6 years ago

https://github.com/davetron5000/gli -

  • Change how multiple arguments are documented in help. Previously, we used commas which implies you must put commas on the command line, which you shouldn't, so…this was not a good way to document them :) Fixed now to mirror what git does, e.g. git add pathspec... See #290 and thanks @Bluewind !

- Ruby
Published by davetron5000 over 6 years ago

https://github.com/davetron5000/gli -

  • Fix bug where gemspec assumes git init has been run, but that is not always the case. See #289 and thanks @carlesjove !

- Ruby
Published by davetron5000 over 6 years ago

https://github.com/davetron5000/gli -

  • Fixed bug where autocomplete command configuration was not properly passed down to commands when trying to locate them recursively. See #288 and #287 (thanks @atareshawty for the fix!)

- Ruby
Published by davetron5000 over 6 years ago

https://github.com/davetron5000/gli -

  • Generated CLIs are now namespaced to avoid issues with dump methods into global scope. See #278 (thanks @dblock!)

- Ruby
Published by davetron5000 over 7 years ago

https://github.com/davetron5000/gli -

  • Remove has_rdoc since that no longer is supported in gemspecs. see #276 (thanks @dblock)
  • Also, updates dev dependencies, see #277 (also @dblock)

- Ruby
Published by davetron5000 over 7 years ago

https://github.com/davetron5000/gli -

  • Fixes issue where using use_openstruct true and nested commands causes an error calling to_sym. See #267 and #268

- Ruby
Published by davetron5000 over 8 years ago

https://github.com/davetron5000/gli -

  • Better handling of --version, See #206 and thanks @specious!

- Ruby
Published by davetron5000 over 8 years ago

https://github.com/davetron5000/gli -

  • Fix issue with encoding (See #266 and #265) Thanks @mickael-palma-argus !

- Ruby
Published by davetron5000 over 8 years ago

https://github.com/davetron5000/gli -

  • Pass example metadata to the document listener (see #263)

This is part of work on a markdown version of the generated documentation, but it's fairly hacky right now, so I'm developing it internally at my company to polish it up.

- Ruby
Published by davetron5000 almost 9 years ago

https://github.com/davetron5000/gli -

  • Support for explicit examples that show up in help system, see #261

- Ruby
Published by davetron5000 about 9 years ago

https://github.com/davetron5000/gli -

  • Add support for parsing multiple uses of a flag as an array of values (see #243 courtesy @JacobEvelyn)

- Ruby
Published by davetron5000 almost 10 years ago

https://github.com/davetron5000/gli -

  • Replace deprecated call to File.exists? with File.exist? (see #229 thanks @edusantana!)

- Ruby
Published by davetron5000 over 10 years ago

https://github.com/davetron5000/gli -

  • When generating a config file, only use the primary/first name of flags and switches. Previously, your config would have duplicates for every alias of a flag or switch. See #218 (thanks @ZeroPointEnergy!)
  • Fixes issue where boolean settings were not read from the config properly. Namely, false values didn't seem to work properly. See #217 (thanks @ZeroPointEnergy!)

- Ruby
Published by davetron5000 over 10 years ago

https://github.com/davetron5000/gli -

  • Fix bug where stty exists, but returns 0,0 (notably in emacs). See #223. Thanks @wconrad!

- Ruby
Published by davetron5000 over 10 years ago

https://github.com/davetron5000/gli -

  • Removed 1.9 Hash syntax in hopes this can work with 1.8 (see #214, thanks @annafw!)

Note that the CI build fails on 1.8 due to the tests using Faker, which requires i18n, which will not install on 1.8 any longer

- Ruby
Published by davetron5000 almost 11 years ago

https://github.com/davetron5000/gli -

  • Add ability to disable "auto-guessing" the command names. e.g. if you have a command named list but execute my_app li, GLI will guess that you meant list. This can be problematic in some contexts and now can be disabled by using autocomplete false. See #200 (thanks @ChrisArcand)

- Ruby
Published by davetron5000 about 11 years ago

https://github.com/davetron5000/gli -

  • Don't use [-f foo] for flags that are required (See #210 thanks @dividedmind)

- Ruby
Published by davetron5000 about 11 years ago

https://github.com/davetron5000/gli -

  • Fix crashing bug in the _doc command.
  • Dropped official support for 1.8.7. This version of Ruby is long-deprecated and while GLI should continue to work, the tools needed to develop GLI exhibit strange behavior that cause tests to fail. Rather than lock to older versions of the tools or waste time figuring out the problem, I've removed 1.8.7 from .travis.yml. I don't plan to introduce 1.9 or 2.0-only code to GLI, but am not going to spend time making sure it works on 1.8.7

- Ruby
Published by davetron5000 over 11 years ago

https://github.com/davetron5000/gli -

  • Since use of arguments :strict requires that subcommand_option_handling :normal also be set, GLI will blow up if that's not the case (as opposed to just not working).
  • Scaffolding now puts subcommand_option_handling :normal in the new app, as was originally intended, but not ever actually done for some reason o_O.
  • Improved documentation around arguments

- Ruby
Published by davetron5000 over 11 years ago

https://github.com/davetron5000/gli -

  • Support for "strict" argument parsing. That is, when you specify:

    arg :url
    

    GLI will check if that arg was given on the command line, and generate an error if not. Note that by default, existing apps will not get this feature without adding arguments :strict to their binfile. Newly-scaffolded apps will have this by default. Thanks @calestar (see #187)

- Ruby
Published by davetron5000 over 11 years ago

https://github.com/davetron5000/gli -

These features and fixes brought to you by the conscientious @calestar! Many thanks!

  • New Feature - document multiple arguments by repeated calls to arg

    # previously
    arg_name "src dest [second_dest]"
    
    # currently
    arg :src
    arg :dest
    arg :second_dest, :optional
    

    This doesn't enforce required v optional, but paves the way for it, and makes it easier to build up the arguments help string (see #184 and #180, and http://davetron5000.github.io/gli/rdoc/classes/GLI/DSL.html#method-i-arg)

  • Better help output when multiple required flags are omitted (see #177 and #182)

  • Getting help with GLI_DEBUG set no longer exits nonzero (getting help without GLI_DEBUG set previously exited zero, so this makes the behavior of getting help more consistent. See #183 and #181. Thanks @calestar!)

- Ruby
Published by davetron5000 over 11 years ago

https://github.com/davetron5000/gli -

  • New option, hide_commands_without_desc which, if set to true, will hide commands in the help output that have no desc (basically exposes what the hidden _doc command was already doing). Thanks @blackjid! See #170
  • Updated must_match documentation, see #163

- Ruby
Published by davetron5000 almost 12 years ago

https://github.com/davetron5000/gli -

  • Synopsis can be shown in a more compact format for complex apps (See #160)
  • Full synopsis now shows flags and switches in the correct location on the command line (See #162)
  • Flags can now be made required and GLI will error if they are omitted (See #161)
  • Generated gemspec now uses git by default to get the file list (See #159, thanks to @JesseHerrick!)

Also, some documentation updates:

- Ruby
Published by davetron5000 about 12 years ago

https://github.com/davetron5000/gli -

  • Message printed when initconfig generates the config file (See #158, thanks to @calestar!)

- Ruby
Published by davetron5000 about 12 years ago

https://github.com/davetron5000/gli -

  • Fixes #154 courtesy @tokengeek and [@jonhl] allowing --help to work as one would expect with subcommands.

- Ruby
Published by davetron5000 over 12 years ago

https://github.com/davetron5000/gli -

  • Can now re-open commands later on, which can allow commands_from extensions. See #152 (which fixes #144 more or less). Thanks @jonhnl for the fix!
  • When a custom on_error block evaluates to false, and GLI_DEBUG is set, GLI will output a message explaining that custom error handling has been skipped. See #151
  • When a user requests help via --help on the command line, the exception used to make that work will not cause the on_error block to be called. See #150

- Ruby
Published by davetron5000 over 12 years ago

https://github.com/davetron5000/gli -

  • When the pre block returns a falsey value, it now does so via a special-purpose exception and also provides a message that the preconditions failed (see #146)
  • Previously, doing app --help command would execute command. Now, it acts the same as app help command, i.e. gets help for that command (see #149)

- Ruby
Published by davetron5000 over 12 years ago

https://github.com/davetron5000/gli -

Redesign of how subcommands are handled to enable each subcommand to have its own space of arguments and options.

To enable this, you must subcommand_option_handling :normal

subcommand_option_handling :normal

This is inserted into new applications, but isn't the default for backwards compatibility.

Before

Subcommands can't use flags or switches the parent uses:

command :tasks do |c|
  c.flag :long

  c.command :list do |list|
    c.flag :long # <---- runtime error
    c.action do |*|
    end
  end
end

Subcommands can't use a flag/switch with the same name as another subcommand with the same parent:

command :tasks do |c|
  c.command :list do |list|
    c.flag :long
    c.action do |*|
    end
  end

  c.command :new do |new|
    c.flag :long # <----- runtime error
    c.action do |*|
    end
  end
end

After

Each subcommand has its own "flagspace":

command :tasks do |c|
  c.flag :long
  c.command :list do |list|
    c.flag :long
    c.action do |*|
    end
  end

  c.command :new do |new|
    c.flag :long # <----- runtime error
    c.action do |*|
    end
  end
end

You might do this:

> my_app tasks --long given-to-command list --long given-to-list-subcommand
> my_app tasks --long given-to-command new --long given-to-list-subcommand

The reason for an RC is that it required a fair amount of re-working of the code, so I want to be sure nothings subtle was broken.

Old behavior is the default: https://github.com/davetron5000/gli/blob/fully-nested-subcommands/lib/gli/app.rb#L262

- Ruby
Published by davetron5000 over 12 years ago

https://github.com/davetron5000/gli -

  • --version now just shows the version, courtesy [@brianknight10](see [138],[143])
  • Synopsis is now more honest - doesn't show [command options] if there aren't any, courtesy [@calestar](see [147])
  • A falsey exit from pre will now cause the app to exit nonzero (or with an exception if GLI_DEBUG is set), (see 146)
  • Support for terminal detection on solaris (see 129)

Biggest change is:

Redesign of how subcommands are handled to enable each subcommand to have its own space of arguments and options.

To enable this, you must subcommand_option_handling :normal

subcommand_option_handling :normal

This is inserted into new applications, but isn't the default for backwards compatibility.

Before

Subcommands can't use flags or switches the parent uses:

command :tasks do |c|
  c.flag :long

  c.command :list do |list|
    c.flag :long # <---- runtime error
    c.action do |*|
    end
  end
end

Subcommands can't use a flag/switch with the same name as another subcommand with the same parent:

command :tasks do |c|
  c.command :list do |list|
    c.flag :long
    c.action do |*|
    end
  end

  c.command :new do |new|
    c.flag :long # <----- runtime error
    c.action do |*|
    end
  end
end

After

Each subcommand has its own "flagspace":

command :tasks do |c|
  c.flag :long
  c.command :list do |list|
    c.flag :long
    c.action do |*|
    end
  end

  c.command :new do |new|
    c.flag :long # <----- runtime error
    c.action do |*|
    end
  end
end

You might do this:

> my_app tasks --long given-to-command list --long given-to-list-subcommand
> my_app tasks --long given-to-command new --long given-to-list-subcommand

The reason for an RC is that it required a fair amount of re-working of the code, so I want to be sure nothings subtle was broken.

Old behavior is the default: https://github.com/davetron5000/gli/blob/fully-nested-subcommands/lib/gli/app.rb#L262

- Ruby
Published by davetron5000 over 12 years ago

https://github.com/davetron5000/gli -

  • Default values now being copied to aliases in options hashes (see #148)

- Ruby
Published by davetron5000 over 12 years ago