aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2017-04-23 21:24:26 +0200
committerPatrick Spek <p.spek@tyil.nl>2017-04-23 21:24:26 +0200
commit9687382b803ec0dc5a7dd55be88b53a4264215f9 (patch)
treee522d65c4555acabcc282e87e6c75a799bd3aa38 /lib
Initial commit
Diffstat (limited to 'lib')
-rw-r--r--lib/.precomp/.lock0
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8Abin0 -> 13386 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73Abin0 -> 13818 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73bin0 -> 12159 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45bin0 -> 7666 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607Bbin0 -> 7674 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/45/45A96A43E627A15A9A185553DE808CA80D5041FB.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858Dbin0 -> 53260 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CDbin0 -> 7626 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/C7/C712FE6969F786C9380D643DF17E85D06868219E.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36bin0 -> 13370 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38bin0 -> 13546 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731bin0 -> 7634 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0Dbin0 -> 7706 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D.repo-id1
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443bin0 -> 10042 bytes
-rw-r--r--lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443.repo-id1
-rw-r--r--lib/Config.pm6118
-rw-r--r--lib/Config/Exception/FileNotFoundException.pm611
-rw-r--r--lib/Config/Exception/UnimplementedMethodException.pm611
-rw-r--r--lib/Config/Exception/UnknownTypeException.pm611
-rw-r--r--lib/Config/Exception/UnsupportedTypeException.pm611
-rw-r--r--lib/Config/Parser.pm618
-rw-r--r--lib/Config/Type.pm68
34 files changed, 202 insertions, 0 deletions
diff --git a/lib/.precomp/.lock b/lib/.precomp/.lock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lib/.precomp/.lock
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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/18/1807916DDC3BF40F96F92F8FCA3CD06CB8744B8A
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/21/2103FD75C612446CE0562C6986752EC0132BF73A
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/29/29A507344AA00CEB3BB29D5016436EB6D781FE73
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/3F/3FA7EE6CC2F0756C317BD3FC38FDB29A4E921D45
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/40/40193EF5D37DEECF4FAEB8A0FA85BE32809D607B
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/88/8851142DA56FD885CE668A165B33FEE7003E858D
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/90/90FADBE7E78E962D0D92865E0BC8FEF4C24B16CD
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/D9/D927E6230450FA9C5E48B5899297BD1B4E592C36
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/DA/DA273C94E2FFE21D82A0AE24849E3EEDCB0E6A38
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/E4/E4F0ACEBBB2C743D530B4BA3CFBFBDDD430FE731
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/F8/F85C6678C4919C65A2F0DF6825E1459461FC3F0D
Binary files 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
--- /dev/null
+++ b/lib/.precomp/4C065BC85DF72A0D80F4DFAADE37B4A51810A2BA.1492812758.10089/FD/FDE8FD45D54C59E213B7A92E16E25FD483E44443
Binary files 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
+>;