projects
/
mirror
/
dsa-puppet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git]
/
3rdparty
/
modules
/
stdlib
/
lib
/
puppet
/
functions
/
fact.rb
diff --git
a/3rdparty/modules/stdlib/lib/puppet/functions/fact.rb
b/3rdparty/modules/stdlib/lib/puppet/functions/fact.rb
index
dfb048b
..
c963d16
100644
(file)
--- a/
3rdparty/modules/stdlib/lib/puppet/functions/fact.rb
+++ b/
3rdparty/modules/stdlib/lib/puppet/functions/fact.rb
@@
-1,27
+1,33
@@
-# Digs into the facts hash using dot-notation
+# @summary
+# Digs into the facts hash using dot-notation
#
#
-# Example usage:
+# Supports the use of dot-notation for referring to structured facts. If a fact requested
+# does not exist, returns Undef.
#
#
+# @example Example usage:
# fact('osfamily')
# fact('os.architecture')
#
# fact('osfamily')
# fact('os.architecture')
#
-# Array indexing:
-#
+# @example Array indexing:
# fact('mountpoints."/dev".options.1')
#
# fact('mountpoints."/dev".options.1')
#
-# Fact containing a "." in the name:
-#
+# @example Fact containing a "." in the name:
# fact('vmware."VRA.version"')
#
Puppet::Functions.create_function(:fact) do
# fact('vmware."VRA.version"')
#
Puppet::Functions.create_function(:fact) do
+ # @param fact_name
+ # The name of the fact to check
+ #
+ # @return
+ # All information retrieved on the given fact_name
dispatch :fact do
param 'String', :fact_name
end
def to_dot_syntax(array_path)
dispatch :fact do
param 'String', :fact_name
end
def to_dot_syntax(array_path)
- array_path.map
do
|string|
- string.include?('.') ? %
Q{"#{string}"}
: string
-
end
.join('.')
+ array_path.map
{
|string|
+ string.include?('.') ? %
("#{string}")
: string
+
}
.join('.')
end
def fact(fact_name)
end
def fact(fact_name)
@@
-30,21
+36,20
@@
Puppet::Functions.create_function(:fact) do
# Transform the dot-notation string into an array of paths to walk. Make
# sure to correctly extract double-quoted values containing dots as single
# elements in the path.
# Transform the dot-notation string into an array of paths to walk. Make
# sure to correctly extract double-quoted values containing dots as single
# elements in the path.
- path = fact_name.scan(
/([^."]+)|(?:")([^"]+)(?:")/).map {
|x| x.compact.first }
+ path = fact_name.scan(
%r{([^."]+)|(?:")([^"]+)(?:")}).map {
|x| x.compact.first }
walked_path = []
path.reduce(facts) do |d, k|
return nil if d.nil? || k.nil?
walked_path = []
path.reduce(facts) do |d, k|
return nil if d.nil? || k.nil?
- case
- when d.is_a?(Array)
+ if d.is_a?(Array)
begin
result = d[Integer(k)]
begin
result = d[Integer(k)]
- rescue ArgumentError => e
+ rescue ArgumentError => e
# rubocop:disable Lint/UselessAssignment : Causes errors if assigment is removed.
Puppet.warning("fact request for #{fact_name} returning nil: '#{to_dot_syntax(walked_path)}' is an array; cannot index to '#{k}'")
result = nil
end
Puppet.warning("fact request for #{fact_name} returning nil: '#{to_dot_syntax(walked_path)}' is an array; cannot index to '#{k}'")
result = nil
end
-
when
d.is_a?(Hash)
+
elsif
d.is_a?(Hash)
result = d[k]
else
Puppet.warning("fact request for #{fact_name} returning nil: '#{to_dot_syntax(walked_path)}' is not a collection; cannot walk to '#{k}'")
result = d[k]
else
Puppet.warning("fact request for #{fact_name} returning nil: '#{to_dot_syntax(walked_path)}' is not a collection; cannot walk to '#{k}'")