Class: Jekyll::LanguagePlugin::Loaders::JekyllDataLoader

Inherits:
BaseLoader
  • Object
show all
Defined in:
lib/jekyll/language-plugin/loaders/jekyll_data_loader.rb

Instance Attribute Summary

Attributes inherited from BaseLoader

#site

Instance Method Summary collapse

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