piotrmurach / tty

Toolkit for developing sleek command line apps.
https://ttytoolkit.org
MIT License
2.5k stars 78 forks source link

`teletype new` rejects argument #79

Open keithrbennett opened 3 years ago

keithrbennett commented 3 years ago

(This issue may be related to https://github.com/piotrmurach/tty/issues/78.)

teletype new does not seem to be getting the argument input on the command line. Here is the session:

> gem uninstall tty
Remove executables:
    teletype

in addition to the gem? [Yn]
Removing teletype
Successfully uninstalled tty-0.10.0

> gem install tty
Fetching tty-0.10.0.gem
Successfully installed tty-0.10.0
1 gem installed

> teletype new myproj
/Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-command-0.9.0/lib/tty/command.rb:54:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/lib/tty/cmd.rb:33:in `new'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/lib/tty/cmd.rb:33:in `command'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/lib/tty/commands/new.rb:46:in `initialize'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/lib/tty/cli.rb:128:in `new'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/lib/tty/cli.rb:128:in `new'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/gems/tty-0.10.0/exe/teletype:14:in `<top (required)>'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/bin/teletype:23:in `load'
    from /Users/keith.bennett/.rvm/gems/ruby-3.0.2/bin/teletype:23:in `<main>'

> teletype new
ERROR: 'teletype new' was called with no arguments
Usage: 'teletype new PROJECT_NAME'
rngtng commented 3 years ago

Same issue here, is it related to ruby 3.x version?

keithrbennett commented 3 years ago

I don't know...when I try teletype new myproj on Ruby 2.7.3 after doing gem install tty, I get this:

/home/kbennett/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/rubygems/specification.rb:2247:in `raise_if_conflicts': Unable to activate tty-0.10.0, because bundler-2.1.4 conflicts with bundler (~> 1.16, < 2.0) (Gem::ConflictError)

kronn commented 2 years ago

Same here, on Ubuntu 20.04:

> teletype new app
/home/USER/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/tty-command-0.9.0/lib/tty/command.rb:54:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
...
keilmillerjr commented 2 years ago

I have experienced the same unfortunate issue.

OS version: Arch Linux x86_64
Ruby version: 3.0.3 & 3.1.0
TTY version: 0.10.0

UPDATE: I can confirm, that installing and using ruby 2.6.6 will not exhibit the problem. This is the same issue as https://github.com/piotrmurach/tty/issues/78#issuecomment-784716766 and https://github.com/piotrmurach/tty/issues/50 relating to Bundler 2 incompatibility.

sunilw commented 2 years ago

Can confirm that this behaviour occurs with ruby 3.0.2 and teletype 0.10.0

KagemniKarimu commented 2 years ago

Having the same issue with Ruby 3.1.0!

justingaylor commented 2 years ago

I encountered the same with Ruby 3.0.3. I believe it is due to this change in Ruby 3+ which @piotrmurach and others addressed in some few places already: https://github.com/piotrmurach/tty-command/pull/56 https://github.com/piotrmurach/tty-command/issues/52

I've fixed it in the below PR: https://github.com/piotrmurach/tty-command/pull/63

Once that's merged (or a similar fix) we should hopefully get this resolved! 🚀

alec-c4 commented 1 year ago

Hey! Any news with this issue? As I see - PR isn't merged

LostinTimeandspaceYT commented 5 months ago

I am on Pop_Os! (Ubuntu 22.04) encountering the same issue:

My environment:

$ which ruby
/home/nathan/.asdf/shims/ruby
$ asdf --version
v0.10.0-77fd510

What I did to encounter the issue:

$ gem install tty
Fetching tty-0.10.0.gem
Successfully installed tty-0.10.0
Parsing documentation for tty-0.10.0
Installing ri documentation for tty-0.10.0
Done installing documentation for tty after 0 seconds
1 gem installed
$ teletype new markdown_reader
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
/home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-command-0.9.0/lib/tty/command.rb:54:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/lib/tty/cmd.rb:33:in `new'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/lib/tty/cmd.rb:33:in `command'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/lib/tty/commands/new.rb:46:in `initialize'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/lib/tty/cli.rb:128:in `new'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/lib/tty/cli.rb:128:in `new'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
    from /home/nathan/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/tty-0.10.0/exe/teletype:14:in `<top (required)>'
    from /home/nathan/.asdf/installs/ruby/3.3.0/bin/teletype:25:in `load'
    from /home/nathan/.asdf/installs/ruby/3.3.0/bin/teletype:25:in `<main>'

A similar issue can be encountered when attempting to run teletype help

$ teletype help
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
    ┏━━━┓
 ┏━┳╋┳┳━┻━━┓
 ┣━┫┗┫┗┳┳┳━┫
 ┃ ┃┏┫┏┫┃┃★┃  Terminal apps toolkit
 ┃ ┗━┻━╋┓┃ ┃
 ┗━━━━━┻━┻━┛

Commands:
  teletype add COMMAND [SUBCOMMAND] [OPTIONS]  # Add a command to the application
  teletype help [COMMAND]                      # Describe available commands or one specific command
  teletype new PROJECT_NAME [OPTIONS]          # Create a new command line app skeleton
  teletype version                             # TTY version

Options:
      [--no-color]                 # Disable colorization in output
  -r, [--dry-run], [--no-dry-run]  # Run but do not make any changes
      [--debug], [--no-debug]      # Run in debug mode
alec-c4 commented 4 months ago

@piotrmurach hey, could you please check this issue?

keithrbennett commented 3 months ago

I have posted another issue at https://github.com/piotrmurach/tty/issues/88 suggesting that this gem be clearly marked as not intended for use, via prominent placement in readme and gem post-installation message.