Skip to content

Commit

Permalink
Re-use existing str2bool code rather than doing a copy and paste
Browse files Browse the repository at this point in the history
  • Loading branch information
tremble committed Sep 22, 2014
1 parent e2d7f3b commit 23bc7d5
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 48 deletions.
24 changes: 1 addition & 23 deletions lib/puppet/parser/functions/bool2num.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,7 @@ module Puppet::Parser::Functions
raise(Puppet::ParseError, "bool2num(): Wrong number of arguments " +
"given (#{arguments.size} for 1)") if arguments.size < 1

value = arguments[0]

# We can have either true or false, or string which resembles boolean ...
unless value.is_a?(String) || value.is_a?(FalseClass) || value.is_a?(TrueClass)
raise(Puppet::ParseError, 'bool2num(): Requires either ' +
'boolean or string to work with')
end

if value.is_a?(String)
# We consider all the yes, no, y, n and so on too ...
value = case value
#
# This is how undef looks like in Puppet ...
# We yield 0 (or false if you wish) in this case.
#
when /^$/, '' then false # Empty string will be false ...
when /^(1|t|y|true|yes)$/ then true
when /^(0|f|n|false|no)$/ then false
when /^(undef|undefined)$/ then false # This is not likely to happen ...
else
raise(Puppet::ParseError, 'bool2num(): Unknown type of boolean given')
end
end
value = function_str2bool([arguments[0]])

# We have real boolean values as well ...
result = value ? 1 : 0
Expand Down
26 changes: 1 addition & 25 deletions lib/puppet/parser/functions/zip.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,7 @@ module Puppet::Parser::Functions
raise(Puppet::ParseError, 'zip(): Requires array to work with')
end

flatten = arguments[2] if arguments[2]

if flatten
# We can have either true or false, or string which resembles boolean ...
unless flatten.is_a?(String) || flatten.is_a?(FalseClass) || flatten.is_a?(TrueClass)
raise(Puppet::ParseError, 'zip(): Requires either ' +
'boolean or string to work with')
end

if flatten.is_a?(String)
# We consider all the yes, no, y, n and so on too ...
flatten = case flatten
#
# 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)$/ then true
when /^(0|f|n|false|no)$/ then false
when /^(undef|undefined)$/ then false # This is not likely to happen ...
else
raise(Puppet::ParseError, 'zip(): Unknown type of boolean given')
end
end
end
flatten = function_str2bool([arguments[2]]) if arguments[2]

result = a.zip(b)
result = flatten ? result.flatten : result
Expand Down

0 comments on commit 23bc7d5

Please sign in to comment.