Class: Jekyll::AwesomeNav::PageSet
- Inherits:
-
Object
- Object
- Jekyll::AwesomeNav::PageSet
- Includes:
- Enumerable
- Defined in:
- lib/jekyll/awesome_nav/page_set.rb
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #ignored?(source_path, patterns) ⇒ Boolean
- #included?(source_path, patterns) ⇒ Boolean
-
#initialize(site, config) ⇒ PageSet
constructor
A new instance of PageSet.
- #root_page ⇒ Object
Constructor Details
#initialize(site, config) ⇒ PageSet
Returns a new instance of PageSet.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 8 def initialize(site, config) root_dir = config.root_dir include_patterns = config.include_patterns ignore_patterns = config.ignore_patterns @pages = site.pages.select do |page| source_path = Utils.source_path_for(page) next false if File.basename(page.path) == config.nav_filename next false unless included?(source_path, include_patterns) next false if ignored?(source_path, ignore_patterns) dir = Utils.source_dir_for(page) root_dir.empty? || dir == root_dir || dir.start_with?("#{root_dir}/") end @root_dir = root_dir end |
Instance Method Details
#each(&block) ⇒ Object
25 26 27 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 25 def each(&block) @pages.each(&block) end |
#empty? ⇒ Boolean
29 30 31 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 29 def empty? @pages.empty? end |
#ignored?(source_path, patterns) ⇒ Boolean
37 38 39 40 41 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 37 def ignored?(source_path, patterns) patterns.any? do |pattern| File.fnmatch?(pattern, source_path, File::FNM_PATHNAME | File::FNM_DOTMATCH) end end |
#included?(source_path, patterns) ⇒ Boolean
43 44 45 46 47 48 49 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 43 def included?(source_path, patterns) return true if patterns.nil? patterns.any? do |pattern| File.fnmatch?(pattern, source_path, File::FNM_PATHNAME | File::FNM_DOTMATCH) end end |
#root_page ⇒ Object
33 34 35 |
# File 'lib/jekyll/awesome_nav/page_set.rb', line 33 def root_page @pages.find { |page| Utils.source_dir_for(page) == @root_dir && Utils.index_page?(page) } end |