summaryrefslogtreecommitdiff
path: root/libpiny/lib
diff options
context:
space:
mode:
authorJulian Blake Kongslie <jblake@omgwallhack.org>2011-05-11 22:05:00 -0700
committerJulian Blake Kongslie <jblake@omgwallhack.org>2011-05-11 22:05:00 -0700
commit681344f391f6a752cc96210ecb3216c1f4515363 (patch)
treeca848d213f67e9391ad1861330d527e3a226c18b /libpiny/lib
parent3ca6564c2d95d12dff83cc645c280aa734ad19f8 (diff)
downloadpiny-code-681344f391f6a752cc96210ecb3216c1f4515363.tar.gz
piny-code-681344f391f6a752cc96210ecb3216c1f4515363.zip
Support listing all tweakables.
Diffstat (limited to 'libpiny/lib')
-rw-r--r--libpiny/lib/Piny/Config.pm20
1 files changed, 20 insertions, 0 deletions
diff --git a/libpiny/lib/Piny/Config.pm b/libpiny/lib/Piny/Config.pm
index 9f43c19..d37fa67 100644
--- a/libpiny/lib/Piny/Config.pm
+++ b/libpiny/lib/Piny/Config.pm
@@ -162,6 +162,24 @@ sub save {
$cs->write( $s->confpath );
};
+# Dump all tweakables
+
+my @tweakables = ( );
+
+sub all_tweakables {
+ my ( $s ) = @_;
+
+ my $r = { };
+
+ foreach my $t ( @tweakables ) {
+ eval {
+ $r->{$t} = $s->$t;
+ };
+ };
+
+ return $r;
+};
+
# Tweakable helper
sub tweakable {
@@ -174,6 +192,8 @@ sub tweakable {
if ( $attrname =~ /_/ ) { croak "Illegal attribute name $attrname! (use only one underbar)"; };
+ push @tweakables, $attr;
+
has $attr =>
( is => 'rw'
, isa => $isa