-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Handle no serializer source file to digest. #1271
Conversation
output warning Closes rails-api#1176
Please set `::_cache_digest` of the serializer | ||
if you'd like to cache it. | ||
EOF | ||
''.freeze |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 very descriptive error message explains the problem, and says what to do about it! yay
🎉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but why is the freeze on an empty string?
Or is this something special with how the <<-STRING syntax works?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, just a premature optimization :)
B mobile phone
On Oct 15, 2015, at 6:25 AM, L. Preston Sego III notifications@github.com wrote:
In lib/active_model/serializer.rb:
@@ -27,6 +27,20 @@ class Serializer
)
/x
Hashes contents of file for +_cache_digest+
- def self.digest_caller_file(caller_line)
serializer_file_path = caller_line[CALLER_FILE]
serializer_file_contents = IO.read(serializer_file_path)
Digest::MD5.hexdigest(serializer_file_contents)
- rescue TypeError, Errno::ENOENT
warn <<-EOF.strip_heredoc
Cannot digest non-existent file: '#{caller_line}'.
Please set `::_cache_digest` of the serializer
if you'd like to cache it.
EOF
but why is the freeze on an empty string?''.freeze
Or is this something special with how the <<-STRING syntax works?
—
Reply to this email directly or view it on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have we fixed the case where the error is spit because the file name contains a whitespace?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't think so
B mobile phone
On Oct 21, 2015, at 3:53 PM, Lucas Hosseini notifications@github.com wrote:
In lib/active_model/serializer.rb:
@@ -27,6 +27,20 @@ class Serializer
)
/x
Hashes contents of file for +_cache_digest+
- def self.digest_caller_file(caller_line)
serializer_file_path = caller_line[CALLER_FILE]
serializer_file_contents = IO.read(serializer_file_path)
Digest::MD5.hexdigest(serializer_file_contents)
- rescue TypeError, Errno::ENOENT
warn <<-EOF.strip_heredoc
Cannot digest non-existent file: '#{caller_line}'.
Please set `::_cache_digest` of the serializer
if you'd like to cache it.
EOF
Have we fixed the case where the error is spit because the file name contains a whitespace?''.freeze
—
Reply to this email directly or view it on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this PR fix actually? Was the problem not all along that we don't handle whitespace in filenames?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When there's no source file. More info in description and tests
B mobile phone
On Oct 21, 2015, at 6:06 PM, Lucas Hosseini notifications@github.com wrote:
What does this PR fix actually? Was the problem not all along that we don't handle whitespace in filenames?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah but what I meant was that the bug actually arose in the case the source file was deemed non-existent because the regex would not allow for whitespace.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok
B mobile phone
On Oct 21, 2015, at 6:20 PM, Lucas Hosseini notifications@github.com wrote:
In lib/active_model/serializer.rb:
@@ -27,6 +27,20 @@ class Serializer
)
/x
Hashes contents of file for +_cache_digest+
- def self.digest_caller_file(caller_line)
serializer_file_path = caller_line[CALLER_FILE]
serializer_file_contents = IO.read(serializer_file_path)
Digest::MD5.hexdigest(serializer_file_contents)
- rescue TypeError, Errno::ENOENT
warn <<-EOF.strip_heredoc
Cannot digest non-existent file: '#{caller_line}'.
Please set `::_cache_digest` of the serializer
if you'd like to cache it.
EOF
Yeah but what I meant was that the bug actually arose in the case the source file was deemed non-existent because the regex would not allow for whitespace.''.freeze
—
Reply to this email directly or view it on GitHub.
@NullVoxPopuli wanna label LGTM? |
LGTM. Will merge when Travis passes |
Handle no serializer source file to digest.
Handle no serializer source file to digest; output warning. Closes #1176
Outputs warning when no serializer source found.
Extracted from #1260