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