Class: Jekyll::L10n::SiteConfigAccessor

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-l10n/utils/site_config_accessor.rb

Overview

Accesses Jekyll site configuration properties.

SiteConfigAccessor provides a unified interface for accessing Jekyll site properties, handling both normal Jekyll site objects and test doubles (hashes). This enables easier testing and more flexible configuration handling.

Key responsibilities:

  • Extract localization data from site configuration

  • Access site source directory

  • Access site destination directory

  • Handle both Jekyll site objects and hash-based doubles

Examples:

locales_data = SiteConfigAccessor.extract_locales_data(site)
source = SiteConfigAccessor.source(site)
dest = SiteConfigAccessor.dest(site)

Class Method Summary collapse

Class Method Details

.dest(site) ⇒ String

Get the site destination directory.

Parameters:

  • site (Jekyll::Site, Hash)

    Jekyll site object or hash double

Returns:

  • (String)

    Path to site destination directory



46
47
48
# File 'lib/jekyll-l10n/utils/site_config_accessor.rb', line 46

def self.dest(site)
  site.is_a?(Hash) ? site['dest'] : site.dest
end

.extract_locales_data(site) ⇒ Hash

Extract localization configuration from site.

Accesses the with_locales_data configuration which contains the locales, extraction settings, and other localization options.

Parameters:

  • site (Jekyll::Site, Hash)

    Jekyll site object or hash double

Returns:

  • (Hash)

    Localization configuration hash or empty hash if not found



29
30
31
32
# File 'lib/jekyll-l10n/utils/site_config_accessor.rb', line 29

def self.extract_locales_data(site)
  config = site.is_a?(Hash) ? site['config'] : site.config
  config.dig('defaults', 0, 'values', 'with_locales_data') || {}
end

.source(site) ⇒ String

Get the site source directory.

Parameters:

  • site (Jekyll::Site, Hash)

    Jekyll site object or hash double

Returns:

  • (String)

    Path to site source directory



38
39
40
# File 'lib/jekyll-l10n/utils/site_config_accessor.rb', line 38

def self.source(site)
  site.is_a?(Hash) ? site['source'] : site.source
end