phlexite-content 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e21c7d034045124d7d84960df578cbc639d9c6728793098b8514ddcdaa84665
4
- data.tar.gz: ed2d93a2edc29f89d8dda0c1f56d4297c3435b1f3c8d45092c2927633cfebbb1
3
+ metadata.gz: 211282056e4c80728e97a7cb7eacc3d6d08b78774775bde89f2374b52b19ef64
4
+ data.tar.gz: de86f00af87404cd2e7a93c289f83063a57739615308b84549d589efc1fa6180
5
5
  SHA512:
6
- metadata.gz: e698cacabca4ee3adaa2ccd09eda0927439258371241921f5c15d3825cb35ec9935f519914058995dc1eab37cd8a663e5951733373422ddc4673d97bfdfa2541
7
- data.tar.gz: a8121fb9c4e580f828de64be57d6dd6f1dcde2283d148dc1dddaa9f200397d34486dd3d4b69e82eab58166f2d52a968b49a795680a78c7175e0954fbc51a8218
6
+ metadata.gz: e84e08ad5b01d65875ddf7393a55125ca00d4eeb9c3ebd59c60c6f6366aaea7af96f5d24d1727eedc6a2917015b3bc51d5d7f7e20e8595f20e6157344fc19d46
7
+ data.tar.gz: 94e65043dc51d363e4ecbb0cc1640d43d093e62ffe6b1e3997574772fb91d27d0bd3ab78a8ee84ee98ebe69af170f8aab45c0606b3a251cdb8e3097323e2139e
@@ -8,17 +8,13 @@ require 'front_matter_parser'
8
8
  module Phlexite
9
9
  module Content
10
10
  class Collection
11
- def initialize(glob, template, prefix: "", out: "")
12
- @files = Dir[glob]
11
+ def initialize(source, template, prefix: "", out: "")
12
+ @source = source
13
13
  @prefix = prefix
14
14
  @out = out
15
15
  @template = template
16
16
  end
17
17
 
18
- def entries(prefix: @prefix, out: @out)
19
- @files.map { |f| Entry.new(f, get_out_path(f, prefix: prefix, out: out)) }
20
- end
21
-
22
18
  def build(site, prefix: @prefix, out: @out)
23
19
  entries.each do |f|
24
20
  next unless f.filename.start_with? prefix
@@ -29,6 +25,10 @@ module Phlexite
29
25
  end
30
26
  end
31
27
 
28
+ def entries(prefix: @prefix, out: @out)
29
+ @source.entries.map { |f| Entry.from_source(f, method(:get_out_path), prefix, out) }
30
+ end
31
+
32
32
  private
33
33
 
34
34
  def get_out_path(file, prefix: @prefix, out: @out) = "#{File.join(out, File.dirname(file).delete_prefix(prefix), File.basename(file, ".*"))}.html"
@@ -5,12 +5,17 @@ module Phlexite
5
5
  class Entry
6
6
  attr_reader :filename, :out_path
7
7
 
8
- def initialize(filename, out_path)
8
+ def initialize(filename, out_path, reader)
9
9
  @filename = filename
10
10
  @out_path = out_path
11
+ @reader = reader
11
12
  end
12
13
 
13
- def read = FrontMatterParser::Parser.parse_file @filename
14
+ def self.from_source(source_entry, get_out_path, prefix, out)
15
+ self.new(source_entry.filename, get_out_path.call(source_entry.filename, prefix: prefix, out: out), source_entry.reader)
16
+ end
17
+
18
+ def read = @reader.call(@filename)
14
19
  end
15
20
  end
16
21
  end
@@ -0,0 +1,12 @@
1
+ require 'front_matter_parser'
2
+
3
+ module Phlexite
4
+ module Content
5
+ class MarkdownSource
6
+ def initialize(glob)
7
+ @files = Dir[glob]
8
+ end
9
+ def entries = @files.map { |f| SourceEntry.new(f, proc { FrontMatterParser::Parser.parse_file f }) }
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Phlexite
2
+ module Content
3
+ SourceEntry = Struct.new(:filename, :reader)
4
+ end
5
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Phlexite
4
4
  module Content
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'content/source_entry'
3
4
  require_relative 'content/entry'
4
5
  require_relative 'content/collection'
6
+ require_relative 'content/markdown_source'
5
7
  require_relative "content/version"
6
8
 
7
9
  module Phlexite
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlexite-content
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleks Rutins
@@ -50,6 +50,8 @@ files:
50
50
  - lib/phlexite/content.rb
51
51
  - lib/phlexite/content/collection.rb
52
52
  - lib/phlexite/content/entry.rb
53
+ - lib/phlexite/content/markdown_source.rb
54
+ - lib/phlexite/content/source_entry.rb
53
55
  - lib/phlexite/content/version.rb
54
56
  - sig/phlexite/content.rbs
55
57
  homepage: https://phlexite.farthergate.com/modules/content
@@ -73,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
75
  - !ruby/object:Gem::Version
74
76
  version: '0'
75
77
  requirements: []
76
- rubygems_version: 3.6.9
78
+ rubygems_version: 4.0.16
77
79
  specification_version: 4
78
80
  summary: A module for loading Markdown or other content collections in Phlexite.
79
81
  test_files: []