aboutsummaryrefslogtreecommitdiff
path: root/lib/Config
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2017-04-24 11:12:08 +0200
committerPatrick Spek <p.spek@tyil.nl>2023-07-25 02:16:08 +0200
commit1716058c5a97828fd5654354be71ce5adf337e40 (patch)
treeed702ba420a3cda7f39f0b6b249b294f02dca487 /lib/Config
parentfa3d0b5e7c8ce7077e02b6062a7aee74f5159fbc (diff)
Update exceptions with more meaningful messages
Diffstat (limited to 'lib/Config')
-rw-r--r--lib/Config/Exception/FileNotFoundException.pm64
-rw-r--r--lib/Config/Exception/MissingParserException.pm613
-rw-r--r--lib/Config/Exception/UnimplementedMethodException.pm64
-rw-r--r--lib/Config/Exception/UnknownTypeException.pm64
-rw-r--r--lib/Config/Exception/UnsupportedTypeException.pm611
-rw-r--r--lib/Config/Parser.pm68
6 files changed, 28 insertions, 16 deletions
diff --git a/lib/Config/Exception/FileNotFoundException.pm6 b/lib/Config/Exception/FileNotFoundException.pm6
index 74d7bc1..b00f956 100644
--- a/lib/Config/Exception/FileNotFoundException.pm6
+++ b/lib/Config/Exception/FileNotFoundException.pm6
@@ -4,8 +4,10 @@ use v6.c;
class Config::Exception::FileNotFoundException is Exception
{
+ has Str $.path;
+
method message()
{
- "Could not find file"
+ "Could not find file at $!path"
}
}
diff --git a/lib/Config/Exception/MissingParserException.pm6 b/lib/Config/Exception/MissingParserException.pm6
new file mode 100644
index 0000000..484026a
--- /dev/null
+++ b/lib/Config/Exception/MissingParserException.pm6
@@ -0,0 +1,13 @@
+#! /usr/bin/env false
+
+use v6.c;
+
+class Config::Exception::MissingParserException is Exception
+{
+ has Str $.parser;
+
+ method message()
+ {
+ "$!parser is not a valid parser. Are you sure its installed?"
+ }
+}
diff --git a/lib/Config/Exception/UnimplementedMethodException.pm6 b/lib/Config/Exception/UnimplementedMethodException.pm6
index ae87db9..10af289 100644
--- a/lib/Config/Exception/UnimplementedMethodException.pm6
+++ b/lib/Config/Exception/UnimplementedMethodException.pm6
@@ -4,8 +4,10 @@ use v6.c;
class Config::Exception::UnimplementedMethodException is Exception
{
+ has Str $.method;
+
method message()
{
- "This method is not implemented"
+ "The $!method method is not implemented"
}
}
diff --git a/lib/Config/Exception/UnknownTypeException.pm6 b/lib/Config/Exception/UnknownTypeException.pm6
index de58755..095572b 100644
--- a/lib/Config/Exception/UnknownTypeException.pm6
+++ b/lib/Config/Exception/UnknownTypeException.pm6
@@ -4,8 +4,10 @@ use v6.c;
class Config::Exception::UnknownTypeException is Exception
{
+ has Str $.file;
+
method message()
{
- "Could not deduce loader type."
+ "Could not deduce loader type for $!file."
}
}
diff --git a/lib/Config/Exception/UnsupportedTypeException.pm6 b/lib/Config/Exception/UnsupportedTypeException.pm6
deleted file mode 100644
index c2f6f10..0000000
--- a/lib/Config/Exception/UnsupportedTypeException.pm6
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /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
index 23effc0..1a99ad6 100644
--- a/lib/Config/Parser.pm6
+++ b/lib/Config/Parser.pm6
@@ -8,11 +8,15 @@ class Config::Parser
{
method read(Str $path --> Hash)
{
- Config::Exception::UnimplementedMethodException.new.throw();
+ Config::Exception::UnimplementedMethodException.new(
+ method => "read"
+ ).throw();
}
method write(Str $path, Hash $config --> Hash)
{
- Config::Exception::UnimplementedMethodException.new.throw();
+ Config::Exception::UnimplementedMethodException.new(
+ method => "write"
+ ).throw();
}
}