ace-support-items 0.15.16 → 0.15.17

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: a38caecfe7baec161ef92edffb6b0682c8347a2aa5595bf16659806af50556c0
4
- data.tar.gz: f1a1c662c2cf9f570e7cded9997632ec0462953acb5aa772a6fe2c951d0ed394
3
+ metadata.gz: 377e58a49a35c4a328970fd2f2e88dc410eb7df235a56c5e513c3444f097f4d2
4
+ data.tar.gz: 4551619979ce7de032986074aba3a3b2da7f0bddd1825636a146ccba44266b63
5
5
  SHA512:
6
- metadata.gz: 784f3f6d39072de1b71fdab2fa6a22bc5c8ac06289cb642fb724bac3c6b062260b1f53a27e882259ed8d248cb34805d89bb2479c220cacfbe098811cb27b27cc
7
- data.tar.gz: f8b3d574bfc6c5033bc9138f813010ecf48b46d7dd979f27a9d45a908a35a59788b3b6c4b2b4374ab5dd7790034bbc9cb8185c9478a5eef4c23cf94685c3d2bb
6
+ metadata.gz: 00fee712d7aa01022e168a41d4b096fc8d74802d2bcef7f57e50fea5afd129a0cef59dc970fa616947d7d0db3429fe1e5934cf9b247d50cd96eb8200913cb476
7
+ data.tar.gz: 42ba9cf8bdc9c901b95afaf0ac994938b1c167c3349c27ba5f1b6e71db3cbc298c03b732fabdd855eeacfca40917185df9dc938375471cbba2bdc9414940d789
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.15.17] - 2026-11-10
11
+
12
+ ### Fixed
13
+
14
+ - Allow accessible-only discovery to skip unreadable descendants while preserving strict complete inventory and root checks.
15
+
10
16
  ## [0.15.16] - 2026-10-29
11
17
 
12
18
  ### Fixed
@@ -40,17 +40,17 @@ module Ace
40
40
 
41
41
  # Scan root directory recursively for items
42
42
  # @return [Array<ScanResult>] List of scan results, sorted by ID (chronological)
43
- def scan
43
+ def scan(accessible_only: false)
44
44
  return [] unless Dir.exist?(@root_dir)
45
45
 
46
46
  results = []
47
- scan_directory(@root_dir, results)
47
+ scan_directory(@root_dir, results, accessible_only: accessible_only)
48
48
  results.sort_by(&:id)
49
49
  end
50
50
 
51
51
  private
52
52
 
53
- def scan_directory(dir, results)
53
+ def scan_directory(dir, results, accessible_only:)
54
54
  Dir.entries(dir).sort.each do |entry|
55
55
  next if entry.start_with?(".")
56
56
 
@@ -65,13 +65,17 @@ module Ace
65
65
  results << result
66
66
  else
67
67
  # Folder has spec files but isn't an item (e.g., _maybe with orphan files) — recurse
68
- scan_directory(full_path, results)
68
+ scan_directory(full_path, results, accessible_only: accessible_only)
69
69
  end
70
70
  else
71
71
  # Recurse into subdirectory (for special folders like _maybe/)
72
- scan_directory(full_path, results)
72
+ scan_directory(full_path, results, accessible_only: accessible_only)
73
73
  end
74
74
  end
75
+ rescue Errno::EACCES, Errno::EPERM
76
+ # Only discovery may omit inaccessible descendants. A requested
77
+ # root and the default complete inventory always fail closed.
78
+ raise unless accessible_only && dir != @root_dir
75
79
  end
76
80
 
77
81
  def build_result(dir_path, file_path)
@@ -123,7 +123,7 @@ module Ace
123
123
  # frontmatter), never proceed with an empty hash.
124
124
  def self.parse_strict(file_path, content)
125
125
  Atoms::FrontmatterParser.parse!(content)
126
- rescue Psych::SyntaxError => e
126
+ rescue Psych::Exception => e
127
127
  raise ArgumentError,
128
128
  "#{file_path}: frontmatter YAML is invalid (#{e.message}); refusing to rewrite the file"
129
129
  end
@@ -3,7 +3,7 @@
3
3
  module Ace
4
4
  module Support
5
5
  module Items
6
- VERSION = "0.15.16"
6
+ VERSION = "0.15.17"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-support-items
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.16
4
+ version: 0.15.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-10-29 00:00:00.000000000 Z
10
+ date: 2026-11-10 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-core