This PR supports Thor::CoreExt::HashWithIndifferentAccess#except and prevents breaking changes in Rails upgrades when using options.except(:key) in Thor task.
When Thor is used with Rails (Active Support), the behavior changes as follows.
With Rails 5.2 or lower
h = Thor::CoreExt::HashWithIndifferentAccess.new(foo: 1, bar: 2)
h.except(:foo) #=> {"bar"=>2}
With Rails 6.0
h = Thor::CoreExt::HashWithIndifferentAccess.new(foo: 1, bar: 2)
h.except(:foo) #=> {"foo"=>1, "bar"=>2}
This PR supports
Thor::CoreExt::HashWithIndifferentAccess#except
and prevents breaking changes in Rails upgrades when usingoptions.except(:key)
in Thor task.When Thor is used with Rails (Active Support), the behavior changes as follows.
With Rails 5.2 or lower
With Rails 6.0
This difference behavior is due to the following changes in Rails 6.0. https://github.com/rails/rails/pull/35771
This PR makes the behavior between Rails 5.2 and Rails 6.0 compatible.