expressir 2.4.30 → 2.4.31

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: 422611b8889e4e8c78ca3a4c2482b3988dcda82d3035d813c462b7c77f3eac50
4
- data.tar.gz: cd132662d82929629aa50ad7b7ad0dd238cd744af87e3ec0cda519b8ab949575
3
+ metadata.gz: 061350f84465e77142b15dc708e0773f77626084711b2ae46e859775d0c07c5d
4
+ data.tar.gz: 41101569510c6b020847410ab0bc83cf403163d04b78743bfc8085ca863b80f3
5
5
  SHA512:
6
- metadata.gz: fad716d2795853e70bc21eda9dec8baf15406d6a9afe9cba82bd138f672d8c852876664cde22c9ef10331d4b514769195c11cd5e3d7e5fec0409bb3589777f7a
7
- data.tar.gz: e23c2fd8555d20aac0972817f6af0e6b242602a4deca1df7e1e2dfcbee22200f771a4b12afd48340b2efa648bedaed9505244cc343eec7a7935578602092c435
6
+ metadata.gz: 739f6f3d5ea7d153b0e701204d1390710e1ec99bd3602a3d934df28aa6d8f6df407f8a1d83e799f8ba5f93b65bdffa891f1b6abba1965da955ef8f782deae39e
7
+ data.tar.gz: 87c334b0480296cc1b6f8161c0b91fbb9b2d5641d537f6e4f129eb0780fab9361254ff6708e20ecc186342a1ee2c3b0877f82d2debde038740952ec8bc938603
@@ -113,7 +113,12 @@ module Expressir
113
113
  # Nearest ancestor directory NAMED `schemas`, or nil.
114
114
  def ancestor_schemas_dir(root_path)
115
115
  dir = File.dirname(File.expand_path(root_path))
116
- until dir == "/"
116
+ # dirname reaches a fixed point at the filesystem root: "/" on
117
+ # POSIX, "D:/" (or a UNC root) on windows. Comparing against "/"
118
+ # alone spun forever on windows - every rake run since this
119
+ # shipped (e0f6651, 2026-09-24) burned the full 6h runner
120
+ # budget in the first expand example (#487).
121
+ until dir == "/" || dir == File.dirname(dir)
117
122
  return dir if File.basename(dir) == "schemas"
118
123
 
119
124
  dir = File.dirname(dir)
@@ -41,7 +41,13 @@ module Expressir
41
41
  # ("RULE r FOR" parsed as one simpleId). simpleId additionally
42
42
  # matches as a single quantified Re, which needs no exemption;
43
43
  # the two mechanisms agree and stay for defense in depth.
44
- skip(:trivia, whitespace: :space, exempt: %i[simpleId digits])
44
+ # The whitespace/remark rules manage their own trivia end to end
45
+ # (they ARE the trivia surface for remarks); injection around
46
+ # them breaks consecutive remark lines on the Ruby engine
47
+ # ("-- X\n--\nSCHEMA ..." failed - the #487 windows follow-up,
48
+ # parsanol-ruby#195 family).
49
+ skip(:trivia, whitespace: :space,
50
+ exempt: %i[simpleId digits spaces space embeddedRemark tailRemark])
45
51
 
46
52
  # Get cached parser instance (thread-safe)
47
53
  # Reusing the parser avoids the overhead of reinitializing all rule definitions
@@ -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.30".freeze
6
+ VERSION = "2.4.31".freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.30
4
+ version: 2.4.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.