Class: Jekyll::LanguagePlugin::Loaders::JekyllDataLoader
- Inherits:
-
BaseLoader
- Object
- BaseLoader
- Jekyll::LanguagePlugin::Loaders::JekyllDataLoader
- Defined in:
- lib/jekyll/language-plugin/loaders/jekyll_data_loader.rb
Instance Attribute Summary
Attributes inherited from BaseLoader
Instance Method Summary collapse
- #get(key, language) ⇒ Object
- #get_language_data(language) ⇒ Object
-
#initialize(site) ⇒ JekyllDataLoader
constructor
A new instance of JekyllDataLoader.
Methods inherited from BaseLoader
#get_with_placeholders, #load, #loaded?, #resolve_dot_notation, #traverse_hash
Constructor Details
#initialize(site) ⇒ JekyllDataLoader
Returns a new instance of JekyllDataLoader.
8 9 10 |
# File 'lib/jekyll/language-plugin/loaders/jekyll_data_loader.rb', line 8 def initialize(site) super end |
Instance Method Details
#get(key, language) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/jekyll/language-plugin/loaders/jekyll_data_loader.rb', line 12 def get(key, language) key = resolve_dot_notation(key) data = get_language_data(language) traverse_hash(data, key) end |
#get_language_data(language) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/jekyll/language-plugin/loaders/jekyll_data_loader.rb', line 19 def get_language_data(language) @language_data ||= site.config['language_data'].to_s || 'data.lang.%%' language_data_l = @language_data.gsub("%%", language) key = resolve_dot_notation(language_data_l) obj = site.send(key.shift) obj = traverse_hash(obj, key) raise Jekyll::LanguagePlugin::PluginError.new("Invalid language data configuration. Cannot retrieve data for language #{language} at #{language_data_l}") if obj.nil? obj end |