expressir 2.4.38 → 2.4.39

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: 7c2f9a04afc470fffcb8ac3bd9c6b687868b9c1578037198bb0409af5ac340ea
4
- data.tar.gz: dca5009baf712c59a7244c9865b3474fd389c1b5d71bfc70e6db95c79272e880
3
+ metadata.gz: 408059056a25594dcdfbdd383b3f7fce596cc5d92e230d75f2d4d65b0c392313
4
+ data.tar.gz: 29672fcf24201ef182276990c813d5cd1f64abb523ad92278bfc2585c9327af6
5
5
  SHA512:
6
- metadata.gz: 3dbcb77f091fa21a43eba821ac69b009620977f21edf953fbb9fdea792192ba7e1b7fb912a51cf3581bc4c337ab931a78f44bd250b7bec1e58377c2df4833f9f
7
- data.tar.gz: fe8b7744df43bc2f7a7bc4f92dbafe23974f03d531b4150a0ed69d23e82ed886a2cd91ff2fdbb96d7aa1531e2860a87f9049e7162a16c0193d6b2a40fbf646a4
6
+ metadata.gz: 3cb4dbbbcd0c72895dc733337fadf69fe3adaeaa3c6a62af42b93f79f8ef3bed63bf72ff3649ca310d43ebfe73a26a32acfb03f65afc574d71459d683738602f
7
+ data.tar.gz: 669362f8784cce2e0ea4bb6ec7af2bf4940141f6b141df420c776759cddaccbf81e0faa764808af7221505dedd60f297c28e42fbc021c50f20ffc38c770b18a8
@@ -21,6 +21,7 @@ module Expressir
21
21
  def from_file(path)
22
22
  manifest = from_yaml(File.read(path))
23
23
  manifest.base_dir = File.dirname(File.expand_path(path))
24
+ manifest.validate_entries!
24
25
  manifest
25
26
  end
26
27
  end
@@ -40,6 +41,22 @@ module Expressir
40
41
  def schema_path
41
42
  File.expand_path(schema, base_dir || ".")
42
43
  end
44
+
45
+ # Entries are plain file paths. Structured shapes (the
46
+ # `{path: ...}` mapping of the schema-side manifest) are a
47
+ # different format and must fail at load, not as a TypeError
48
+ # deep in path resolution.
49
+ def validate_entries!
50
+ files.to_a.each_with_index do |file, index|
51
+ next if file.is_a?(String)
52
+
53
+ raise Expressir::ManifestValidationError,
54
+ "manifest 'files' entry #{index} is not a plain file " \
55
+ "path; the dataset manifest takes a list of paths " \
56
+ "('files:\\n - dataset.p21'), not the schema " \
57
+ "manifest's '{path: ...}' entries"
58
+ end
59
+ end
43
60
  end
44
61
  end
45
62
  end
@@ -3,6 +3,6 @@ module Expressir
3
3
  # autoload it (Ruby autoload only works for module/class constants, not
4
4
  # for string constants like `Expressir::VERSION`).
5
5
  module Version
6
- VERSION = "2.4.38".freeze
6
+ VERSION = "2.4.39".freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.38
4
+ version: 2.4.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-21 00:00:00.000000000 Z
11
+ date: 2026-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys