rng 0.3.4 → 0.3.5
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 +4 -4
- data/lib/rng/include.rb +1 -1
- data/lib/rng/include_processor.rb +25 -2
- data/lib/rng/parse_tree_processor.rb +5 -1
- data/lib/rng/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ebbcb6ae7f7313b3343ba5b95d4378759edc347a45bbac8ba6963ea38481cd96
|
|
4
|
+
data.tar.gz: ea8e1aef28333c0de0d3ec1ebbbf33724e98657cdd7d61c15794f9b241227a20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8bf076f9915632658de9b5ed92a5f25ade9dab9c379da1faf02cfb26868db548cf1cc7b102de344c441a479731059364012af79929b67b50c0876b05c43ba4b5
|
|
7
|
+
data.tar.gz: 32dbfd869f762de72565c6110c4965b8e907a47373824b5f7ce0d7f32af605250310ddf677a76e3cd6588acdda9f37af19ea877acd380273e0b57884089054ff
|
data/lib/rng/include.rb
CHANGED
|
@@ -321,7 +321,8 @@ module Rng
|
|
|
321
321
|
override[:definitions].each do |override_def|
|
|
322
322
|
# Check if names match
|
|
323
323
|
next unless source_def[:name] && override_def[:name] &&
|
|
324
|
-
|
|
324
|
+
extract_name_from_identifier(source_def) ==
|
|
325
|
+
extract_name_from_identifier(override_def)
|
|
325
326
|
|
|
326
327
|
# Use override instead of source
|
|
327
328
|
target_tree[:definitions] << override_def
|
|
@@ -343,7 +344,8 @@ module Rng
|
|
|
343
344
|
|
|
344
345
|
source_tree[:definitions]&.each do |source_def|
|
|
345
346
|
next unless source_def[:name] && override_def[:name] &&
|
|
346
|
-
|
|
347
|
+
extract_name_from_identifier(source_def) ==
|
|
348
|
+
extract_name_from_identifier(override_def)
|
|
347
349
|
|
|
348
350
|
matched = true
|
|
349
351
|
break
|
|
@@ -354,6 +356,27 @@ module Rng
|
|
|
354
356
|
end
|
|
355
357
|
end
|
|
356
358
|
|
|
359
|
+
# Extract identifier string from a definition name hash.
|
|
360
|
+
# Handles both {:identifier => "name"} and
|
|
361
|
+
# {:identifier_parts => [{:char => "n"}, ...]} structures.
|
|
362
|
+
def extract_name_from_identifier(defn)
|
|
363
|
+
name = defn[:name]
|
|
364
|
+
return nil unless name.is_a?(Hash)
|
|
365
|
+
|
|
366
|
+
if name[:identifier]
|
|
367
|
+
extract_string(name[:identifier])
|
|
368
|
+
elsif name[:identifier_parts]
|
|
369
|
+
name[:identifier_parts].map do |part|
|
|
370
|
+
if part.is_a?(Hash) && part[:char]
|
|
371
|
+
c = part[:char]
|
|
372
|
+
c.respond_to?(:str) ? c.str : c.to_s
|
|
373
|
+
else
|
|
374
|
+
part.to_s
|
|
375
|
+
end
|
|
376
|
+
end.join
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
357
380
|
# Helper method to extract clean string without Parslet position markers
|
|
358
381
|
#
|
|
359
382
|
# @param obj [Object] Parslet::Slice or String
|
|
@@ -585,10 +585,14 @@ module Rng
|
|
|
585
585
|
# @param text [String] Grammar block content
|
|
586
586
|
# @return [Hash] Parsed structure
|
|
587
587
|
def parse_grammar_with_scope(text)
|
|
588
|
+
# Convert ## doc comments to # regular comments so the parser's whitespace
|
|
589
|
+
# rule can consume them. This preserves parseability while keeping the
|
|
590
|
+
# text structure intact (just loses ## -> # for whitespace handling).
|
|
591
|
+
processed = text.gsub(/^(\s*)##/, '\1#')
|
|
588
592
|
parser = Rng::RncParser.new
|
|
589
593
|
|
|
590
594
|
# Parse using grammar rule
|
|
591
|
-
parser.grammar.parse(
|
|
595
|
+
parser.grammar.parse(processed.strip)
|
|
592
596
|
|
|
593
597
|
# Return grammar structure
|
|
594
598
|
rescue Parslet::ParseFailed => e
|
data/lib/rng/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rng
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-05-
|
|
11
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|