decant 0.2.0 → 0.3.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: ff0fe21b57ea4db012b2cedce3a14b6e8b34186a85071525949431524f0cdc4b
4
- data.tar.gz: a6953eace2994504c734d002f8357aacb1b0563a6a31513684826888c7aefe59
3
+ metadata.gz: 90e12a57f5b2470e597cf6070cedd064bd26bb1680fa9e14a337a9ec8c712888
4
+ data.tar.gz: 9ebce2f4febbfa2449cf671ab75781463df89b37e63359320014710dd613baae
5
5
  SHA512:
6
- metadata.gz: 66aee785137091d9a134161e3b45cd60b85e7e8d1d4f5a9a7601d4b389b83a1f408d0b08bd15460a101379c00137d568ee6070a699b28571dfaab6aea1a8ec40
7
- data.tar.gz: fc536bc67d8a596add87ebb75ded2cd81bbbda22f93e0ae7b1b9e6de01fc46c5b565b83415a119bf4edf37552e36efc98ca91550784cfb91e54e0781e03decd7
6
+ metadata.gz: df551129f9cbf4222331f01cad5ddf4651fa631ad5a6d7b2fa2dc4f83f7f908e12d4c958278bf96a3e59d4e6cd019d788d6cc4b4fec7dfeb38fd439eb1cd724f
7
+ data.tar.gz: 351ffd284c342a388f324019d09c97bb19d8761b0f90457cb49aa4d855e54c1c2f5c54960303e4d30b82eb75876a3a2f25828e281df57f58954d7136528ebc77
data/CHANGELOG.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## Version 0.3.0 - 2024-11-19
4
+
5
+ - Add `Content#relative_path` which returns a file's relative path within its collection.
6
+
3
7
  ## Version 0.2.0 - 2024-10-13
4
8
 
5
- - Add support for a content instance knowing its own `#slug` - its relative path within its collection:
9
+ - Add support for a content instance knowing its own `#slug` - its extension-less relative path within its collection:
6
10
 
7
11
  ```ruby
8
12
  Page = Decant.define(dir: 'content', ext: 'md')
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Ruby](https://github.com/benpickles/decant/actions/workflows/main.yml/badge.svg)](https://github.com/benpickles/decant/actions/workflows/main.yml)
4
4
 
5
- A frontmatter-aware wrapper around a directory of static content.
5
+ A dependency-free frontmatter-aware framework-agnostic wrapper around a directory of static content.
6
6
 
7
7
  ## Installation
8
8
 
@@ -44,13 +44,22 @@ module Decant
44
44
  dir.glob("#{pattern}#{ext}").select { |path| path.file? }
45
45
  end
46
46
 
47
+ # The relative path of +path+ within {#dir}.
48
+ #
49
+ # @param path [Pathname]
50
+ #
51
+ # @return [String]
52
+ def relative_path_for(path)
53
+ path.relative_path_from(dir).to_s
54
+ end
55
+
47
56
  # The extension-less relative path of +path+ within {#dir}.
48
57
  #
49
58
  # @param path [Pathname]
50
59
  #
51
60
  # @return [String]
52
61
  def slug_for(path)
53
- relative_path = path.relative_path_from(dir).to_s
62
+ relative_path = relative_path_for(path)
54
63
 
55
64
  # The collection has no configured extension, files are identified by
56
65
  # their full (relative) path so there's no extension to remove.
@@ -49,6 +49,20 @@ module Decant
49
49
  end
50
50
  end
51
51
 
52
+ # The relative path of the file within its collection.
53
+ #
54
+ # @example
55
+ # Page = Decant.define(dir: 'content', ext: 'md')
56
+ #
57
+ # page = Page.find('features/slugs')
58
+ # page.path.expand_path # => "/Users/dave/my-website/content/features/slugs.md"
59
+ # page.relative_path # => "features/slugs.md"
60
+ #
61
+ # @return [String]
62
+ def relative_path
63
+ self.class.collection.relative_path_for(path)
64
+ end
65
+
52
66
  # The extension-less relative path of the file within its collection.
53
67
  #
54
68
  # @example
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Decant
3
- VERSION = '0.2.0'
3
+ VERSION = '0.3.0'
4
4
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Pickles
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-13 00:00:00.000000000 Z
11
+ date: 2024-11-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A frontmatter-aware wrapper around a directory of static content
13
+ description: A dependency-free frontmatter-aware framework-agnostic wrapper around
14
+ a directory of static content
14
15
  email:
15
16
  - spideryoung@gmail.com
16
17
  executables: []
@@ -57,5 +58,6 @@ requirements: []
57
58
  rubygems_version: 3.5.16
58
59
  signing_key:
59
60
  specification_version: 4
60
- summary: A frontmatter-aware wrapper around a directory of static content
61
+ summary: A dependency-free frontmatter-aware framework-agnostic wrapper around a directory
62
+ of static content
61
63
  test_files: []