X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fstr2bool.rb;h=165cf5d641ca235339569773ff11d6b20b62a753;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=38ad1ce07d044fffe2155543bbedd03a0d9c8c02;hpb=6963202b4b62c2816655ac9532521b018fdf83bd;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/lib/puppet/parser/functions/str2bool.rb b/3rdparty/modules/stdlib/lib/puppet/parser/functions/str2bool.rb index 38ad1ce07..165cf5d64 100644 --- a/3rdparty/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +++ b/3rdparty/modules/stdlib/lib/puppet/parser/functions/str2bool.rb @@ -1,21 +1,26 @@ # # str2bool.rb # - module Puppet::Parser::Functions - newfunction(:str2bool, :type => :rvalue, :doc => <<-EOS -This converts a string to a boolean. This attempt to convert strings that -contain things like: Y,y, 1, T,t, TRUE,true to 'true' and strings that contain things -like: 0, F,f, N,n, false, FALSE, no to 'false'. - EOS - ) do |arguments| + newfunction(:str2bool, :type => :rvalue, :doc => <<-DOC + @summary + This converts a string to a boolean. + + @return + This attempt to convert to boolean strings that contain things like: Y,y, 1, T,t, TRUE,true to 'true' and strings that contain things + like: 0, F,f, N,n, false, FALSE, no to 'false'. - raise(Puppet::ParseError, "str2bool(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size < 1 + > *Note:* that since Puppet 5.0.0 the Boolean data type can convert strings to a Boolean value. + See the function new() in Puppet for details what the Boolean data type supports. + DOC + ) do |arguments| + + raise(Puppet::ParseError, "str2bool(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.empty? string = arguments[0] # If string is already Boolean, return it - if !!string == string + if !!string == string # rubocop:disable Style/DoubleNegation : No viable alternative return string end @@ -25,17 +30,17 @@ like: 0, F,f, N,n, false, FALSE, no to 'false'. # We consider all the yes, no, y, n and so on too ... result = case string - # - # This is how undef looks like in Puppet ... - # We yield false in this case. - # - when /^$/, '' then false # Empty string will be false ... - when /^(1|t|y|true|yes)$/i then true - when /^(0|f|n|false|no)$/i then false - when /^(undef|undefined)$/ then false # This is not likely to happen ... - else - raise(Puppet::ParseError, 'str2bool(): Unknown type of boolean given') - end + # + # This is how undef looks like in Puppet ... + # We yield false in this case. + # + when %r{^$}, '' then false # Empty string will be false ... + when %r{^(1|t|y|true|yes)$}i then true + when %r{^(0|f|n|false|no)$}i then false + when %r{^(undef|undefined)$} then false # This is not likely to happen ... + else + raise(Puppet::ParseError, 'str2bool(): Unknown type of boolean given') + end return result end