Fix #1348: global functions called during mount. #1351
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1348.
A globally defined
def namespace
in Ruby 2.3.0 pollutes OStruct instance methods. This is described in https://bugs.ruby-lang.org/issues/12136 and https://bugs.ruby-lang.org/issues/12251. One way to reproduce this is toinclude Rake::DSL
in the global scope, which defines a globalnamespace
method.This PR gets rid of the OStruct. We cannot use a
Hash
here because we want to respond to methods like.index
which are natively defined on aHash
, so we need a dummy structure that responds to anything. Because it behaves like a Hash though we don't need to register parameters or such, cc: @namusyaka in case I missed anything.