Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correctly identify hyphenated and alias command names #878

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

takmar
Copy link
Contributor

@takmar takmar commented Mar 22, 2024

Fixes #868

Problem:
After version 1.3.0, invoking commands with hyphenated and alias names does not function as expected.

Given a Thor class definition as follows:

Copy code
class Test < Thor
  desc "foo-bar", "an example task"
  def foo_bar
    puts "I'm a thor task!"
  end

  map "fb" => :foo_bar 
end

Attempting to invoke the command with a hyphenated and the alias command:

% bundle exec thor test:foo-bar
% bundle exec thor test:FB

Results in a failure to execute the specified command, even though the help output correctly lists the command and its alias.

This PR addresses the issue by implementing a fix in the find_class_and_command_by_namespace method, ensuring that it correctly identifies both hyphenated command names and their aliases.

@naomichi-y
Copy link

It worked correctly 👍

bastelfreak added a commit to bastelfreak/modulesync that referenced this pull request May 17, 2024
With thor 1.3.1 we've two failing tests:

```
Failing Scenarios:
cucumber features/execute.feature:36 # Scenario: Show fail-fast default value in help
cucumber features/execute.feature:44 # Scenario: Override fail-fast default value using config file
```

as a workaround to get CI green again we'r pinning to 1.3.0. I think the
bug is fixed in rails/thor#878 but not yet
released.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Commands that contain hyphens cannot be executed
2 participants