Skip to content

Commit f2e6472

Browse files
authored
Merge pull request #308 from metafacture/116-destructiveAddField
Change `add_field()` Fix function to destructive behaviour for Catmandu compatibility.
2 parents b7c318f + 5bc0378 commit f2e6472

File tree

8 files changed

+61
-16
lines changed

8 files changed

+61
-16
lines changed

metafix/src/main/java/org/metafacture/metafix/FixMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
127127
add_field {
128128
@Override
129129
public void apply(final Metafix metafix, final Record record, final List<String> params, final Map<String, String> options) {
130-
record.addNested(params.get(0), new Value(params.get(1)));
130+
record.set(params.get(0), new Value(params.get(1)));
131131
}
132132
},
133133
array { // array-from-hash

metafix/src/test/java/org/metafacture/metafix/MetafixBindTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,9 @@ public void ifInCollectorCombine() {
572572

573573
private void shouldIterateOverList(final String path, final int expectedCount) {
574574
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
575+
"set_array('trace')",
575576
"do list(path: '" + path + "', 'var': '$i')",
576-
" add_field('trace', 'true')",
577+
" add_field('trace.$append', 'true')",
577578
"end",
578579
"retain('trace')"
579580
),
@@ -617,8 +618,9 @@ public void shouldIterateOverListWithWildcard() {
617618

618619
private void shouldIterateOverListOfHashes(final String path, final int expectedCount) {
619620
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
621+
"set_array('trace')",
620622
"do list(path: '" + path + "', 'var': '$i')",
621-
" add_field('trace', 'true')",
623+
" add_field('trace.$append', 'true')",
622624
"end",
623625
"retain('trace')"
624626
),

metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2416,9 +2416,10 @@ public void shouldMatchString() {
24162416
@Test
24172417
public void shouldTestMacroVariable() {
24182418
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
2419+
"set_array('type')",
24192420
"do put_macro('test')",
24202421
" if str_contain('name', 'a$[var]')",
2421-
" add_field('type', 'Organization: $[var]')",
2422+
" add_field('type.$append', 'Organization: $[var]')",
24222423
" end",
24232424
"end",
24242425
"call_macro('test', 'var': 'm')",

metafix/src/test/java/org/metafacture/metafix/MetafixRecordTest.java

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,48 @@ public void add() {
236236
i.startRecord("3");
237237
i.endRecord();
238238
},
239+
o -> {
240+
o.get().startRecord("1");
241+
o.get().startEntity("my");
242+
o.get().literal("name", "nicolas");
243+
o.get().endEntity();
244+
o.get().endRecord();
245+
246+
o.get().startRecord("2");
247+
o.get().startEntity("my");
248+
o.get().literal("name", "nicolas");
249+
o.get().endEntity();
250+
o.get().endRecord();
251+
252+
o.get().startRecord("3");
253+
o.get().startEntity("my");
254+
o.get().literal("name", "nicolas");
255+
o.get().endEntity();
256+
o.get().endRecord();
257+
}
258+
);
259+
}
260+
261+
@Test
262+
public void addWithAppendInNewArray() {
263+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
264+
"set_array('my.name')",
265+
"add_field('my.name.$append','patrick')",
266+
"add_field('my.name.$append','nicolas')"
267+
),
268+
i -> {
269+
i.startRecord("1");
270+
i.endRecord();
271+
272+
i.startRecord("2");
273+
i.startEntity("my");
274+
i.literal("name", "max");
275+
i.endEntity();
276+
i.endRecord();
277+
278+
i.startRecord("3");
279+
i.endRecord();
280+
},
239281
o -> {
240282
o.get().startRecord("1");
241283
o.get().startEntity("my");
@@ -246,7 +288,6 @@ public void add() {
246288

247289
o.get().startRecord("2");
248290
o.get().startEntity("my");
249-
o.get().literal("name", "max");
250291
o.get().literal("name", "patrick");
251292
o.get().literal("name", "nicolas");
252293
o.get().endEntity();
@@ -1992,8 +2033,9 @@ public void arrayFromHash() {
19922033
@Test
19932034
public void shouldCallMacro() {
19942035
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
2036+
"set_array('test')",
19952037
"do put_macro('test')",
1996-
" add_field('test', '42')",
2038+
" add_field('test.$append', '42')",
19972039
"end",
19982040
"call_macro('test')",
19992041
"call_macro('test')"
@@ -2030,9 +2072,10 @@ public void shouldNotCallUnknownMacro() {
20302072
@Test
20312073
public void shouldCallMacroWithVariables() {
20322074
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
2075+
"set_array('test')",
20332076
"put_vars(a: '1', b: '2')", // global variables
20342077
"do put_macro('test', b: '22', c: '33')", // "static" local variables
2035-
" add_field('test', '$[a]-$[b]-$[c]-$[d]')",
2078+
" add_field('test.$append', '$[a]-$[b]-$[c]-$[d]')",
20362079
"end",
20372080
"call_macro('test', c: '333', d: '444')", // "dynamic" local variables
20382081
"call_macro('test', b: '555', d: '666')",

metafix/src/test/java/org/metafacture/metafix/MetafixScriptTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,9 @@ public void shouldDoNothing() {
202202
public void shouldIncludeFixFile() {
203203
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
204204
"set_array('trace')",
205-
"add_field('trace', 'before include')",
205+
"add_field('trace.$append', 'before include')",
206206
"include('src/test/resources/org/metafacture/metafix/fixes/base.fix')",
207-
"add_field('trace', 'after include')"
207+
"add_field('trace.$append', 'after include')"
208208
),
209209
i -> {
210210
i.startRecord("1");
@@ -281,13 +281,13 @@ public void shouldNotLeakVariablesFromIncludingFixFile() {
281281
public void shouldIncludeFixFileInBind() {
282282
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
283283
"set_array('trace')",
284-
"add_field('trace', 'before bind')",
284+
"add_field('trace.$append', 'before bind')",
285285
"do list(path: 'data', 'var': '$i')",
286286
" paste('trace.$append', '~before include', '$i')",
287287
" include('src/test/resources/org/metafacture/metafix/fixes/var.fix')",
288288
" paste('trace.$append', '~after include', '$i')",
289289
"end",
290-
"add_field('trace', 'after bind')"
290+
"add_field('trace.$append', 'after bind')"
291291
),
292292
i -> {
293293
i.startRecord("1");
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
unless exists("trace")
22
set_array("trace")
33
end
4-
add_field("trace", "before include")
4+
add_field("trace.$append", "before include")
55
include("./base.fix")
6-
add_field("trace", "after include")
6+
add_field("trace.$append", "after include")
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
set_array("trace")
2-
add_field("trace", "before nested")
2+
add_field("trace.$append", "before nested")
33
include("src/test/resources/org/metafacture/metafix/fixes/include.fix")
4-
add_field("trace", "after nested")
4+
add_field("trace.$append", "after nested")

metafix/src/test/resources/org/metafacture/metafix/integration/record/fromJson/toJson/add_fieldSimpleDestructive/todo.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)