summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Config.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reply/Config.pm')
-rw-r--r--lib/Reply/Config.pm39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/Reply/Config.pm b/lib/Reply/Config.pm
new file mode 100644
index 0000000..ed1f53d
--- /dev/null
+++ b/lib/Reply/Config.pm
@@ -0,0 +1,39 @@
+package Reply::Config;
+use strict;
+use warnings;
+
+use Config::INI::Reader::Ordered;
+use File::HomeDir;
+use File::Spec;
+
+sub new {
+ my $class = shift;
+ my %opts = @_;
+
+ $opts{file} = '.replyrc'
+ unless defined $opts{file};
+
+ my $file = File::Spec->catfile(
+ (File::Spec->file_name_is_absolute($opts{file})
+ ? ()
+ : (File::HomeDir->my_home)),
+ $opts{file}
+ );
+
+ my $self = bless {}, $class;
+
+ $self->{file} = $file;
+ $self->{config} = Config::INI::Reader::Ordered->new;
+
+ return $self;
+}
+
+sub file { shift->{file} }
+
+sub data {
+ my $self = shift;
+
+ return $self->{config}->read_file($self->{file});
+}
+
+1;