Class: Jekyll::PostReader
- Inherits:
-
Object
- Object
- Jekyll::PostReader
- Defined in:
- lib/jekyll/readers/post_reader.rb
Instance Attribute Summary collapse
-
#site ⇒ Object
readonly
Returns the value of attribute site.
-
#unfiltered_content ⇒ Object
readonly
Returns the value of attribute unfiltered_content.
Instance Method Summary collapse
-
#initialize(site) ⇒ PostReader
constructor
A new instance of PostReader.
-
#read_content(dir, magic_dir, matcher) ⇒ Object
Read all the content files from <source>/<dir>/magic_dir and return them with the type klass.
-
#read_drafts(dir) ⇒ Object
Read all the files in <source>/<dir>/_drafts and create a new Document object with each one.
-
#read_posts(dir) ⇒ Object
Read all the files in <source>/<dir>/_posts and create a new Document object with each one.
-
#read_publishable(dir, magic_dir, matcher) ⇒ Object
Read all the files in <source>/<dir>/<magic_dir> and create a new Document object with each one insofar as it matches the regexp matcher.
Constructor Details
#initialize(site) ⇒ PostReader
Returns a new instance of PostReader.
4 5 6 |
# File 'lib/jekyll/readers/post_reader.rb', line 4 def initialize(site) @site = site end |
Instance Attribute Details
#site ⇒ Object (readonly)
Returns the value of attribute site.
3 4 5 |
# File 'lib/jekyll/readers/post_reader.rb', line 3 def site @site end |
#unfiltered_content ⇒ Object (readonly)
Returns the value of attribute unfiltered_content.
3 4 5 |
# File 'lib/jekyll/readers/post_reader.rb', line 3 def unfiltered_content @unfiltered_content end |
Instance Method Details
#read_content(dir, magic_dir, matcher) ⇒ Object
Read all the content files from <source>/<dir>/magic_dir
and return them with the type klass.
dir - The String relative path of the directory to read. magic_dir - The String relative directory to <dir>,
looks for content here.
klass - The return type of the content.
Returns klass type of content files
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/jekyll/readers/post_reader.rb', line 51 def read_content(dir, magic_dir, matcher) @site.reader.get_entries(dir, magic_dir).map do |entry| next unless entry =~ matcher path = @site.in_source_dir(File.join(dir, magic_dir, entry)) Document.new(path, { :site => @site, :collection => @site.posts }) end.reject(&:nil?) end |
#read_drafts(dir) ⇒ Object
Read all the files in <source>/<dir>/_drafts and create a new Document object with each one.
dir - The String relative path of the directory to read.
Returns nothing.
14 15 16 |
# File 'lib/jekyll/readers/post_reader.rb', line 14 def read_drafts(dir) read_publishable(dir, '_drafts', Document::DATELESS_FILENAME_MATCHER) end |
#read_posts(dir) ⇒ Object
Read all the files in <source>/<dir>/_posts and create a new Document object with each one.
dir - The String relative path of the directory to read.
Returns nothing.
24 25 26 |
# File 'lib/jekyll/readers/post_reader.rb', line 24 def read_posts(dir) read_publishable(dir, '_posts', Document::DATE_FILENAME_MATCHER) end |
#read_publishable(dir, magic_dir, matcher) ⇒ Object
Read all the files in <source>/<dir>/<magic_dir> and create a new Document object with each one insofar as it matches the regexp matcher.
dir - The String relative path of the directory to read.
Returns nothing.
34 35 36 37 38 39 40 |
# File 'lib/jekyll/readers/post_reader.rb', line 34 def read_publishable(dir, magic_dir, matcher) read_content(dir, magic_dir, matcher).tap do |docs| docs.each(&:read) end.select do |doc| site.publisher.publish?(doc) end end |