diff options
-rw-r--r-- | lib/puppet/util/fileparsing.rb | 4 | ||||
-rwxr-xr-x | test/util/fileparsing.rb | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/puppet/util/fileparsing.rb b/lib/puppet/util/fileparsing.rb index 7552e8141..8e39719c8 100644 --- a/lib/puppet/util/fileparsing.rb +++ b/lib/puppet/util/fileparsing.rb @@ -268,7 +268,9 @@ module Puppet::Util::FileParsing # Define a new type of record. These lines get split into hashes. Valid # options are: - # * <tt>:absent</tt>: What to use when a field is absent. Defaults to "". + # * <tt>:absent</tt>: What to use as value within a line, when a field is + # absent. Note that in the record object, the literal :absent symbol is + # used, and not this value. Defaults to "". # * <tt>:fields</tt>: The list of fields, as an array. By default, all # fields are considered required. # * <tt>:joiner</tt>: How to join fields together. Defaults to '\t'. diff --git a/test/util/fileparsing.rb b/test/util/fileparsing.rb index 127dbe1d1..e1a5d39b5 100755 --- a/test/util/fileparsing.rb +++ b/test/util/fileparsing.rb @@ -456,12 +456,21 @@ billy three four\n" :separator => " " # A single space end - ["a b c d", "a b * d", "a b * *", "a b c *"].each do |line| + { "a b c d" => [], + "a b * d" => [:three], + "a b * *" => [:three, :four], + "a b c *" => [:four] + }.each do |line, absentees| record = nil assert_nothing_raised do record = @parser.parse_line(line) end + # Absent field is :absent, not "*" inside the record + absentees.each do |absentee| + assert_equal(:absent, record[absentee]) + end + # Now regenerate the line newline = nil assert_nothing_raised do |