baldr 0.3.8 → 0.3.9
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.
- data/lib/baldr/parser.rb +4 -4
- data/lib/baldr/segment.rb +4 -4
- data/lib/baldr/version.rb +1 -1
- metadata +1 -1
data/lib/baldr/parser.rb
CHANGED
@@ -119,11 +119,11 @@ class Baldr::Parser
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def build_tree(source, grammar, version = nil)
|
122
|
-
loop = build_segment(source.to_enum, grammar
|
122
|
+
loop = build_segment(source.to_enum, grammar.structure, version)
|
123
123
|
loop.segments
|
124
124
|
end
|
125
125
|
|
126
|
-
def build_segment(enumerator,
|
126
|
+
def build_segment(enumerator, structure, version)
|
127
127
|
current = enumerator.peek
|
128
128
|
|
129
129
|
while structure[:id] == current[0]
|
@@ -139,12 +139,12 @@ class Baldr::Parser
|
|
139
139
|
|
140
140
|
if sub_grammar
|
141
141
|
sub_grammar.structure.fetch(:level, []).each do |s|
|
142
|
-
child = build_segment(enumerator,
|
142
|
+
child = build_segment(enumerator, s, version)
|
143
143
|
segment.children << child if child
|
144
144
|
end
|
145
145
|
else
|
146
146
|
structure.fetch(:level, []).each do |s|
|
147
|
-
child = build_segment(enumerator,
|
147
|
+
child = build_segment(enumerator, s, version)
|
148
148
|
segment.children << child if child
|
149
149
|
end
|
150
150
|
end
|
data/lib/baldr/segment.rb
CHANGED
@@ -42,13 +42,13 @@ class Baldr::Segment
|
|
42
42
|
if loop.segments.length == 1
|
43
43
|
loop.segments.first[key] = value
|
44
44
|
else
|
45
|
-
raise
|
45
|
+
raise Baldr::Error, 'there are more than 1 segment in loop. you can\'t assign from here' if loop.segments.length > 1
|
46
46
|
end
|
47
47
|
else
|
48
|
-
raise
|
48
|
+
raise Baldr::Error, "segment #{key[0..-3]} not found"
|
49
49
|
end
|
50
50
|
else
|
51
|
-
raise
|
51
|
+
raise Baldr::Error, "unable to assign #{key}"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -63,7 +63,7 @@ class Baldr::Segment
|
|
63
63
|
if loop.segments.length == 1
|
64
64
|
loop.segments.first[key]
|
65
65
|
else
|
66
|
-
raise
|
66
|
+
raise Baldr::Error, 'there are more than 1 segment in loop. use it as enum' if loop.segments.length > 1
|
67
67
|
end
|
68
68
|
end
|
69
69
|
elsif key =~ /^[A-z][A-Z0-9]{1,2}$/
|
data/lib/baldr/version.rb
CHANGED