modl 0.3.20 → 0.3.21
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/CHANGELOG.md +4 -0
- data/grammar_tests/base_tests.json +38 -0
- data/lib/modl/parser/class_processor.rb +15 -8
- data/lib/modl/parser/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: 84fb9b34002bed8fe52e89fe76f12c611a4c8d615ba8a4e5e11267c0b6deba99
|
4
|
+
data.tar.gz: 05373b62d95ff9599775eb1bf8a2d8ac060ba3f61baf4569ea63de94bf4d2199
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94d50dfcd3ea5fa3b716aacc1dd39d2f6455c0d325d6b7cc0fb91d31952aafa48fd7c040451ffeb17248ffaff9337e2d3728881223a5916581c2b1529f529afb
|
7
|
+
data.tar.gz: 4216880a6c17df8b73cfa9c7828da975518b1b5dfb7dac7c6b38e996338a6b987673c2e43a136ec4273ba68dad6651c14ce01e495888ab6ffa622819017d9a42
|
data/CHANGELOG.md
CHANGED
@@ -3086,5 +3086,43 @@
|
|
3086
3086
|
"escapes"
|
3087
3087
|
],
|
3088
3088
|
"minimised_modl": "test=\\\\~u2019\\\\u2019~u2019\\\\u2019"
|
3089
|
+
},
|
3090
|
+
{
|
3091
|
+
"id": "324",
|
3092
|
+
"input": "test=~~u2019",
|
3093
|
+
"expected_output": "{\n \"test\": \"~u2019\"\n}",
|
3094
|
+
"tested_features": [
|
3095
|
+
"unicode",
|
3096
|
+
"escapes"
|
3097
|
+
],
|
3098
|
+
"minimised_modl": "test=~~u2019"
|
3099
|
+
},
|
3100
|
+
{
|
3101
|
+
"id": "325",
|
3102
|
+
"input": "test=\\~u2019",
|
3103
|
+
"expected_output": "{\n \"test\": \"~u2019\"\n}",
|
3104
|
+
"tested_features": [
|
3105
|
+
"unicode",
|
3106
|
+
"escapes"
|
3107
|
+
],
|
3108
|
+
"minimised_modl": "test=\\~u2019"
|
3109
|
+
},
|
3110
|
+
{
|
3111
|
+
"id": "326",
|
3112
|
+
"input": "*class(\n *id=v;\n *name=variants;\n *assign=[[variant*]]\n);\n\n*class(\n *id=variant;\n *assign=[[key1;key2;key3]]\n);\n\nv[[one;two;three];[four;five;six]]",
|
3113
|
+
"expected_output": "{\n \"variants\": [\n {\n \"key1\": \"one\",\n \"key2\": \"two\",\n \"key3\": \"three\"\n },\n {\n \"key1\": \"four\",\n \"key2\": \"five\",\n \"key3\": \"six\"\n }\n ]\n}",
|
3114
|
+
"tested_features": [
|
3115
|
+
"class"
|
3116
|
+
],
|
3117
|
+
"minimised_modl": "*class(*id=v;*name=variants;*assign=[[variant*]]);*class(*id=variant;*assign=[[key1;key2;key3]]);v[[one;two;three];[four;five;six]]"
|
3118
|
+
},
|
3119
|
+
{
|
3120
|
+
"id": "327",
|
3121
|
+
"input": "*class(\n *id=v;\n *name=variants;\n *assign=[[variant*]]\n);\n\n*class(\n *id=variant;\n *assign=[[key1;key2;key3]]\n);\n\nv[one:two:three]",
|
3122
|
+
"expected_output": "{\n \"variants\": [\n {\n \"key1\": \"one\",\n \"key2\": \"two\",\n \"key3\": \"three\"\n }\n ]\n}",
|
3123
|
+
"tested_features": [
|
3124
|
+
"class"
|
3125
|
+
],
|
3126
|
+
"minimised_modl": "*class(*id=v;*name=variants;*assign=[[variant*]]);*class(*id=variant;*assign=[[key1;key2;key3]]);v[[one;two;three];[four;five;six]]"
|
3089
3127
|
}
|
3090
3128
|
]
|
@@ -254,6 +254,7 @@ module MODL
|
|
254
254
|
result = true
|
255
255
|
lists.each do |list|
|
256
256
|
list.each do |item|
|
257
|
+
item = Sutil.head(item) if item.end_with? '*'
|
257
258
|
global_class = global.classs(item)
|
258
259
|
result &= (!global_class.nil? && has_assign_statement?(global_class, global))
|
259
260
|
end
|
@@ -353,18 +354,24 @@ module MODL
|
|
353
354
|
end
|
354
355
|
end
|
355
356
|
end
|
357
|
+
new_value.keys do |nk|
|
358
|
+
process_obj global, new_value[nk]
|
359
|
+
end
|
360
|
+
|
361
|
+
process_nested_classes(global, new_value)
|
362
|
+
clazz.merge_content(new_value)
|
356
363
|
else
|
357
364
|
keys.each_index do |i|
|
358
|
-
|
365
|
+
tmp_value = {keys[i] => v[i]}
|
366
|
+
process_obj global, tmp_value
|
367
|
+
if !global.classs(keys[i]).nil? && !tmp_value[keys[i]].nil? && (tmp_value[keys[i]].is_a?(Hash) || tmp_value[keys[i]].is_a?(Array))
|
368
|
+
new_value[i] = tmp_value[keys[i]]
|
369
|
+
else
|
370
|
+
new_value.merge! tmp_value
|
371
|
+
end
|
359
372
|
end
|
373
|
+
new_value
|
360
374
|
end
|
361
|
-
|
362
|
-
new_value.keys do |nk|
|
363
|
-
process_obj global, new_value[nk]
|
364
|
-
end
|
365
|
-
|
366
|
-
process_nested_classes(global, new_value)
|
367
|
-
clazz.merge_content(new_value)
|
368
375
|
end
|
369
376
|
|
370
377
|
# Find a *assign key list of a specific length
|
data/lib/modl/parser/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Walmsley
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|