diff options
Diffstat (limited to 'lib/leap_cli/config')
-rw-r--r-- | lib/leap_cli/config/manager.rb | 3 | ||||
-rw-r--r-- | lib/leap_cli/config/object.rb | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb index 8807cc9..246b79f 100644 --- a/lib/leap_cli/config/manager.rb +++ b/lib/leap_cli/config/manager.rb @@ -1,5 +1,4 @@ require 'json/pure' -require 'yaml' module LeapCli module Config @@ -42,7 +41,7 @@ module LeapCli @nodes.each do |name, node| filepath = "#{dir}/#{name}.yaml" updated_files << filepath - Util::write_file!(filepath, node.to_yaml) + Util::write_file!(filepath, node.dump) end (existing_files - updated_files).each do |filepath| Util::remove_file!(filepath) diff --git a/lib/leap_cli/config/object.rb b/lib/leap_cli/config/object.rb index 2ef7fe8..4f993bb 100644 --- a/lib/leap_cli/config/object.rb +++ b/lib/leap_cli/config/object.rb @@ -1,6 +1,9 @@ require 'erb' require 'json/pure' # pure ruby implementation is required for our sorted trick to work. +$KCODE = 'UTF8' +require 'ya2yaml' # pure ruby yaml + module LeapCli module Config # @@ -28,6 +31,14 @@ module LeapCli @node_list = Config::ObjectList.new end + # We use pure ruby yaml exporter ya2yaml instead of SYCK or PSYCH because it + # allows us greater compatibility regardless of installed ruby version and + # greater control over how the yaml is exported. + # + def dump + self.ya2yaml(:syck_compatible => true) + end + ## ## FETCHING VALUES ## |