Fix deprecation message for missing doc method (#8960)
Merge pull request 8960
This commit is contained in:
parent
d46bef774a
commit
88044a2ece
|
@ -382,3 +382,35 @@ Scenario: Use page.render_with_liquid variable
|
||||||
And the _site directory should exist
|
And the _site directory should exist
|
||||||
And I should see "next post: Some like it hot" in "_site/2009/03/27/star-wars.html"
|
And I should see "next post: Some like it hot" in "_site/2009/03/27/star-wars.html"
|
||||||
And I should see "Previous post: Some like it hot" in "_site/2009/05/27/terminator.html"
|
And I should see "Previous post: Some like it hot" in "_site/2009/05/27/terminator.html"
|
||||||
|
|
||||||
|
Scenario: Deprecate calling data keys directly via Ruby
|
||||||
|
Given I have a _posts directory
|
||||||
|
And I have a _plugins directory
|
||||||
|
And I have the following post:
|
||||||
|
| title | date | content |
|
||||||
|
| My post | 2016-01-21 | Luke, I am your father. |
|
||||||
|
And I have a "_plugins/foo.rb" file with content:
|
||||||
|
"""
|
||||||
|
Jekyll::Hooks.register :documents, :pre_render do |doc|
|
||||||
|
doc.title
|
||||||
|
end
|
||||||
|
"""
|
||||||
|
And I have a "_plugins/bar.rb" file with content:
|
||||||
|
"""
|
||||||
|
module FooBar
|
||||||
|
def self.dummy?(doc)
|
||||||
|
doc.title == "Dummy Document"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Jekyll::Hooks.register :documents, :post_render do |doc|
|
||||||
|
FooBar.dummy?(doc)
|
||||||
|
end
|
||||||
|
"""
|
||||||
|
When I run jekyll build
|
||||||
|
Then I should get a zero exit status
|
||||||
|
And the _site directory should exist
|
||||||
|
And I should see "Deprecation: Document#title" in the build output
|
||||||
|
And I should see "_plugins/foo.rb:2" in the build output
|
||||||
|
And I should see "_plugins/bar.rb:3" in the build output
|
||||||
|
But I should not see "lib/jekyll/document.rb" in the build output
|
||||||
|
|
|
@ -406,9 +406,8 @@ module Jekyll
|
||||||
# Override of method_missing to check in @data for the key.
|
# Override of method_missing to check in @data for the key.
|
||||||
def method_missing(method, *args, &blck)
|
def method_missing(method, *args, &blck)
|
||||||
if data.key?(method.to_s)
|
if data.key?(method.to_s)
|
||||||
Jekyll::Deprecator.deprecation_message "Document##{method} is now a key "\
|
Jekyll::Deprecator.deprecation_message "Document##{method} is now a key in the #data hash."
|
||||||
"in the #data hash."
|
Jekyll.logger.warn "", "Called by #{caller(1..1)[0]}."
|
||||||
Jekyll::Deprecator.deprecation_message "Called by #{caller(0..0)}."
|
|
||||||
data[method.to_s]
|
data[method.to_s]
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
|
|
Loading…
Reference in New Issue