From 9687382b803ec0dc5a7dd55be88b53a4264215f9 Mon Sep 17 00:00:00 2001
From: Patrick Spek
Date: Sun, 23 Apr 2017 21:24:26 +0200
Subject: Initial commit
---
lib/.precomp/.lock | 0
.../18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A | Bin 0 -> 13386 bytes
...807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id | 1 +
.../21/2103FD75C612446CE0562C6986752EC0132BF73A | Bin 0 -> 13818 bytes
...103FD75C612446CE0562C6986752EC0132BF73A.repo-id | 1 +
.../29/29A507344AA00CEB3BB29D5016436EB6D781FE73 | Bin 0 -> 12159 bytes
...9A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id | 1 +
.../3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45 | Bin 0 -> 7666 bytes
...FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id | 1 +
.../40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B | Bin 0 -> 7674 bytes
...0193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id | 1 +
...5A96A43E627A15A9A185553DE808CA80D5041FB.repo-id | 1 +
.../88/8851142DA56FD885CE668A165B33FEE7003E858D | Bin 0 -> 53260 bytes
...851142DA56FD885CE668A165B33FEE7003E858D.repo-id | 1 +
.../90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD | Bin 0 -> 7626 bytes
...0FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id | 1 +
...712FE6969F786C9380D643DF17E85D06868219E.repo-id | 1 +
.../D9/D927E6230450FA9C5E48B5899297BD1B4E592C36 | Bin 0 -> 13370 bytes
...927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id | 1 +
.../DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38 | Bin 0 -> 13546 bytes
...A273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id | 1 +
.../E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731 | Bin 0 -> 7634 bytes
...4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id | 1 +
.../F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D | Bin 0 -> 7706 bytes
...85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id | 1 +
.../FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443 | Bin 0 -> 10042 bytes
...DE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id | 1 +
lib/Config.pm6 | 118 +++++++++++++++++++++
lib/Config/Exception/FileNotFoundException.pm6 | 11 ++
.../Exception/UnimplementedMethodException.pm6 | 11 ++
lib/Config/Exception/UnknownTypeException.pm6 | 11 ++
lib/Config/Exception/UnsupportedTypeException.pm6 | 11 ++
lib/Config/Parser.pm6 | 18 ++++
lib/Config/Type.pm6 | 8 ++
34 files changed, 202 insertions(+)
create mode 100644 lib/.precomp/.lock
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/45/45A96A43E627A15A9A185553DE808CA80D5041FB.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/C7/C712FE6969F786C9380D643DF17E85D06868219E.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443
create mode 100644 lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id
create mode 100644 lib/Config.pm6
create mode 100644 lib/Config/Exception/FileNotFoundException.pm6
create mode 100644 lib/Config/Exception/UnimplementedMethodException.pm6
create mode 100644 lib/Config/Exception/UnknownTypeException.pm6
create mode 100644 lib/Config/Exception/UnsupportedTypeException.pm6
create mode 100644 lib/Config/Parser.pm6
create mode 100644 lib/Config/Type.pm6
(limited to 'lib')
diff --git a/lib/.precomp/.lock b/lib/.precomp/.lock
new file mode 100644
index 0000000..e69de29
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A
new file mode 100644
index 0000000..e1fc5fd
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id
new file mode 100644
index 0000000..b549a21
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id
@@ -0,0 +1 @@
+6577239781C43809EA4F8372150078C4001668B4
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A
new file mode 100644
index 0000000..11cd4c4
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A.repo-id
new file mode 100644
index 0000000..ed1f8de
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A.repo-id
@@ -0,0 +1 @@
+417D152BCC5E17870B8BD92AD53B9F24580D1E26
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73
new file mode 100644
index 0000000..ff4a35c
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id
new file mode 100644
index 0000000..71acaa6
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id
@@ -0,0 +1 @@
+1EECF111F3BFACC7F7A22B63B4E4686B13D5D321
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45
new file mode 100644
index 0000000..29f6594
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id
new file mode 100644
index 0000000..b549a21
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id
@@ -0,0 +1 @@
+6577239781C43809EA4F8372150078C4001668B4
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B
new file mode 100644
index 0000000..21864fb
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id
new file mode 100644
index 0000000..a2a23f0
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id
@@ -0,0 +1 @@
+571B9898C606602C87C1147FDED21AA17353D1BC
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/45/45A96A43E627A15A9A185553DE808CA80D5041FB.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/45/45A96A43E627A15A9A185553DE808CA80D5041FB.repo-id
new file mode 100644
index 0000000..71acaa6
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/45/45A96A43E627A15A9A185553DE808CA80D5041FB.repo-id
@@ -0,0 +1 @@
+1EECF111F3BFACC7F7A22B63B4E4686B13D5D321
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D
new file mode 100644
index 0000000..6cb0b86
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D.repo-id
new file mode 100644
index 0000000..71acaa6
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D.repo-id
@@ -0,0 +1 @@
+1EECF111F3BFACC7F7A22B63B4E4686B13D5D321
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD
new file mode 100644
index 0000000..5d34452
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id
new file mode 100644
index 0000000..a2a23f0
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id
@@ -0,0 +1 @@
+571B9898C606602C87C1147FDED21AA17353D1BC
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/C7/C712FE6969F786C9380D643DF17E85D06868219E.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/C7/C712FE6969F786C9380D643DF17E85D06868219E.repo-id
new file mode 100644
index 0000000..71acaa6
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/C7/C712FE6969F786C9380D643DF17E85D06868219E.repo-id
@@ -0,0 +1 @@
+1EECF111F3BFACC7F7A22B63B4E4686B13D5D321
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36
new file mode 100644
index 0000000..b54e871
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id
new file mode 100644
index 0000000..a2a23f0
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id
@@ -0,0 +1 @@
+571B9898C606602C87C1147FDED21AA17353D1BC
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38
new file mode 100644
index 0000000..e642bde
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id
new file mode 100644
index 0000000..71acaa6
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id
@@ -0,0 +1 @@
+1EECF111F3BFACC7F7A22B63B4E4686B13D5D321
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731
new file mode 100644
index 0000000..2b8e207
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id
new file mode 100644
index 0000000..a2a23f0
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id
@@ -0,0 +1 @@
+571B9898C606602C87C1147FDED21AA17353D1BC
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D
new file mode 100644
index 0000000..3b32cf7
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id
new file mode 100644
index 0000000..a2a23f0
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id
@@ -0,0 +1 @@
+571B9898C606602C87C1147FDED21AA17353D1BC
\ No newline at end of file
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443 b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443
new file mode 100644
index 0000000..78e602b
Binary files /dev/null and b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443 differ
diff --git a/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id
new file mode 100644
index 0000000..97d0603
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id
@@ -0,0 +1 @@
+53F7FCAA0ED12644487864078120F04EAAD4E07E
\ No newline at end of file
diff --git a/lib/Config.pm6 b/lib/Config.pm6
new file mode 100644
index 0000000..f7abe4e
--- /dev/null
+++ b/lib/Config.pm6
@@ -0,0 +1,118 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+use Config::Exception::UnsupportedTypeException;
+use Config::Exception::UnknownTypeException;
+use Config::Exception::FileNotFoundException;
+use Config::Type;
+use Config::Parser;
+
+class Config is export
+{
+ has $!content = {};
+ has $!path;
+ has $!parser;
+
+ multi method read()
+ {
+ return self.load($!path);
+ }
+
+ multi method read(Str $path, Str $parser? = "")
+ {
+ Config::Exception::FileNotFoundException.new.throw() unless $path.IO.f;
+
+ $!parser = self.get-parser($path, $parser);
+
+ require ::($!parser);
+ $!content = ::($!parser).read($path);
+
+ return True;
+ }
+
+ multi method read(Hash $hash)
+ {
+ $!content = $hash;
+ }
+
+ method write(Str $path, Str $parser? = "")
+ {
+ $parser = self.get-parser($path, $parser);
+
+ require ::($parser);
+ return ::($parser).write($path, $!content);
+ }
+
+ method get(Str $key, Any :$default = Nil)
+ {
+ my $index = $!content;
+
+ for $key.split(".") {
+ return $default unless defined($index{$_});
+
+ $index = $index{$_};
+ }
+
+ $index;
+ }
+
+ method has(Str $key) {
+ my $index = $!content;
+
+ for $key.split(".") {
+ return False unless defined($index{$_});
+
+ $index = $index{$_};
+ }
+
+ True;
+ }
+
+ method set(Str $key, Any $value)
+ {
+ my $index := $!content;
+
+ for $key.split(".") {
+ $index{$_} = {} unless defined($index{$_});
+
+ $index := $index{$_};
+ }
+
+ $index = $value;
+
+ self;
+ }
+
+ method get-parser(Str $path, Str $parser? = "")
+ {
+ if ($parser ne "") {
+ return $parser;
+ }
+
+ my $type = self.get-parser-type($path);
+
+ Config::Exception::UnknownTypeException.new.throw() if $type eq Config::Type::unknown;
+
+ "Config::Parser::" ~ $type;
+ }
+
+ method get-parser-type(Str $path)
+ {
+ given ($path) {
+ when .ends-with(".yml") { return Config::Type::yaml; };
+ }
+
+ my $file = $path;
+
+ if (defined($path.index("/"))) {
+ $file = $path.split("/")[*-1];
+ }
+
+ if (defined($file.index("."))) {
+ return $file.split(".")[*-1];
+ }
+
+ return Config::Type::unknown;
+ }
+}
diff --git a/lib/Config/Exception/FileNotFoundException.pm6 b/lib/Config/Exception/FileNotFoundException.pm6
new file mode 100644
index 0000000..74d7bc1
--- /dev/null
+++ b/lib/Config/Exception/FileNotFoundException.pm6
@@ -0,0 +1,11 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+class Config::Exception::FileNotFoundException is Exception
+{
+ method message()
+ {
+ "Could not find file"
+ }
+}
diff --git a/lib/Config/Exception/UnimplementedMethodException.pm6 b/lib/Config/Exception/UnimplementedMethodException.pm6
new file mode 100644
index 0000000..ae87db9
--- /dev/null
+++ b/lib/Config/Exception/UnimplementedMethodException.pm6
@@ -0,0 +1,11 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+class Config::Exception::UnimplementedMethodException is Exception
+{
+ method message()
+ {
+ "This method is not implemented"
+ }
+}
diff --git a/lib/Config/Exception/UnknownTypeException.pm6 b/lib/Config/Exception/UnknownTypeException.pm6
new file mode 100644
index 0000000..de58755
--- /dev/null
+++ b/lib/Config/Exception/UnknownTypeException.pm6
@@ -0,0 +1,11 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+class Config::Exception::UnknownTypeException is Exception
+{
+ method message()
+ {
+ "Could not deduce loader type."
+ }
+}
diff --git a/lib/Config/Exception/UnsupportedTypeException.pm6 b/lib/Config/Exception/UnsupportedTypeException.pm6
new file mode 100644
index 0000000..c2f6f10
--- /dev/null
+++ b/lib/Config/Exception/UnsupportedTypeException.pm6
@@ -0,0 +1,11 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+class Config::Exception::UnsupportedTypeException is Exception
+{
+ method message()
+ {
+ "No parser support for the given file. Have you imported a correct parser?"
+ }
+}
diff --git a/lib/Config/Parser.pm6 b/lib/Config/Parser.pm6
new file mode 100644
index 0000000..23effc0
--- /dev/null
+++ b/lib/Config/Parser.pm6
@@ -0,0 +1,18 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+use Config::Exception::UnimplementedMethodException;
+
+class Config::Parser
+{
+ method read(Str $path --> Hash)
+ {
+ Config::Exception::UnimplementedMethodException.new.throw();
+ }
+
+ method write(Str $path, Hash $config --> Hash)
+ {
+ Config::Exception::UnimplementedMethodException.new.throw();
+ }
+}
diff --git a/lib/Config/Type.pm6 b/lib/Config/Type.pm6
new file mode 100644
index 0000000..f348985
--- /dev/null
+++ b/lib/Config/Type.pm6
@@ -0,0 +1,8 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+enum Config::Type <
+ unknown
+ yaml
+>;
--
cgit v1.1