]> gitweb.fluxo.info Git - leap/leap_cli.git/commitdiff
added support for config arrays that are required: e.g. ["REQUIRED"]. this will ensur...
authorelijah <elijah@riseup.net>
Sat, 21 Sep 2013 23:51:34 +0000 (16:51 -0700)
committerelijah <elijah@riseup.net>
Sat, 21 Sep 2013 23:51:34 +0000 (16:51 -0700)
lib/leap_cli/config/object.rb
lib/leap_cli/version.rb

index 1d296b3f7dd646caacc1cbe7613105e526ea9bc2..47800d5183458aa6cf4546f3d3ba40bbfc1888bb 100644 (file)
@@ -149,9 +149,9 @@ module LeapCli
 
           # merge arrays when one value is not an array
           elsif old_value.is_a?(Array) && !new_value.is_a?(Array)
-            value = (old_value.dup << new_value).compact.uniq
+            (value = (old_value.dup << new_value).compact.uniq).delete('REQUIRED')
           elsif new_value.is_a?(Array) && !old_value.is_a?(Array)
-            value = (new_value.dup << old_value).compact.uniq
+            (value = (new_value.dup << old_value).compact.uniq).delete('REQUIRED')
 
           # catch errors
           elsif type_mismatch?(old_value, new_value)
@@ -207,7 +207,7 @@ module LeapCli
       def evaluate_everything
         keys.each do |key|
           obj = fetch_value(key)
-          if obj == "REQUIRED"
+          if is_required_value_not_set?(obj)
             Util::log 0, :warning, "required key \"#{key}\" is not set in node \"#{node.name}\"."
           elsif obj.is_a? Config::Object
             obj.evaluate_everything
@@ -222,7 +222,7 @@ module LeapCli
         if @late_eval_list
           @late_eval_list.each do |key, value|
             self[key] = evaluate_now(key, value)
-            if self[key] == "REQUIRED"
+            if is_required_value_not_set?(self[key])
               Util::log 0, :warning, "required key \"#{key}\" is not set in node \"#{node.name}\"."
             end
           end
@@ -320,6 +320,17 @@ module LeapCli
         end
       end
 
+      #
+      # returns true if the value has not been changed and the default is "REQUIRED"
+      #
+      def is_required_value_not_set?(value)
+        if value.is_a? Array
+          value == ["REQUIRED"]
+        else
+          value == "REQUIRED"
+        end
+      end
+
     end # class
   end # module
 end # module
\ No newline at end of file
index e649d950bac2fbf71065e0fa1498812926c1a997..aac161b0a4eaae0229cddfc4de35730f6b0c90d2 100644 (file)
@@ -1,6 +1,6 @@
 module LeapCli
   unless defined?(LeapCli::VERSION)
-    VERSION = '1.2.3'
+    VERSION = '1.2.4'
     COMPATIBLE_PLATFORM_VERSION = '0.2.4'..'1.99'
     SUMMARY = 'Command line interface to the LEAP platform'
     DESCRIPTION = 'The command "leap" can be used to manage a bevy of servers running the LEAP platform from the comfort of your own home.'