[Jifty-commit] r7127 - jifty/trunk/lib/Jifty/Plugin/Config/Action

Jifty commits jifty-commit at lists.jifty.org
Mon Jun 1 16:34:05 EDT 2009


Author: sartak
Date: Mon Jun  1 16:34:05 2009
New Revision: 7127

Modified:
   jifty/trunk/lib/Jifty/Plugin/Config/Action/AddConfig.pm

Log:
write_new_config

Modified: jifty/trunk/lib/Jifty/Plugin/Config/Action/AddConfig.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/Config/Action/AddConfig.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/Config/Action/AddConfig.pm	Mon Jun  1 16:34:05 2009
@@ -39,13 +39,31 @@
     return ($top, $pointer);
 }
 
+sub write_new_config {
+    my $self       = shift;
+    my $new_config = shift;
+
+    my $file = Jifty::Util->app_root
+             . '/'
+             . $self->argument_value('target_file');
+
+    my $existing_config = Jifty::YAML::LoadFile($file);
+
+    Hash::Merge::set_behavior('RIGHT_PRECEDENT');
+    my $combined_config = merge($existing_config, $new_config);
+
+    Jifty::YAML::DumpFile($file, $combined_config);
+}
+
 sub take_action {
     my $self = shift;
     my ($new_config, $pointer) = $self->contextualize($self->argument_value('context'));
+
     $pointer->{$self->argument_value('field')} = $self->argument_value('value');
 
-    # Hash::Merge site_config with $new_config
-    # Restart server
+    $self->write_new_config($new_config);
+
+    Jifty->config->load;
 }
 
 1;


More information about the Jifty-commit mailing list