Class: Jekyll::AwesomeNav::NavResolver
- Inherits:
-
Object
- Object
- Jekyll::AwesomeNav::NavResolver
- Defined in:
- lib/jekyll/awesome_nav/nav_resolver.rb
Defined Under Namespace
Classes: ResolutionContext
Instance Method Summary collapse
- #apply(items, current_dir = @root_dir, inherited_append_unmatched: false, inherited_sort_options: SortOptions.from(nil), inherited_ignore_patterns: []) ⇒ Object
-
#initialize(root_dir:, nav_map:) ⇒ NavResolver
constructor
A new instance of NavResolver.
- #resolved_nav_dir(page_dir) ⇒ Object
Constructor Details
#initialize(root_dir:, nav_map:) ⇒ NavResolver
Returns a new instance of NavResolver.
8 9 10 11 12 13 |
# File 'lib/jekyll/awesome_nav/nav_resolver.rb', line 8 def initialize(root_dir:, nav_map:) @root_dir = root_dir @nav_map = nav_map @generated_by_dir = {} @generated_by_path = {} end |
Instance Method Details
#apply(items, current_dir = @root_dir, inherited_append_unmatched: false, inherited_sort_options: SortOptions.from(nil), inherited_ignore_patterns: []) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/jekyll/awesome_nav/nav_resolver.rb', line 15 def apply( items, current_dir = @root_dir, inherited_append_unmatched: false, inherited_sort_options: SortOptions.from(nil), inherited_ignore_patterns: [] ) index_generated(items) generated_items = generated_children_for(current_dir, items) nav_file = @nav_map[current_dir] = nav_file&. || NavFileOptions.new override_items = nav_file&.items context = ResolutionContext.new( append_unmatched: .append_unmatched_or(inherited_append_unmatched), sort_options: .(), ignore_patterns: .ignore_patterns_or(inherited_ignore_patterns) ) return resolve_generated_items(generated_items, current_dir, context) unless override_items matched = {} resolved = (override_items, current_dir, generated_items, context, matched) return resolved.first.children if same_dir_wrapper?(resolved, current_dir) return resolved unless context.append_unmatched resolved + unmatched_items(generated_items, matched, context, current_dir) end |
#resolved_nav_dir(page_dir) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/jekyll/awesome_nav/nav_resolver.rb', line 43 def resolved_nav_dir(page_dir) current = page_dir loop do return current if @nav_map.key?(current) return @root_dir if current == @root_dir break if current.empty? current = Utils.parent_dir(current) end @root_dir end |