Sha256: 11cda6524d25df47e1ede1941a06843a7eab892234b46f27843b461e02dae206

Contents?: true

Size: 1.06 KB

Versions: 11

Compression:

Stored size: 1.06 KB

Contents

module Jekyll
  class LayoutReader
    attr_reader :site
    def initialize(site)
      @site = site
      @layouts = {}
    end

    def read
      layout_entries.each do |f|
        @layouts[layout_name(f)] = Layout.new(site, layout_directory, f)
      end

      @layouts
    end

    def layout_directory
      @layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
    end

    private

    def layout_entries
      entries = []
      within(layout_directory) do
        entries = EntryFilter.new(site).filter(Dir['**/*.*'])
      end
      entries
    end

    def layout_name(file)
      file.split(".")[0..-2].join(".")
    end

    def within(directory)
      return unless File.exist?(directory)
      Dir.chdir(directory) { yield }
    end

    def layout_directory_inside_source
      Jekyll.sanitized_path(site.source, site.config['layouts'])
    end

    def layout_directory_in_cwd
      dir = Jekyll.sanitized_path(Dir.pwd, site.config['layouts'])
      if File.directory?(dir)
        dir
      else
        nil
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
jekyll-2.4.0 lib/jekyll/layout_reader.rb
jekyll-2.3.0 lib/jekyll/layout_reader.rb
jekyll-2.2.0 lib/jekyll/layout_reader.rb
jekyll-2.1.1 lib/jekyll/layout_reader.rb
jekyll-2.1.0 lib/jekyll/layout_reader.rb
jekyll-2.0.3 lib/jekyll/layout_reader.rb
jekyll-2.0.2 lib/jekyll/layout_reader.rb
jekyll-2.0.1 lib/jekyll/layout_reader.rb
jekyll-2.0.0 lib/jekyll/layout_reader.rb
jekyll-2.0.0.rc1 lib/jekyll/layout_reader.rb
jekyll-2.0.0.alpha.3 lib/jekyll/layout_reader.rb