Class: Jekyll::AwesomeNav::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/awesome_nav/config.rb

Constant Summary collapse

DEFAULTS =
{
  "enabled" => true,
  "root" => "docs",
  "nav_filename" => ".nav.yml",
  "ignore" => ["assets/**"],
  "include" => ["**/*.md", "**/*.html", "**/*.htm"]
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(raw_config) ⇒ Config

Returns a new instance of Config.

Raises:



14
15
16
17
18
# File 'lib/jekyll/awesome_nav/config.rb', line 14

def initialize(raw_config)
  raise Error, "awesome_nav config must be a mapping" unless raw_config.nil? || raw_config.is_a?(Hash)

  @data = DEFAULTS.merge(raw_config || {})
end

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/jekyll/awesome_nav/config.rb', line 20

def enabled?
  @data["enabled"]
end

#ignore_patternsObject



32
33
34
35
36
37
# File 'lib/jekyll/awesome_nav/config.rb', line 32

def ignore_patterns
  value = @data["ignore"]
  return [] if value.nil?

  Array(value).map { |pattern| Utils.normalize_dir(pattern.to_s) }.reject(&:empty?)
end

#include_patternsObject



39
40
41
42
43
44
45
# File 'lib/jekyll/awesome_nav/config.rb', line 39

def include_patterns
  value = @data["include"]
  return nil if value.nil?

  patterns = Array(value).map { |pattern| Utils.normalize_dir(pattern.to_s) }.reject(&:empty?)
  patterns.empty? ? nil : patterns
end


28
29
30
# File 'lib/jekyll/awesome_nav/config.rb', line 28

def nav_filename
  @data["nav_filename"].to_s
end

#root_dirObject



24
25
26
# File 'lib/jekyll/awesome_nav/config.rb', line 24

def root_dir
  Utils.normalize_dir(@data["root"])
end